From 084849e255ab8d60b04cf001dc0acc2ee0fb118a Mon Sep 17 00:00:00 2001 From: mattf Date: Fri, 8 Jan 2010 02:58:21 +0000 Subject: [PATCH] updated language builds git-svn-id: svn://192.168.202.10@1295 3d104415-ff17-0410-8863-d5cf3c621b8a --- LANG_www/agc_br/active_list_refresh.php | 9 +- LANG_www/agc_br/astguiclient.php | 114 +- LANG_www/agc_br/call_log_display.php | 9 +- LANG_www/agc_br/conf_exten_check.php | 171 +- LANG_www/agc_br/dbconnect.php | 6 +- LANG_www/agc_br/inbound_popup.php | 47 +- LANG_www/agc_br/live_exten_check.php | 9 +- LANG_www/agc_br/manager_send.php | 1316 +- LANG_www/agc_br/park_calls_display.php | 11 +- LANG_www/agc_br/timeclock.php | 21 +- LANG_www/agc_br/vdc_db_query.php | 5011 +++- LANG_www/agc_br/vdc_script_display.php | 401 + LANG_www/agc_br/vicidial.php | 4184 +++- LANG_www/agc_br/voicemail_check.php | 9 +- LANG_www/agc_de/active_list_refresh.php | 9 +- LANG_www/agc_de/astguiclient.php | 114 +- LANG_www/agc_de/call_log_display.php | 9 +- LANG_www/agc_de/conf_exten_check.php | 171 +- LANG_www/agc_de/dbconnect.php | 6 +- LANG_www/agc_de/inbound_popup.php | 47 +- LANG_www/agc_de/live_exten_check.php | 9 +- LANG_www/agc_de/manager_send.php | 1316 +- LANG_www/agc_de/park_calls_display.php | 11 +- LANG_www/agc_de/timeclock.php | 21 +- LANG_www/agc_de/vdc_db_query.php | 5011 +++- LANG_www/agc_de/vdc_script_display.php | 401 + LANG_www/agc_de/vicidial.php | 4184 +++- LANG_www/agc_de/voicemail_check.php | 9 +- LANG_www/agc_el/active_list_refresh.php | 9 +- LANG_www/agc_el/astguiclient.php | 114 +- LANG_www/agc_el/call_log_display.php | 9 +- LANG_www/agc_el/conf_exten_check.php | 171 +- LANG_www/agc_el/dbconnect.php | 6 +- LANG_www/agc_el/inbound_popup.php | 47 +- LANG_www/agc_el/live_exten_check.php | 9 +- LANG_www/agc_el/manager_send.php | 1316 +- LANG_www/agc_el/park_calls_display.php | 11 +- LANG_www/agc_el/timeclock.php | 21 +- LANG_www/agc_el/vdc_db_query.php | 5011 +++- LANG_www/agc_el/vdc_script_display.php | 401 + LANG_www/agc_el/vicidial.php | 4184 +++- LANG_www/agc_el/voicemail_check.php | 9 +- LANG_www/agc_es/active_list_refresh.php | 9 +- LANG_www/agc_es/astguiclient.php | 114 +- LANG_www/agc_es/call_log_display.php | 9 +- LANG_www/agc_es/conf_exten_check.php | 171 +- LANG_www/agc_es/dbconnect.php | 6 +- LANG_www/agc_es/inbound_popup.php | 47 +- LANG_www/agc_es/live_exten_check.php | 9 +- LANG_www/agc_es/manager_send.php | 1316 +- LANG_www/agc_es/park_calls_display.php | 11 +- LANG_www/agc_es/timeclock.php | 21 +- LANG_www/agc_es/vdc_db_query.php | 5011 +++- LANG_www/agc_es/vdc_script_display.php | 401 + LANG_www/agc_es/vicidial.php | 4184 +++- LANG_www/agc_es/voicemail_check.php | 9 +- LANG_www/agc_fr/active_list_refresh.php | 9 +- LANG_www/agc_fr/astguiclient.php | 114 +- LANG_www/agc_fr/call_log_display.php | 9 +- LANG_www/agc_fr/conf_exten_check.php | 171 +- LANG_www/agc_fr/dbconnect.php | 6 +- LANG_www/agc_fr/inbound_popup.php | 47 +- LANG_www/agc_fr/live_exten_check.php | 9 +- LANG_www/agc_fr/manager_send.php | 1316 +- LANG_www/agc_fr/park_calls_display.php | 11 +- LANG_www/agc_fr/timeclock.php | 21 +- LANG_www/agc_fr/vdc_db_query.php | 5011 +++- LANG_www/agc_fr/vdc_script_display.php | 401 + LANG_www/agc_fr/vicidial.php | 4184 +++- LANG_www/agc_fr/voicemail_check.php | 9 +- LANG_www/agc_it/active_list_refresh.php | 9 +- LANG_www/agc_it/astguiclient.php | 114 +- LANG_www/agc_it/call_log_display.php | 9 +- LANG_www/agc_it/conf_exten_check.php | 175 +- LANG_www/agc_it/dbconnect.php | 6 +- LANG_www/agc_it/inbound_popup.php | 47 +- LANG_www/agc_it/live_exten_check.php | 9 +- LANG_www/agc_it/manager_send.php | 1316 +- LANG_www/agc_it/park_calls_display.php | 11 +- LANG_www/agc_it/timeclock.php | 21 +- LANG_www/agc_it/vdc_db_query.php | 5011 +++- LANG_www/agc_it/vdc_script_display.php | 401 + LANG_www/agc_it/vicidial.php | 4184 +++- LANG_www/agc_it/voicemail_check.php | 9 +- LANG_www/agc_nl/active_list_refresh.php | 9 +- LANG_www/agc_nl/astguiclient.php | 114 +- LANG_www/agc_nl/call_log_display.php | 9 +- LANG_www/agc_nl/conf_exten_check.php | 171 +- LANG_www/agc_nl/dbconnect.php | 6 +- LANG_www/agc_nl/inbound_popup.php | 47 +- LANG_www/agc_nl/live_exten_check.php | 9 +- LANG_www/agc_nl/manager_send.php | 1316 +- LANG_www/agc_nl/park_calls_display.php | 11 +- LANG_www/agc_nl/timeclock.php | 21 +- LANG_www/agc_nl/vdc_db_query.php | 4785 +++- LANG_www/agc_nl/vdc_script_display.php | 401 + LANG_www/agc_nl/vicidial.php | 4170 +++- LANG_www/agc_nl/voicemail_check.php | 9 +- LANG_www/agc_pl/active_list_refresh.php | 9 +- LANG_www/agc_pl/astguiclient.php | 114 +- LANG_www/agc_pl/call_log_display.php | 9 +- LANG_www/agc_pl/conf_exten_check.php | 171 +- LANG_www/agc_pl/dbconnect.php | 6 +- LANG_www/agc_pl/inbound_popup.php | 47 +- LANG_www/agc_pl/live_exten_check.php | 9 +- LANG_www/agc_pl/manager_send.php | 1316 +- LANG_www/agc_pl/park_calls_display.php | 11 +- LANG_www/agc_pl/timeclock.php | 21 +- LANG_www/agc_pl/vdc_db_query.php | 5011 +++- LANG_www/agc_pl/vdc_script_display.php | 401 + LANG_www/agc_pl/vicidial.php | 4184 +++- LANG_www/agc_pl/voicemail_check.php | 9 +- LANG_www/agc_pt/active_list_refresh.php | 9 +- LANG_www/agc_pt/astguiclient.php | 114 +- LANG_www/agc_pt/call_log_display.php | 9 +- LANG_www/agc_pt/conf_exten_check.php | 171 +- LANG_www/agc_pt/dbconnect.php | 6 +- LANG_www/agc_pt/inbound_popup.php | 47 +- LANG_www/agc_pt/live_exten_check.php | 9 +- LANG_www/agc_pt/manager_send.php | 1316 +- LANG_www/agc_pt/park_calls_display.php | 11 +- LANG_www/agc_pt/timeclock.php | 21 +- LANG_www/agc_pt/vdc_db_query.php | 5011 +++- LANG_www/agc_pt/vdc_script_display.php | 401 + LANG_www/agc_pt/vicidial.php | 4184 +++- LANG_www/agc_pt/voicemail_check.php | 9 +- LANG_www/agc_ru/active_list_refresh.php | 9 +- LANG_www/agc_ru/astguiclient.php | 124 +- LANG_www/agc_ru/call_log_display.php | 9 +- LANG_www/agc_ru/conf_exten_check.php | 171 +- LANG_www/agc_ru/dbconnect.php | 6 +- LANG_www/agc_ru/inbound_popup.php | 47 +- LANG_www/agc_ru/live_exten_check.php | 9 +- LANG_www/agc_ru/manager_send.php | 1318 +- LANG_www/agc_ru/park_calls_display.php | 11 +- LANG_www/agc_ru/timeclock.php | 21 +- LANG_www/agc_ru/vdc_db_query.php | 5015 +++- LANG_www/agc_ru/vdc_script_display.php | 401 + LANG_www/agc_ru/vicidial.php | 4240 +++- LANG_www/agc_ru/voicemail_check.php | 9 +- LANG_www/agc_sk/active_list_refresh.php | 9 +- LANG_www/agc_sk/astguiclient.php | 114 +- LANG_www/agc_sk/call_log_display.php | 9 +- LANG_www/agc_sk/conf_exten_check.php | 171 +- LANG_www/agc_sk/dbconnect.php | 6 +- LANG_www/agc_sk/inbound_popup.php | 47 +- LANG_www/agc_sk/live_exten_check.php | 9 +- LANG_www/agc_sk/manager_send.php | 1316 +- LANG_www/agc_sk/park_calls_display.php | 11 +- LANG_www/agc_sk/timeclock.php | 21 +- LANG_www/agc_sk/vdc_db_query.php | 5011 +++- LANG_www/agc_sk/vdc_script_display.php | 401 + LANG_www/agc_sk/vicidial.php | 4184 +++- LANG_www/agc_sk/voicemail_check.php | 9 +- LANG_www/agc_tw/active_list_refresh.php | 483 + LANG_www/agc_tw/astguiclient.php | 2907 +++ LANG_www/agc_tw/call_log_display.php | 197 + LANG_www/agc_tw/conf_exten_check.php | 647 + LANG_www/agc_tw/dbconnect.php | 58 + LANG_www/agc_tw/inbound_popup.php | 352 + LANG_www/agc_tw/live_exten_check.php | 279 + LANG_www/agc_tw/manager_send.php | 1703 ++ LANG_www/agc_tw/park_calls_display.php | 147 + LANG_www/agc_tw/timeclock.php | 456 + LANG_www/agc_tw/vdc_db_query.php | 6537 +++++ LANG_www/agc_tw/vdc_script_display.php | 401 + LANG_www/agc_tw/vicidial.php | 11140 +++++++++ LANG_www/agc_tw/voicemail_check.php | 141 + .../vicidial_de/AST_CLOSER_service_level.php | 49 +- LANG_www/vicidial_de/AST_CLOSERstats.php | 224 +- .../vicidial_de/AST_CLOSERsummary_hourly.php | 657 + LANG_www/vicidial_de/AST_IVRfilter.php | 5 +- LANG_www/vicidial_de/AST_IVRstats.php | 805 +- .../AST_OUTBOUNDsummary_interval.php | 1249 + LANG_www/vicidial_de/AST_VDADstats.php | 1909 +- .../vicidial_de/AST_VICIDIAL_hopperlist.php | 136 +- .../vicidial_de/AST_agent_days_detail.php | 11 +- .../vicidial_de/AST_agent_performance.php | 7 +- .../AST_agent_performance_detail.php | 523 +- .../vicidial_de/AST_agent_status_detail.php | 13 +- .../vicidial_de/AST_agent_time_detail.php | 867 + LANG_www/vicidial_de/AST_agent_time_sheet.php | 212 +- .../AST_agent_timeclock_detail.php | 631 + LANG_www/vicidial_de/AST_inboundEXTstats.php | 7 +- .../vicidial_de/AST_server_performance.php | 11 +- LANG_www/vicidial_de/AST_timeonVDAD.php | 13 +- LANG_www/vicidial_de/AST_timeonVDADall.php | 809 +- .../vicidial_de/AST_timeonVDADallSUMMARY.php | 9 +- LANG_www/vicidial_de/AST_timeonpark.php | 9 +- LANG_www/vicidial_de/admin.php | 20829 ++++++++++------ LANG_www/vicidial_de/admin_header.php | 1668 +- LANG_www/vicidial_de/admin_modify_lead.php | 419 +- LANG_www/vicidial_de/admin_search_lead.php | 94 +- LANG_www/vicidial_de/audio_store.php | 316 + LANG_www/vicidial_de/call_report_export.php | 103 +- LANG_www/vicidial_de/dbconnect.php | 8 +- LANG_www/vicidial_de/fcstats.php | 9 +- LANG_www/vicidial_de/functions.php | 91 + LANG_www/vicidial_de/group_hourly_stats.php | 45 +- LANG_www/vicidial_de/list_download.php | 8 +- LANG_www/vicidial_de/listloader.pl | 126 +- LANG_www/vicidial_de/listloaderMAIN.php | 5 +- LANG_www/vicidial_de/listloader_rowdisplay.pl | 7 +- LANG_www/vicidial_de/listloader_super.pl | 126 +- .../vicidial_de/new_listloader_superL.php | 368 +- LANG_www/vicidial_de/non_agent_api.php | 1389 +- LANG_www/vicidial_de/remote_dispo.php | 15 +- LANG_www/vicidial_de/timeclock_edit.php | 33 +- LANG_www/vicidial_de/timeclock_report.php | 16 +- LANG_www/vicidial_de/timeclock_status.php | 30 +- .../vicidial_de/user_group_bulk_change.php | 20 +- LANG_www/vicidial_de/user_stats.php | 225 +- LANG_www/vicidial_de/user_status.php | 268 +- LANG_www/vicidial_de/user_territories.php | 1089 + LANG_www/vicidial_de/vdremote.php | 229 +- .../vicidial_de/vicidial_sales_viewer.php | 46 +- LANG_www/vicidial_de/vtiger_search.php | 523 +- LANG_www/vicidial_de/vtiger_user.php | 9 +- LANG_www/vicidial_de/welcome.php | 4 +- LANG_www/vicidial_de/welcome_demo.php | 10 +- LANG_www/vicidial_de/welcome_languages.php | 10 +- .../vicidial_el/AST_CLOSER_service_level.php | 49 +- LANG_www/vicidial_el/AST_CLOSERstats.php | 224 +- .../vicidial_el/AST_CLOSERsummary_hourly.php | 657 + LANG_www/vicidial_el/AST_IVRfilter.php | 5 +- LANG_www/vicidial_el/AST_IVRstats.php | 805 +- .../AST_OUTBOUNDsummary_interval.php | 1249 + LANG_www/vicidial_el/AST_VDADstats.php | 1909 +- .../vicidial_el/AST_VICIDIAL_hopperlist.php | 136 +- .../vicidial_el/AST_agent_days_detail.php | 11 +- .../vicidial_el/AST_agent_performance.php | 7 +- .../AST_agent_performance_detail.php | 523 +- .../vicidial_el/AST_agent_status_detail.php | 13 +- .../vicidial_el/AST_agent_time_detail.php | 867 + LANG_www/vicidial_el/AST_agent_time_sheet.php | 212 +- .../AST_agent_timeclock_detail.php | 631 + LANG_www/vicidial_el/AST_inboundEXTstats.php | 7 +- .../vicidial_el/AST_server_performance.php | 11 +- LANG_www/vicidial_el/AST_timeonVDAD.php | 13 +- LANG_www/vicidial_el/AST_timeonVDADall.php | 809 +- .../vicidial_el/AST_timeonVDADallSUMMARY.php | 9 +- LANG_www/vicidial_el/AST_timeonpark.php | 9 +- LANG_www/vicidial_el/admin.php | 20739 +++++++++------ LANG_www/vicidial_el/admin_header.php | 1668 +- LANG_www/vicidial_el/admin_modify_lead.php | 419 +- LANG_www/vicidial_el/admin_search_lead.php | 94 +- LANG_www/vicidial_el/audio_store.php | 316 + LANG_www/vicidial_el/call_report_export.php | 107 +- LANG_www/vicidial_el/fcstats.php | 9 +- LANG_www/vicidial_el/functions.php | 91 + LANG_www/vicidial_el/group_hourly_stats.php | 45 +- LANG_www/vicidial_el/list_download.php | 8 +- LANG_www/vicidial_el/listloader.pl | 126 +- LANG_www/vicidial_el/listloaderMAIN.php | 5 +- LANG_www/vicidial_el/listloader_rowdisplay.pl | 7 +- LANG_www/vicidial_el/listloader_super.pl | 126 +- .../vicidial_el/new_listloader_superL.php | 368 +- LANG_www/vicidial_el/non_agent_api.php | 1389 +- LANG_www/vicidial_el/remote_dispo.php | 15 +- LANG_www/vicidial_el/timeclock_edit.php | 33 +- LANG_www/vicidial_el/timeclock_report.php | 16 +- LANG_www/vicidial_el/timeclock_status.php | 30 +- .../vicidial_el/user_group_bulk_change.php | 20 +- LANG_www/vicidial_el/user_stats.php | 225 +- LANG_www/vicidial_el/user_status.php | 268 +- LANG_www/vicidial_el/user_territories.php | 1089 + LANG_www/vicidial_el/vdremote.php | 227 +- .../vicidial_el/vicidial_sales_viewer.php | 46 +- LANG_www/vicidial_el/vtiger_search.php | 523 +- LANG_www/vicidial_el/vtiger_user.php | 9 +- LANG_www/vicidial_el/welcome.php | 4 +- LANG_www/vicidial_el/welcome_demo.php | 10 +- LANG_www/vicidial_el/welcome_languages.php | 10 +- .../vicidial_es/AST_CLOSER_service_level.php | 49 +- LANG_www/vicidial_es/AST_CLOSERstats.php | 224 +- .../vicidial_es/AST_CLOSERsummary_hourly.php | 657 + LANG_www/vicidial_es/AST_IVRfilter.php | 5 +- LANG_www/vicidial_es/AST_IVRstats.php | 805 +- .../AST_OUTBOUNDsummary_interval.php | 1249 + LANG_www/vicidial_es/AST_VDADstats.php | 1909 +- .../vicidial_es/AST_VICIDIAL_hopperlist.php | 136 +- .../vicidial_es/AST_agent_days_detail.php | 11 +- .../vicidial_es/AST_agent_performance.php | 7 +- .../AST_agent_performance_detail.php | 523 +- .../vicidial_es/AST_agent_status_detail.php | 13 +- .../vicidial_es/AST_agent_time_detail.php | 867 + LANG_www/vicidial_es/AST_agent_time_sheet.php | 212 +- .../AST_agent_timeclock_detail.php | 631 + LANG_www/vicidial_es/AST_inboundEXTstats.php | 7 +- .../vicidial_es/AST_server_performance.php | 11 +- LANG_www/vicidial_es/AST_timeonVDAD.php | 13 +- LANG_www/vicidial_es/AST_timeonVDADall.php | 809 +- .../vicidial_es/AST_timeonVDADallSUMMARY.php | 9 +- LANG_www/vicidial_es/AST_timeonpark.php | 9 +- LANG_www/vicidial_es/admin.php | 20829 ++++++++++------ LANG_www/vicidial_es/admin_header.php | 1668 +- LANG_www/vicidial_es/admin_modify_lead.php | 419 +- LANG_www/vicidial_es/admin_search_lead.php | 94 +- LANG_www/vicidial_es/audio_store.php | 316 + LANG_www/vicidial_es/call_report_export.php | 107 +- LANG_www/vicidial_es/dbconnect.php | 8 +- LANG_www/vicidial_es/fcstats.php | 9 +- LANG_www/vicidial_es/functions.php | 91 + LANG_www/vicidial_es/group_hourly_stats.php | 45 +- LANG_www/vicidial_es/list_download.php | 8 +- LANG_www/vicidial_es/listloader.pl | 126 +- LANG_www/vicidial_es/listloaderMAIN.php | 5 +- LANG_www/vicidial_es/listloader_rowdisplay.pl | 7 +- LANG_www/vicidial_es/listloader_super.pl | 126 +- .../vicidial_es/new_listloader_superL.php | 368 +- LANG_www/vicidial_es/non_agent_api.php | 1389 +- LANG_www/vicidial_es/remote_dispo.php | 15 +- LANG_www/vicidial_es/timeclock_edit.php | 33 +- LANG_www/vicidial_es/timeclock_report.php | 16 +- LANG_www/vicidial_es/timeclock_status.php | 30 +- .../vicidial_es/user_group_bulk_change.php | 20 +- LANG_www/vicidial_es/user_stats.php | 225 +- LANG_www/vicidial_es/user_status.php | 268 +- LANG_www/vicidial_es/user_territories.php | 1089 + LANG_www/vicidial_es/vdremote.php | 229 +- .../vicidial_es/vicidial_sales_viewer.php | 46 +- LANG_www/vicidial_es/vtiger_search.php | 523 +- LANG_www/vicidial_es/vtiger_user.php | 9 +- LANG_www/vicidial_es/welcome.php | 4 +- LANG_www/vicidial_es/welcome_demo.php | 10 +- LANG_www/vicidial_es/welcome_languages.php | 10 +- .../vicidial_fr/AST_CLOSER_service_level.php | 49 +- LANG_www/vicidial_fr/AST_CLOSERstats.php | 222 +- .../vicidial_fr/AST_CLOSERsummary_hourly.php | 657 + LANG_www/vicidial_fr/AST_IVRfilter.php | 5 +- LANG_www/vicidial_fr/AST_IVRstats.php | 805 +- .../AST_OUTBOUNDsummary_interval.php | 1249 + LANG_www/vicidial_fr/AST_VDADstats.php | 1915 +- .../vicidial_fr/AST_VICIDIAL_hopperlist.php | 136 +- .../vicidial_fr/AST_agent_days_detail.php | 15 +- .../vicidial_fr/AST_agent_performance.php | 7 +- .../AST_agent_performance_detail.php | 523 +- .../vicidial_fr/AST_agent_status_detail.php | 17 +- .../vicidial_fr/AST_agent_time_detail.php | 867 + LANG_www/vicidial_fr/AST_agent_time_sheet.php | 212 +- .../AST_agent_timeclock_detail.php | 631 + LANG_www/vicidial_fr/AST_inboundEXTstats.php | 7 +- .../vicidial_fr/AST_server_performance.php | 11 +- LANG_www/vicidial_fr/AST_timeonVDAD.php | 13 +- LANG_www/vicidial_fr/AST_timeonVDADall.php | 811 +- .../vicidial_fr/AST_timeonVDADallSUMMARY.php | 9 +- LANG_www/vicidial_fr/AST_timeonpark.php | 7 +- LANG_www/vicidial_fr/admin.php | 20825 +++++++++------ LANG_www/vicidial_fr/admin_header.php | 1672 +- LANG_www/vicidial_fr/admin_modify_lead.php | 419 +- LANG_www/vicidial_fr/admin_search_lead.php | 94 +- LANG_www/vicidial_fr/audio_store.php | 316 + LANG_www/vicidial_fr/call_report_export.php | 103 +- LANG_www/vicidial_fr/dbconnect.php | 8 +- LANG_www/vicidial_fr/fcstats.php | 9 +- LANG_www/vicidial_fr/functions.php | 91 + LANG_www/vicidial_fr/group_hourly_stats.php | 45 +- LANG_www/vicidial_fr/list_download.php | 8 +- LANG_www/vicidial_fr/listloader.pl | 126 +- LANG_www/vicidial_fr/listloaderMAIN.php | 5 +- LANG_www/vicidial_fr/listloader_rowdisplay.pl | 7 +- LANG_www/vicidial_fr/listloader_super.pl | 126 +- .../vicidial_fr/new_listloader_superL.php | 368 +- LANG_www/vicidial_fr/non_agent_api.php | 1389 +- LANG_www/vicidial_fr/remote_dispo.php | 15 +- LANG_www/vicidial_fr/timeclock_edit.php | 33 +- LANG_www/vicidial_fr/timeclock_report.php | 16 +- LANG_www/vicidial_fr/timeclock_status.php | 30 +- .../vicidial_fr/user_group_bulk_change.php | 20 +- LANG_www/vicidial_fr/user_stats.php | 225 +- LANG_www/vicidial_fr/user_status.php | 268 +- LANG_www/vicidial_fr/user_territories.php | 1089 + LANG_www/vicidial_fr/vdremote.php | 229 +- .../vicidial_fr/vicidial_sales_viewer.php | 46 +- LANG_www/vicidial_fr/vtiger_search.php | 523 +- LANG_www/vicidial_fr/vtiger_user.php | 9 +- LANG_www/vicidial_fr/welcome.php | 4 +- LANG_www/vicidial_fr/welcome_demo.php | 10 +- LANG_www/vicidial_fr/welcome_languages.php | 10 +- .../vicidial_it/AST_CLOSER_service_level.php | 49 +- LANG_www/vicidial_it/AST_CLOSERstats.php | 222 +- .../vicidial_it/AST_CLOSERsummary_hourly.php | 657 + LANG_www/vicidial_it/AST_IVRfilter.php | 5 +- LANG_www/vicidial_it/AST_IVRstats.php | 805 +- .../AST_OUTBOUNDsummary_interval.php | 1249 + LANG_www/vicidial_it/AST_VDADstats.php | 1909 +- .../vicidial_it/AST_VICIDIAL_hopperlist.php | 136 +- .../vicidial_it/AST_agent_days_detail.php | 11 +- .../vicidial_it/AST_agent_performance.php | 7 +- .../AST_agent_performance_detail.php | 523 +- .../vicidial_it/AST_agent_status_detail.php | 13 +- .../vicidial_it/AST_agent_time_detail.php | 867 + LANG_www/vicidial_it/AST_agent_time_sheet.php | 212 +- .../AST_agent_timeclock_detail.php | 631 + LANG_www/vicidial_it/AST_inboundEXTstats.php | 7 +- .../vicidial_it/AST_server_performance.php | 11 +- LANG_www/vicidial_it/AST_timeonVDAD.php | 13 +- LANG_www/vicidial_it/AST_timeonVDADall.php | 809 +- .../vicidial_it/AST_timeonVDADallSUMMARY.php | 9 +- LANG_www/vicidial_it/AST_timeonpark.php | 9 +- LANG_www/vicidial_it/admin.php | 20829 ++++++++++------ LANG_www/vicidial_it/admin_header.php | 1668 +- LANG_www/vicidial_it/admin_modify_lead.php | 419 +- LANG_www/vicidial_it/admin_search_lead.php | 94 +- LANG_www/vicidial_it/audio_store.php | 316 + LANG_www/vicidial_it/call_report_export.php | 107 +- LANG_www/vicidial_it/dbconnect.php | 8 +- LANG_www/vicidial_it/fcstats.php | 9 +- LANG_www/vicidial_it/functions.php | 91 + LANG_www/vicidial_it/group_hourly_stats.php | 45 +- LANG_www/vicidial_it/list_download.php | 8 +- LANG_www/vicidial_it/listloader.pl | 126 +- LANG_www/vicidial_it/listloaderMAIN.php | 5 +- LANG_www/vicidial_it/listloader_rowdisplay.pl | 7 +- LANG_www/vicidial_it/listloader_super.pl | 126 +- .../vicidial_it/new_listloader_superL.php | 368 +- LANG_www/vicidial_it/non_agent_api.php | 1389 +- LANG_www/vicidial_it/remote_dispo.php | 15 +- LANG_www/vicidial_it/timeclock_edit.php | 33 +- LANG_www/vicidial_it/timeclock_report.php | 16 +- LANG_www/vicidial_it/timeclock_status.php | 30 +- .../vicidial_it/user_group_bulk_change.php | 20 +- LANG_www/vicidial_it/user_stats.php | 225 +- LANG_www/vicidial_it/user_status.php | 268 +- LANG_www/vicidial_it/user_territories.php | 1089 + LANG_www/vicidial_it/vdremote.php | 229 +- .../vicidial_it/vicidial_sales_viewer.php | 46 +- LANG_www/vicidial_it/vtiger_search.php | 523 +- LANG_www/vicidial_it/vtiger_user.php | 9 +- LANG_www/vicidial_it/welcome.php | 4 +- LANG_www/vicidial_it/welcome_demo.php | 10 +- LANG_www/vicidial_it/welcome_languages.php | 10 +- UPGRADE | 2 + bin/build_translation_www_files.pl | 2 +- docs/BASE_INSTALL.txt | 31 +- docs/SCRATCH_INSTALL.txt | 53 +- translations/br_language.txt | 2 +- translations/de_language.txt | 2 +- translations/de_language_admin.txt | 1 + translations/el_language.txt | 2 +- translations/el_language_admin.txt | 1 + translations/es_language.txt | 2 +- translations/es_language_admin.txt | 1 + translations/fr_language.txt | 2 +- translations/fr_language_admin.txt | 3 +- translations/it_language.txt | 2 +- translations/it_language_admin.txt | 1 + translations/nl_language.txt | 2 +- translations/pl_language.txt | 2 +- translations/pt_language.txt | 2 +- translations/ru_language.txt | 12 +- translations/sk_language.txt | 2 +- translations/tw_language.txt | 76 +- www/agc/vicidial.php | 24 +- 454 files changed, 238850 insertions(+), 92551 deletions(-) create mode 100644 LANG_www/agc_br/vdc_script_display.php create mode 100644 LANG_www/agc_de/vdc_script_display.php create mode 100644 LANG_www/agc_el/vdc_script_display.php create mode 100644 LANG_www/agc_es/vdc_script_display.php create mode 100644 LANG_www/agc_fr/vdc_script_display.php create mode 100644 LANG_www/agc_it/vdc_script_display.php create mode 100644 LANG_www/agc_nl/vdc_script_display.php create mode 100644 LANG_www/agc_pl/vdc_script_display.php create mode 100644 LANG_www/agc_pt/vdc_script_display.php create mode 100644 LANG_www/agc_ru/vdc_script_display.php create mode 100644 LANG_www/agc_sk/vdc_script_display.php create mode 100644 LANG_www/agc_tw/active_list_refresh.php create mode 100644 LANG_www/agc_tw/astguiclient.php create mode 100644 LANG_www/agc_tw/call_log_display.php create mode 100644 LANG_www/agc_tw/conf_exten_check.php create mode 100644 LANG_www/agc_tw/dbconnect.php create mode 100644 LANG_www/agc_tw/inbound_popup.php create mode 100644 LANG_www/agc_tw/live_exten_check.php create mode 100644 LANG_www/agc_tw/manager_send.php create mode 100644 LANG_www/agc_tw/park_calls_display.php create mode 100644 LANG_www/agc_tw/timeclock.php create mode 100644 LANG_www/agc_tw/vdc_db_query.php create mode 100644 LANG_www/agc_tw/vdc_script_display.php create mode 100644 LANG_www/agc_tw/vicidial.php create mode 100644 LANG_www/agc_tw/voicemail_check.php create mode 100644 LANG_www/vicidial_de/AST_CLOSERsummary_hourly.php create mode 100644 LANG_www/vicidial_de/AST_OUTBOUNDsummary_interval.php create mode 100644 LANG_www/vicidial_de/AST_agent_time_detail.php create mode 100644 LANG_www/vicidial_de/AST_agent_timeclock_detail.php create mode 100644 LANG_www/vicidial_de/audio_store.php create mode 100644 LANG_www/vicidial_de/functions.php create mode 100644 LANG_www/vicidial_de/user_territories.php create mode 100644 LANG_www/vicidial_el/AST_CLOSERsummary_hourly.php create mode 100644 LANG_www/vicidial_el/AST_OUTBOUNDsummary_interval.php create mode 100644 LANG_www/vicidial_el/AST_agent_time_detail.php create mode 100644 LANG_www/vicidial_el/AST_agent_timeclock_detail.php create mode 100644 LANG_www/vicidial_el/audio_store.php create mode 100644 LANG_www/vicidial_el/functions.php create mode 100644 LANG_www/vicidial_el/user_territories.php create mode 100644 LANG_www/vicidial_es/AST_CLOSERsummary_hourly.php create mode 100644 LANG_www/vicidial_es/AST_OUTBOUNDsummary_interval.php create mode 100644 LANG_www/vicidial_es/AST_agent_time_detail.php create mode 100644 LANG_www/vicidial_es/AST_agent_timeclock_detail.php create mode 100644 LANG_www/vicidial_es/audio_store.php create mode 100644 LANG_www/vicidial_es/functions.php create mode 100644 LANG_www/vicidial_es/user_territories.php create mode 100644 LANG_www/vicidial_fr/AST_CLOSERsummary_hourly.php create mode 100644 LANG_www/vicidial_fr/AST_OUTBOUNDsummary_interval.php create mode 100644 LANG_www/vicidial_fr/AST_agent_time_detail.php create mode 100644 LANG_www/vicidial_fr/AST_agent_timeclock_detail.php create mode 100644 LANG_www/vicidial_fr/audio_store.php create mode 100644 LANG_www/vicidial_fr/functions.php create mode 100644 LANG_www/vicidial_fr/user_territories.php create mode 100644 LANG_www/vicidial_it/AST_CLOSERsummary_hourly.php create mode 100644 LANG_www/vicidial_it/AST_OUTBOUNDsummary_interval.php create mode 100644 LANG_www/vicidial_it/AST_agent_time_detail.php create mode 100644 LANG_www/vicidial_it/AST_agent_timeclock_detail.php create mode 100644 LANG_www/vicidial_it/audio_store.php create mode 100644 LANG_www/vicidial_it/functions.php create mode 100644 LANG_www/vicidial_it/user_territories.php diff --git a/LANG_www/agc_br/active_list_refresh.php b/LANG_www/agc_br/active_list_refresh.php index c6d99af6..e33f0e76 100644 --- a/LANG_www/agc_br/active_list_refresh.php +++ b/LANG_www/agc_br/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_br/astguiclient.php b/LANG_www/agc_br/astguiclient.php index 62f2bb66..c02f2512 100644 --- a/LANG_www/agc_br/astguiclient.php +++ b/LANG_www/agc_br/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Você fez o logoff. Obrigado\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo "\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "astGUIclient web client\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF_ptbr.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Gerentesends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Gerentesends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n"; -SAIR
\n"; ?> +SAIR
\n"; ?> Painel Principal @@ -2802,12 +2804,12 @@ echo "\n";
CHAMADAS ENTRANTES:
-Versão do cliente web do astGUIClient: CONFIGURAÇÃO: +Versão do cliente web do astGUIClient: CONFIGURAÇÃO: - $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_br/conf_exten_check.php b/LANG_www/agc_br/conf_exten_check.php index 7c8a8328..3ccfd0a1 100644 --- a/LANG_www/agc_br/conf_exten_check.php +++ b/LANG_www/agc_br/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent isligadois hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_SAIR';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_br/dbconnect.php b/LANG_www/agc_br/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_br/dbconnect.php +++ b/LANG_www/agc_br/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_br/inbound_popup.php b/LANG_www/agc_br/inbound_popup.php index bd74a2a1..aec91725 100644 --- a/LANG_www/agc_br/inbound_popup.php +++ b/LANG_www/agc_br/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -CHAMADA ENTRANDO"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid não é válido\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_br/live_exten_check.php b/LANG_www/agc_br/live_exten_check.php index 79649279..a34ca68c 100644 --- a/LANG_www/agc_br/live_exten_check.php +++ b/LANG_www/agc_br/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_br/manager_send.php b/LANG_www/agc_br/manager_send.php index 8ab685e6..45526668 100644 --- a/LANG_www/agc_br/manager_send.php +++ b/LANG_www/agc_br/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Inválido Usuário/Senha: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Gerente Envia: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "AJUDA";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Gerente Envia: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AJUDA";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten não é válido or queryCID $queryCID não é válido, Originate comando não inserido\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando enviado para Exten $exten Canal $channelligado$server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado para Exten $exten Canal $channelligado$server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context Deve ser definido\n"; echo "ext_priority $ext_priority Deve ser definido\n"; echo "\nOriginateName Action não enviado\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context Deve ser definido\n"; echo "ext_priority $ext_priority Deve ser definido\n"; echo "\nOriginateNameVmail Action não enviado\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten não é válido or queryCID $queryCID não é válido, Originate comando não inserido\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten não é válido or queryCID $queryCID não é válido, Originate comando não inserido\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando enviado para Exten $exten Canal $channelligado$server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Você não tem permissão para discar para sessões de outro agente $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado para Exten $exten Canal $channelligado$server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten não é válido or ext_context $ext_context or queryCID $queryCID não é válido, Hangup comando não inserido\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup comando enviado para Canal $channelligado$call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid Deve ser definido\n"; echo "lead_id $lead_id Deve ser definido\n"; echo "\nRedirectVD Action não enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority Deve ser definido\n"; echo "parkedby $parkedby Deve ser definido\n"; echo "\nRedirectToPark Action não enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context Deve ser definido\n"; echo "ext_priority $ext_priority Deve ser definido\n"; echo "\nRedirectFromPark Action não enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context Deve ser definido\n"; echo "ext_priority $ext_priority Deve ser definido\n"; echo "\nRedirectName Action não enviado\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context Deve ser definido\n"; echo "ext_priority $ext_priority Deve ser definido\n"; echo "\nRedirectNameVmail Action não enviado\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Uma dessas variáveis não é válido:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canal $channel não está ativoligado$call_server_ip, Redirect comando não inserido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect comando não inserido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX comando enviado para Canal $channelligado$call_server_ip and \nHungup $extrachannelligado$server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channelligado$call_server_ip, Hungup $extrachannelligado$server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channelligado$server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Uma dessas variáveis não é válido:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conferenceligado$server_ip, Redirect comando não inserido\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não foi possível achar uma conferência vazialigado$server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conferenceligado$server_ip, Redirect comando não inserido\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não foi possível achar uma conferência vazialigado$server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canal $channel não está ativoligado$call_server_ip, Redirect comando não inserido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando enviado para Canal $channel and \nExtraCanal $extrachannel\n to $extenligado$server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $extenligado$server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando enviado para Canal $channelligado$call_server_ip and \nExtraCanal $extrachannel\n to $extenligado$server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Uma dessas variáveis não é válido:\n"; - echo "Canal $channel Deve ser maior que 2 caracteres\n"; - echo "ExtraCanal $extrachannel Deve ser maior que 2 caracteres\n"; - echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; - echo "exten $exten Deve ser definido\n"; - echo "ext_context $ext_context Deve ser definido\n"; - echo "ext_priority $ext_priority Deve ser definido\n"; - echo "\nRedirect Action não enviado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canal $channel não está ativoligado$call_server_ip, Redirect comando não inserido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect comando não inserido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX comando enviado para Canal $channelligado$call_server_ip and \nHungup $extrachannelligado$server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channelligado$call_server_ip, Hungup $extrachannelligado$server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channelligado$server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Uma dessas variáveis não é válido:\n"; - echo "Canal $channel Deve ser maior que 2 caracteres\n"; - echo "ExtraCanal $extrachannel Deve ser maior que 2 caracteres\n"; - echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; - echo "exten $exten Deve ser definido\n"; - echo "ext_context $ext_context Deve ser definido\n"; - echo "ext_priority $ext_priority Deve ser definido\n"; - echo "\nRedirect Action não enviado\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Não foi possível achar uma conferência vazialigado$server_ip, Redirect comando não inserido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não foi possível achar uma conferência vazialigado$server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canal $channel não está ativoligado$call_server_ip, Redirect comando não inserido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando enviado para Canal $channel and \nExtraCanal $extrachannel\n to $extenligado$server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $extenligado$server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando enviado para Canal $channelligado$call_server_ip and \nExtraCanal $extrachannel\n to $extenligado$server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Uma dessas variáveis não é válido:\n"; echo "Canal $channel Deve ser maior que 2 caracteres\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context Deve ser definido\n"; echo "ext_priority $ext_priority Deve ser definido\n"; echo "\nRedirect Action não enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect comando enviado para Canal $channelligado$server_ip\n"; + echo "Redirect comando enviado para Canal $channelligado$server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canal $channel não é válido or queryCID $queryCID não é válido or filename: $filename não é válido, $ACTION comando não inserido\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canal $channel não está ativoligado$server_ip, $ACTION comando não inserido\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando enviado para Canal $channelligado$server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION comando enviado para Canal $channelligado$server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canal $channel não é válido or exten $exten não é válido or filename: $filename não é válido, $ACTION comando não inserido\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings goingligadoin this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings goingligadoin this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION comando enviado para Canal $channelligado$server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n AS GRAVAÇÕES VÃO DURAR 60 MINUTOS\n"; } - echo "$ACTION comando enviado para Canal $channelligado$server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n AS GRAVAÇÕES VÃO DURAR 60 MINUTOS\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Conferencia $exten, Stage $stage não é válido or queryCID $queryCID não é válido, Originate comando não inserido\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume comando enviado para Conferencia $exten, Stage $stage Canal $channelligado$server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando enviado para Conferencia $exten, Stage $stage Canal $channelligado$server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_br/park_calls_display.php b/LANG_www/agc_br/park_calls_display.php index 160aff50..8d116875 100644 --- a/LANG_www/agc_br/park_calls_display.php +++ b/LANG_www/agc_br/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_br/timeclock.php b/LANG_www/agc_br/timeclock.php index 1fd15a5e..ecf82225 100644 --- a/LANG_www/agc_br/timeclock.php +++ b/LANG_www/agc_br/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "O usuário ea senha que você digitou não são ativos no sistema
Por favor, tente novamente:"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'INICIAR') ) { - ### You cannot log in or out within 30 segundos of your last login/logout + ### You cannot log in or out within 30segundos of your last login/logout $VDdisplayMESSAGE = "Você não pode efetuar login ou para fora dentro de 30 segundos do seu último login ou logout"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "ANTERIOR a tela Bem-vindo";} echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_br/vdc_db_query.php b/LANG_www/agc_br/vdc_db_query.php index 7678cb84..a27d1852 100644 --- a/LANG_www/agc_br/vdc_db_query.php +++ b/LANG_www/agc_br/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Inválido Usuário/Senha: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + echo "Inválido Usuário/Senha: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Inválido session_name: |$session_name|$server_ip|\n"; + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Script de consulta ao banco de dados"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script de consulta ao banco de dados"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Senha:
\n"; + $VDdisplayMESSAGE.= "GerenteLogin:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Escolha do Grupo $closer_choice não é válido\n"; - exit; - } + { + $channel_live=0; + echo "Escolha do Grupo $closer_choice não é válido\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Escolha do Grupo $closer_choice foi registrado para o usuário $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories não é válido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories foi registrado para o usuário $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "LISTA DE DISCAGEM VAZIA\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context não é válido\n"; - exit; - } + { + $channel_live=0; + echo "LISTA DE DISCAGEM VAZIA\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context não é válido\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "LISTA DE DISCAGEM VAZIA\n"; + { + echo "LISTA DE DISCAGEM VAZIA\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context não é válido\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " CHAMADA NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context não é válido\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Inserido: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "REGISTRO NÃO DEFINIDO\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserido: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "REGISTRO NÃO DEFINIDO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campanha $campaign não é válido\n"; - echo "lead_id $lead_id não é válido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign não é válido\n"; + echo "lead_id $lead_id não é válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campanha $campaign não é válido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign não é válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then sendligadoto vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then sendligadoto vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If CHAMADABK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If CHAMADABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $userligado$server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $userligado$server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten não é válido\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten não é válido\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a SAIR record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','SAIR','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservationligadothe vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a SAIR record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','SAIR','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservationligadothe vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id não é válido\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id não é válido\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### CHAMADABACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### INICIAR Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Usuário $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Ultimo Attempt, Date of Ultimo Non-Contact, Date of Ultimo Contact, Date of Ultimo Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' foi modificado para ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id não é válido\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id não é válido\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage não é válido\n"; - exit; - } + { + echo "stage $stage não é válido\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' está agora com o status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list não é válido\n"; - exit; - } + { + echo "favorites list $favorites_list não é válido\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status não é válido\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status não é válido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
FAVORITOS       editar
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic dataligadocalls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more infoligadothe calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           CHAMADA GROUP     TYPE  
TAKE CHAMADA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pausa Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_br/vdc_script_display.php b/LANG_www/agc_br/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_br/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_br/vicidial.php b/LANG_www/agc_br/vicidial.php index 220c69dc..3ce6799c 100644 --- a/LANG_www/agc_br/vicidial.php +++ b/LANG_www/agc_br/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Você fez o logoff. Obrigado\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show callsligadohold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of segundos for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofsegundos for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign nameligadologin pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DSTligadoserver for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a DISCAR link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookupsligadocampaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call segundos counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='GERENTE Override OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='GERENTE Override OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + VICIDIAL web client: Re-Login\n"; +echo "Agent web client: Re-Login\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Brazil
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "VICIDIAL web client: Login da Campanha\n"; + echo "Agent web client: Login da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Re-Login
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Brazil
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Login do Usuário

"; @@ -665,15 +740,17 @@ echo "VICIDIAL web client: Login\n"; + echo "Agent web client: Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Brazil
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Login VICIDIAL web client: Login do Telefone\n"; +echo "Agent web client: Login do Telefone\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Brazil
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Senha:
\n"; + $VDdisplayMESSAGE.= "GerenteLogin:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "VICIDIAL web client: VICIDIAL Login da Campanha\n"; + echo "Agent web client: Login da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Login do Telefone
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_segundos = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PREINICIAR_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PREINICIAR_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PREINICIAR_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PREINICIAR_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PREINICIAR_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "VICIDIAL web client: Login da Campanha\n"; + echo "Agent web client: Login da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Brazil
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "VICIDIAL web client: Login do Telefone Error\n"; + echo "Agent web client: Login do Telefone Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Brazil
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "VICIDIAL web client\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TelefoneSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowedligadothis campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_loginligadophone: $SIP_userpara a campanha: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_loginligadophone: $SIP_userpara a campanha: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NOVO record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls todayligadothat campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls todayligadothat campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "VICIDIAL web client: VICIDIAL Login da Campanha\n"; + echo "Agent web client: Login da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Desculpe, não existem registros na fila de discagem\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1854,9 +2079,9 @@ echo "
VICIDIAL web client: VICIDIAL Login da Campanha\n"; + echo "Agent web client: Login da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsegundos counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -SAIR\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +SAIR\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE    ID da sessão:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Chamadas Ativas
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + DISCAGEM MANUAL       SELETOR RÁPIDO
- + X AGENDAMENTOS ATIVOS
- +
- segundos: +segundos:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - DISCAR\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
AGENDAMENTOS POR AGENTE :
Clique em um dos contatos abaixo para ligar. Se você clicar em um contatos abaixo o mesmo será removido da lista de Agendamentos. + + height=460>
AGENDAMENTOS POR AGENTE :
Clique em um dos contatos abaixo para ligar. Se você clicar em um contatos abaixo o mesmo será removido da lista de Agendamentos.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
NOVA DISCAGEM MANUAL PARA :

Digite abaixo a informação do novo contato que você deseja ligar. + + height=460>
NOVA DISCAGEM MANUAL PARA :

Digite abaixo a informação do novo contato que você deseja ligar.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Your Status:
Calls Dialing:
- -
Codigo de Área:   (Normalmente é 1 nos EUA-Canada)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Your Status:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Transferir a conferência            
+ Transferir a conferência            
+ + + + + + - CLOSER LOCAL - Desligar linha Xfer - Desligar ambas as linhas + + + + + -
- - Número a ser discado   + + + + + -
+ + + + +
+ + CLOSER LOCAL     + + Desligar linha Xfer +
+ seconds +   + channel + + CONSULTIVO   + + Desligar ambas as linhas +
+ Número a ser discado +   +   - DISCAGEM SOBREPOSTA   - ABANDONAR CHAMADA A TRES - Transferência sem acompanhamento - D1 - D2 + + DISCAGEM SOBREPOSTA + + ABANDONAR CHAMADA A TRES +
+ Transferência sem acompanhamento +   + Discar com o cliente +   + Colocar chamada do cliente em espera +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- segundos   - channel - Discar com o cliente - Colocar chamada do cliente em espera - Blind Transfer VMail Message
height=70> + +
 Solicita, em fila:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Solicita Hide Na fila\n";} + else + {echo "Solicita Mostrar Em Fila\n";} + } +?> + + + +
  +Outros agentes Status:  
 
+ +
+Agentes de transferência disponíveis:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Status da ligação definida como:

-
- - height=70> + +
height=70>
Atalhos para os status: Quanto ativo apenas pressione a tecla do teclado referente ao status desejado. A ligação será desligada e salva com o status definido automaticamemente:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Your Status:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Informação Precedente Da Rechamada: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Your Status:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Extensão Alt Telefone Informação: minimizar
maximizar
Alt Telefone Info
- - height=500>
Não existe ninguem na sua sessão:
+ + height=500>
Não existe ninguem na sua sessão:
Voltar

Ligar novamente para o agente
- - height=500>
O cliente desligou:
+ + height=500>
O cliente desligou:
Voltar

Finalize e coloque o status da ligação -
- - height=550>
Chamada Wrapup: segundos restantes no wrapup

- + + height=550>
Chamada Wrapup: segundos restantes no wrapup

+

Revestimento Wrapup e movimento sobre -
- - height=500>
Sua sessão foi incapacitada
SAIR

Voltar + +
+


+ Fechar Mensagem +
+
+ + + height=500>
Sua sessão foi incapacitada
SAIR

Voltar
- - height=500>
Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema


Voltar + + height=500>
Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema


Voltar
- - height=500>

SAIR
+ + height=500>

SAIR
- +
- +
 
- - height=47>
Qualquer alteração feita nesta página não será salva. Você deve mudar as informações do cliente antes de desligar a ligação.
+ + height=47>
Qualquer alteração feita nesta página não será salva. Você deve mudar as informações do cliente antes de desligar a ligação.
- - height=460>
SELEÇÃO DE STATUS :       Desligue novamente       minimizar
+ + height=460>
SELEÇÃO DE STATUS :       Desligue novamente       minimizar
Fim da seleção de status
PAUSAR DISCAGEM DO AGENTE
@@ -8286,27 +10789,27 @@ Your Status:
Calls Dialing: - height=460>
SELECIONE Um CÓDIGO Da PAUSA :
+ + height=460>
SELECIONE Um CÓDIGO Da PAUSA :
Pausa Code Selection

 
- - height=460>
Selecionar um grupo ALIÁS :
+ + height=460>
Selecionar um grupo ALIÁS :
Grupo Alias Selecção

 
- + - - height=460>
Selecione uma data para o retorno :
+ + height=460>
Selecione uma data para o retorno :
Selecione uma data abaixo   @@ -8346,28 +10849,28 @@ Your Status:
Calls Dialing: ESTE AGENDAMENTO SO APARECE PARA MIM
";} ?> Comentarios do CB:

ENVIAR

- +

 
- - height=460>
SELECAO DO GRUPO DE ENTRADA DO CLOSER
+ + height=460>
SELECAO DO GRUPO DE ENTRADA DO CLOSER
Seleção do grupo de entrada do closer
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> LIGACAO MISTURADA(ligações externas ativadas)
- REINICIAR | @@ -8376,37 +10879,53 @@ Your Status:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ REINICIAR | + ENVIAR +



  +
+
+ + Canal Canal - ESTE AGENDAMENTO SO APARECE PARA MIM
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " LIGACAO MISTURADA
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -ATALHOS DE STATUS INATIVOS - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +ATALHOS DE STATUS INATIVOS + - ->
VICIDIAL web-client version:     CONFIGURAÇÃO:               Servidor:              
-Mostrar informações de discagem do canal

 
+ +>
Agent web-client version:     CONFIGURAÇÃO:               Servidor:              
+ +Mostrar informações de discagem do canal +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_br/voicemail_check.php b/LANG_www/agc_br/voicemail_check.php index 33ce0ac5..e6fdf4e0 100644 --- a/LANG_www/agc_br/voicemail_check.php +++ b/LANG_www/agc_br/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_de/active_list_refresh.php b/LANG_www/agc_de/active_list_refresh.php index fa146a57..8fa6b53a 100644 --- a/LANG_www/agc_de/active_list_refresh.php +++ b/LANG_www/agc_de/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_de/astguiclient.php b/LANG_www/agc_de/astguiclient.php index 88ca1187..39031642 100644 --- a/LANG_www/agc_de/astguiclient.php +++ b/LANG_www/agc_de/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Sie haben sich abgemeldet. Danke\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2802,12 +2804,12 @@ echo "\n"; - +
STATUS:
@@ -8434,7 +10953,7 @@ else DISCAR TELEFONE ALT
-Inicia Gravação
+Inicia Gravação

Web Form
+ 0) + {echo "\"Web
\n";} +?>
-Colocar em espera
-Transferir a conferência
+Colocar em espera
+Transferir a conferência
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Desligar Cliente

-
Enviar DTMF

+
Enviar DTMF

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ ID da gravação:
Telefone: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Comentários: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "astGUIclient web client\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF_de.jpg"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Managersends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Managersends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-LOGOUT
\n"; ?> +LOGOUT
\n"; ?>
Haupt Bedienfeld
INBOUND ANRUFE:
astGUIclient Web-Client VERSION: BUILD:
astGUIclient Web-Client VERSION: BUILD:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_de/conf_exten_check.php b/LANG_www/agc_de/conf_exten_check.php index b8b13c4a..c4c32671 100644 --- a/LANG_www/agc_de/conf_exten_check.php +++ b/LANG_www/agc_de/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is an is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_LOGOUT';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_de/dbconnect.php b/LANG_www/agc_de/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_de/dbconnect.php +++ b/LANG_www/agc_de/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_de/inbound_popup.php b/LANG_www/agc_de/inbound_popup.php index 38fa1855..a2d9f0e1 100644 --- a/LANG_www/agc_de/inbound_popup.php +++ b/LANG_www/agc_de/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -LIVE INBOUND ANRUF"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid ist unzulässig\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_de/live_exten_check.php b/LANG_www/agc_de/live_exten_check.php index 4ab2d371..90665fe4 100644 --- a/LANG_www/agc_de/live_exten_check.php +++ b/LANG_www/agc_de/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_de/manager_send.php b/LANG_www/agc_de/manager_send.php index 5f3dc010..079c2130 100644 --- a/LANG_www/agc_de/manager_send.php +++ b/LANG_www/agc_de/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Manager Senden: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "HILFE";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "ManagerSenden: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "HILFE";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten ist unzulässig or queryCID $queryCID ist unzulässig, Originate Befehl nicht abgesetzt\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate Befehl gesendet für Exten $exten Kanal $channel an $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate Befehl gesendet für Exten $exten Kanal $channel an $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context muß eingestellt werden\n"; echo "ext_priority $ext_priority muß eingestellt werden\n"; echo "\nOriginateName Action nicht gesendet\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context muß eingestellt werden\n"; echo "ext_priority $ext_priority muß eingestellt werden\n"; echo "\nOriginateNameVmail Action nicht gesendet\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten ist unzulässig or queryCID $queryCID ist unzulässig, Originate Befehl nicht abgesetzt\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten ist unzulässig or queryCID $queryCID ist unzulässig, Originate Befehl nicht abgesetzt\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate Befehl gesendet für Exten $exten Kanal $channel an $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Sie sind nicht erlaubt, in anderen Anbieters Sitzungen DFÜ $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate Befehl gesendet für Exten $exten Kanal $channel an $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten ist unzulässig or ext_context $ext_context or queryCID $queryCID ist unzulässig, Hangup Befehl nicht abgesetzt\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup Befehl gesendet für Kanal $channel an $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid muß eingestellt werden\n"; echo "lead_id $lead_id muß eingestellt werden\n"; echo "\nRedirectVD Action nicht gesendet\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority muß eingestellt werden\n"; echo "parkedby $parkedby muß eingestellt werden\n"; echo "\nRedirectToPark Action nicht gesendet\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context muß eingestellt werden\n"; echo "ext_priority $ext_priority muß eingestellt werden\n"; echo "\nRedirectFromPark Action nicht gesendet\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context muß eingestellt werden\n"; echo "ext_priority $ext_priority muß eingestellt werden\n"; echo "\nRedirectName Action nicht gesendet\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context muß eingestellt werden\n"; echo "ext_priority $ext_priority muß eingestellt werden\n"; echo "\nRedirectNameVmail Action nicht gesendet\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Eine dieser Variablen ist unzulässig:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanal $channel ist nicht Live an $call_server_ip, Redirect Befehl nicht abgesetzt\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect Befehl nicht abgesetzt\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX Befehl gesendet für Kanal $channel an $call_server_ip and \nHungup $extrachannel an $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel an $call_server_ip, Hungup $extrachannel an $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel an $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Eine dieser Variablen ist unzulässig:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference an $server_ip, Redirect Befehl nicht abgesetzt\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kann keine leere Konferenz finden an $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference an $server_ip, Redirect Befehl nicht abgesetzt\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kann keine leere Konferenz finden an $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanal $channel ist nicht Live an $call_server_ip, Redirect Befehl nicht abgesetzt\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra Befehl gesendet für Kanal $channel and \nExtraKanal $extrachannel\n to $exten an $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten an $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra Befehl gesendet für Kanal $channel an $call_server_ip and \nExtraKanal $extrachannel\n to $exten an $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Eine dieser Variablen ist unzulässig:\n"; - echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; - echo "ExtraKanal $extrachannel muss länger als 2 Buchstaben sein\n"; - echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; - echo "exten $exten muß eingestellt werden\n"; - echo "ext_context $ext_context muß eingestellt werden\n"; - echo "ext_priority $ext_priority muß eingestellt werden\n"; - echo "\nRedirect Action nicht gesendet\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanal $channel ist nicht Live an $call_server_ip, Redirect Befehl nicht abgesetzt\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect Befehl nicht abgesetzt\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX Befehl gesendet für Kanal $channel an $call_server_ip and \nHungup $extrachannel an $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel an $call_server_ip, Hungup $extrachannel an $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel an $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Eine dieser Variablen ist unzulässig:\n"; - echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; - echo "ExtraKanal $extrachannel muss länger als 2 Buchstaben sein\n"; - echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; - echo "exten $exten muß eingestellt werden\n"; - echo "ext_context $ext_context muß eingestellt werden\n"; - echo "ext_priority $ext_priority muß eingestellt werden\n"; - echo "\nRedirect Action nicht gesendet\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Kann keine leere Konferenz finden an $server_ip, Redirect Befehl nicht abgesetzt\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kann keine leere Konferenz finden an $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanal $channel ist nicht Live an $call_server_ip, Redirect Befehl nicht abgesetzt\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra Befehl gesendet für Kanal $channel and \nExtraKanal $extrachannel\n to $exten an $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten an $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra Befehl gesendet für Kanal $channel an $call_server_ip and \nExtraKanal $extrachannel\n to $exten an $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Eine dieser Variablen ist unzulässig:\n"; echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context muß eingestellt werden\n"; echo "ext_priority $ext_priority muß eingestellt werden\n"; echo "\nRedirect Action nicht gesendet\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect Befehl gesendet für Kanal $channel an $server_ip\n"; + echo "Redirect Befehl gesendet für Kanal $channel an $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanal $channel ist unzulässig or queryCID $queryCID ist unzulässig or filename: $filename ist unzulässig, $ACTION Befehl nicht abgesetzt\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanal $channel ist nicht Live an $server_ip, $ACTION Befehl nicht abgesetzt\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION Befehl gesendet für Kanal $channel an $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION Befehl gesendet für Kanal $channel an $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanal $channel ist unzulässig or exten $exten ist unzulässig or filename: $filename ist unzulässig, $ACTION Befehl nicht abgesetzt\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going an in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going an in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION Befehl gesendet für Kanal $channel an $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n AUFNAHME DAUERT BIS ZU 60 MINUTEN\n"; } - echo "$ACTION Befehl gesendet für Kanal $channel an $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n AUFNAHME DAUERT BIS ZU 60 MINUTEN\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Konferenz $exten, Stage $stage ist unzulässig or queryCID $queryCID ist unzulässig, Originate Befehl nicht abgesetzt\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume Befehl gesendet für Konferenz $exten, Stage $stage Kanal $channel an $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume Befehl gesendet für Konferenz $exten, Stage $stage Kanal $channel an $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_de/park_calls_display.php b/LANG_www/agc_de/park_calls_display.php index 1a3b34ce..0604f966 100644 --- a/LANG_www/agc_de/park_calls_display.php +++ b/LANG_www/agc_de/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_de/timeclock.php b/LANG_www/agc_de/timeclock.php index bcecf8d1..31da253f 100644 --- a/LANG_www/agc_de/timeclock.php +++ b/LANG_www/agc_de/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "Diese Benutzer und Passwort Kombination ist nicht gültig
Bitte noch einmal:"; echo"\n"; - echo"VICIDIAL: Stechuhr\n"; + echo"Agent Stechuhr\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'START') ) { - ### You cannot log in or out within 30 Sekunden of your last login/logout + ### You cannot log in or out within 30Sekunden of your last login/logout $VDdisplayMESSAGE = "Bitte warten Sie wenigstens 30 Sekunden zwischen dem an- und abmelden und umgekehrt"; echo"\n"; - echo"VICIDIAL: Stechuhr\n"; + echo"Agent Stechuhr\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "ZURÜCK zur Einstiegsseite";} echo"\n"; - echo"VICIDIAL: Stechuhr\n"; + echo"Agent Stechuhr\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL: Stechuhr\n"; + echo"Agent Stechuhr\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL: Stechuhr\n"; + echo"Agent Stechuhr\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_de/vdc_db_query.php b/LANG_www/agc_de/vdc_db_query.php index 84ea8b9a..6675183b 100644 --- a/LANG_www/agc_de/vdc_db_query.php +++ b/LANG_www/agc_de/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Datenbank-Abfrage Script"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Datenbank-Abfrage Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Passwort:
\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPasswort:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Gruppe Wählen $closer_choice ist unzulässig\n"; - exit; - } + { + $channel_live=0; + echo "Gruppe Wählen $closer_choice ist unzulässig\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Gruppe Wählen $closer_choice ist beim Benutzer registriert worden $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories ist unzulässig\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories ist beim Benutzer registriert worden $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "HOPPER LEER\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context ist unzulässig\n"; - exit; - } + { + $channel_live=0; + echo "HOPPER LEER\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context ist unzulässig\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST ANRUF TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST ANRUF TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # ANRUFOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "HOPPER LEER\n"; + { + echo "HOPPER LEER\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context ist unzulässig\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " ANRUF NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context ist unzulässig\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # ANRUFOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Eingefügt: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "LOG NICHT EINGEGEBEN\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Eingefügt: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "LOG NICHT EINGEGEBEN\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Kampagne $campaign ist unzulässig\n"; - echo "lead_id $lead_id ist unzulässig\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Kampagne $campaign ist unzulässig\n"; + echo "lead_id $lead_id ist unzulässig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Kampagne $campaign ist unzulässig\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Kampagne $campaign ist unzulässig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send an to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send an to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If ANRUFBK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If ANRUFBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user an $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user an $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten ist unzulässig\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten ist unzulässig\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a LOGOUT record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation an the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a LOGOUT record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation an the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id ist unzulässig\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id ist unzulässig\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### ANRUFBACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### START Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Benutzer $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Nachname Attempt, Date of Nachname Non-Contact, Date of Nachname Contact, Date of Nachname Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### START QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' wurde geändert zu ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id ist unzulässig\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id ist unzulässig\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage ist unzulässig\n"; - exit; - } + { + echo "stage $stage ist unzulässig\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### START QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' ist jetzt im Status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list ist unzulässig\n"; - exit; - } + { + echo "favorites list $favorites_list ist unzulässig\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status ist unzulässig\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### START QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status ist unzulässig\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pause Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
FAVORITEN       bearbeiten
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Anrufe in der Warteschlange Profil behindertengerechte für diese Kampagne\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data an calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info an the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           ANRUF GROUP     TYPE  
TAKE ANRUF     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Anrufe in der Warteschlange Profil behindertengerechte für diese Kampagne\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pause Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_de/vdc_script_display.php b/LANG_www/agc_de/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_de/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_de/vicidial.php b/LANG_www/agc_de/vicidial.php index 2b7b2090..f62736bf 100644 --- a/LANG_www/agc_de/vicidial.php +++ b/LANG_www/agc_de/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Sie haben sich abgemeldet. Danke\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls an hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of Sekunden for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofSekunden for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name an login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST an server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a WÄHLEN link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups an campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call Sekunden counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER OVERRIDE OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER OVERRIDE OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + VICIDIAL web client: Re-Login\n"; +echo "Agent web client: Re-Login\n"; echo "\n"; -echo "\n"; +echo "\n"; echo " Stechuhr
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Deutsch
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "VICIDIAL web client: Kampagne Login\n"; + echo "Agent web client: Kampagne Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Stechuhr
\n"; echo "
Re-Login
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Deutsch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Benutzer Login

"; @@ -665,15 +740,17 @@ echo "
VICIDIAL web client: Login\n"; + echo "Agent web client: Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Stechuhr
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Deutsch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Login VICIDIAL web client: Telefon Login\n"; +echo "Agent web client: Telefon Login\n"; echo "\n"; -echo "\n"; +echo "\n"; echo " Stechuhr
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Deutsch
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Passwort:
\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPasswort:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "VICIDIAL web client: VICIDIAL Kampagne Login\n"; + echo "Agent web client: Kampagne Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Stechuhr
\n"; echo "
Telefon Login
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_Sekunden = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PZURÜCKSETZEN_1|PZURÜCKSETZEN_2|PZURÜCKSETZEN_3|PZURÜCKSETZEN_4|PZURÜCKSETZEN_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PZURÜCKSETZEN_1|PZURÜCKSETZEN_2|PZURÜCKSETZEN_3|PZURÜCKSETZEN_4|PZURÜCKSETZEN_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PZURÜCKSETZEN_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PZURÜCKSETZEN_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PZURÜCKSETZEN_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PZURÜCKSETZEN_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PZURÜCKSETZEN_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "VICIDIAL web client: Kampagne Login\n"; + echo "Agent web client: Kampagne Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Stechuhr
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Deutsch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "VICIDIAL web client: Telefon Login Error\n"; + echo "Agent web client: Telefon Login Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Stechuhr
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Deutsch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "VICIDIAL web client\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TelefonSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed an this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login an phone: $SIP_user zur Kampagne: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login an phone: $SIP_user zur Kampagne: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NEU record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today an that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today an that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "VICIDIAL web client: VICIDIAL Kampagne Login\n"; + echo "Agent web client: Kampagne Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Stechuhr
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Es sind für diese Kampagne keine aktiven Adressen mehr im Hopper\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1854,9 +2079,9 @@ echo "
VICIDIAL web client: VICIDIAL Kampagne Login\n"; + echo "Agent web client: Kampagne Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Stechuhr
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callSekunden counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -LOGOUT\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +LOGOUT\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     Session ID:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Live Anruf
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + MANUELLER ANRUF       SCHNELL WAHL
- + X AKTIVE WIEDERVORLAGEN
- +
- Sekunden: +Sekunden:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - WÄHLEN\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
WIEDERVORLAGEN FÜR AGENT :
Klicken Sie jetzt unten auf eine Wiedervorlage, um den Kunden zurückzurufen. Danach wird die Wiedervorlage aus der Liste gelöscht.. + + height=460>
WIEDERVORLAGEN FÜR AGENT :
Klicken Sie jetzt unten auf eine Wiedervorlage, um den Kunden zurückzurufen. Danach wird die Wiedervorlage aus der Liste gelöscht..

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
NEUE MANUELLE ADRESSE FÜR :

Tragen Sie unten die Informationen zu der neuen Adresse ein, die SIE wählen möchten. + + height=460>
NEUE MANUELLE ADRESSE FÜR :

Tragen Sie unten die Informationen zu der neuen Adresse ein, die SIE wählen möchten.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Ihr Status:
Calls Dialing:
- -
Wahl Code:   (Dieses ist normalerweise 49 in Deutschland)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Ihr Status:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Transfer - Konferenz            
+ Transfer - Konferenz            
+ + + + + + - LOKALE SUPERVISOR NACHFRAGE - Nachfrage auflegen - Beide Leitungen auflegen + + + + + -
- - Anzurufende Telefonnummer   + + + + + -
+ + + + +
+ + LOKALE SUPERVISOR NACHFRAGE     + + Nachfrage auflegen +
+ seconds +   + channel + + BERATENDE   + + Beide Leitungen auflegen +
+ Anzurufende Telefonnummer +   +   - WÄHL OVERRIDE   - NACHFRAGE VERLASSEN - Verbinden ohne Nachfrage - D1 - D2 + + WÄHL OVERRIDE + + NACHFRAGE VERLASSEN +
+ Verbinden ohne Nachfrage +   + mit Kunde wählen +   + Kundenanruf parken +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- Sekunden   - channel - mit Kunde wählen - Kundenanruf parken - Blind Transfer VMail Message
height=70> + +
 Anrufe in der Warteschlange:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Hide Anrufe in der Warteschlange\n";} + else + {echo "Zeigen Anrufe in der Warteschlange\n";} + } +?> + + + +
  +Andere Bevollmächtigte Status:  
 
+ +
+Verfügbare Transfer Agents:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Adresse hat das Gesprächsergebnis:

-
- - height=70> + +
height=70>
Gesprächsergebniss Tastaturkürzel: Wenn aktiviert, drücken sie einfach die entsprechende Taste, um das Gesprächsgebnis zu speichern. Der Anruf wird dann automatisch aufgelegt.:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Ihr Status:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Informationen zur letzten Wiedervorlage: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Ihr Status:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Weitere alternative Telefonnummern: minimieren
maximieren
Alt Telefon Info
- - height=500>
Niemand ist in ihrer Konferenz.:
+ + height=500>
Niemand ist in ihrer Konferenz.:
Zurück

Agent wieder anrufen
- - height=500>
Kunde hat aufgelegt:
+ + height=500>
Kunde hat aufgelegt:
Zurück

Ende und Gesprächsergebniss -
- - height=550>
Anruf Nachbereitung: Verbleibende Sekunden der Nachbereitung

- + + height=550>
Anruf Nachbereitung: Verbleibende Sekunden der Nachbereitung

+

Beende Nachbereitung und mache weiter -
- - height=500>
Ihre Sitzung ist gesperrt worden
LOGOUT

Zurück + +
+


+ Close Message +
+
+ + + height=500>
Ihre Sitzung ist gesperrt worden
LOGOUT

Zurück
- - height=500>
Es ist eine Zeit-Synchronisation Problem mit Ihrem System haben, wenden Sie sich bitte sagen Sie sich an Ihren Systemadministrator


Zurück + + height=500>
Es ist eine Zeit-Synchronisation Problem mit Ihrem System haben, wenden Sie sich bitte sagen Sie sich an Ihren Systemadministrator


Zurück
- - height=500>

LOGOUT
+ + height=500>

LOGOUT
- +
- +
 
- - height=47>
Die Änderungen an den Kundendaten werden nicht übernommen. Sie müssen die Kundendaten ändern bevor Sie aufgelegt haben..
+ + height=47>
Die Änderungen an den Kundendaten werden nicht übernommen. Sie müssen die Kundendaten ändern bevor Sie aufgelegt haben..
- - height=460>
ANRUF ABSCHLIESSEN :       Wieder Auflegen       minimieren
+ + height=460>
ANRUF ABSCHLIESSEN :       Wieder Auflegen       minimieren
Gesprächsergebnis Auswahl
WÄHLPAUSE
@@ -8286,27 +10789,27 @@ Ihr Status:
Calls Dialing: - height=460>
WÄHLEN Sie Einen PAUSE CODE :
+ + height=460>
WÄHLEN Sie Einen PAUSE CODE :
Pause Code Selection

 
- - height=460>
Wählen Sie eine Gruppe ALIAS :
+ + height=460>
Wählen Sie eine Gruppe ALIAS :
Gruppe Alias Auswahl

 
- + - - height=460>
Wählen Sie ein Rückrufdatum :
+ + height=460>
Wählen Sie ein Rückrufdatum :
Wählen Sie unten ein Datum   @@ -8346,28 +10849,28 @@ Ihr Status:
Calls Dialing: NUR MEINE WIEDERVORLAGE
";} ?> WV Anmerkungen:

ÜBERNEHMEN

- +

 
- - height=460>
SUPERVISOR INBOUND GRUPPENWAHL
+ + height=460>
SUPERVISOR INBOUND GRUPPENWAHL
Supervisor Inbound Gruppenwahl
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> INBOUND und OUTBOUND(Outbound aktiviert)
- ZURÜCKSETZEN | @@ -8376,37 +10879,53 @@ Ihr Status:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ ZURÜCKSETZEN | + ÜBERNEHMEN +



  +
+
+ + Kanal Kanal - NUR MEINE WIEDERVORLAGE
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " INBOUND und OUTBOUND
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -TASTATURKÜRZEL DEAKTIVIERT - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +TASTATURKÜRZEL DEAKTIVIERT + - ->
VICIDIAL Web-Client Version:     BUILD:               Server:              
-Konferenz Informationen anzeigen

 
+ +>
Agent web-client version:     BUILD:               Server:              
+ +Konferenz Informationen anzeigen +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_de/voicemail_check.php b/LANG_www/agc_de/voicemail_check.php index e731bb90..e0c12857 100644 --- a/LANG_www/agc_de/voicemail_check.php +++ b/LANG_www/agc_de/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_el/active_list_refresh.php b/LANG_www/agc_el/active_list_refresh.php index 5e47093b..5fc286c3 100644 --- a/LANG_www/agc_el/active_list_refresh.php +++ b/LANG_www/agc_el/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_el/astguiclient.php b/LANG_www/agc_el/astguiclient.php index ec7a082f..9de655b0 100644 --- a/LANG_www/agc_el/astguiclient.php +++ b/LANG_www/agc_el/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2802,12 +2804,12 @@ echo "\n"; - +
STATUS:
@@ -8434,7 +10953,7 @@ else ALT. NUMMER WÄHLEN
-Starte Aufnahme
+Starte Aufnahme

Web Formular
+ 0) + {echo "\"Web
\n";} +?>
-Parke Anruf
-Transfer - Konferenz
+Parke Anruf
+Transfer - Konferenz
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Kunden auflegen

-
DTMF Senden

+
DTMF Senden

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ Aufzeichnungs ID:
Telefon: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Anmerkungen: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "χειριστής astGUIclient\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Διευθυντήςsends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Διευθυντήςsends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-ΑΠΟΣΥΝΔΕΣΗ
\n"; ?> +ΑΠΟΣΥΝΔΕΣΗ
\n"; ?>
Κύριος Πίνακας
ΕΙΣΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ:
ΈΚΔΟΣΗ astGUIclient: ΔΗΜΙΟΥΡΓΙΑ:
ΈΚΔΟΣΗ astGUIclient: ΔΗΜΙΟΥΡΓΙΑ:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_el/conf_exten_check.php b/LANG_www/agc_el/conf_exten_check.php index 8ce4b074..2340ce6f 100644 --- a/LANG_www/agc_el/conf_exten_check.php +++ b/LANG_www/agc_el/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is στο is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_ΑΠΟΣΥΝΔΕΣΗ';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Κατάσταση: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Κατάσταση: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_el/dbconnect.php b/LANG_www/agc_el/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_el/dbconnect.php +++ b/LANG_www/agc_el/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_el/inbound_popup.php b/LANG_www/agc_el/inbound_popup.php index 6777df10..a724b0bd 100644 --- a/LANG_www/agc_el/inbound_popup.php +++ b/LANG_www/agc_el/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -ΕΝΕΡΓΗ ΕΙΣΕΡΧΟΜΕΝΗ ΚΛΗΣΗ"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid δεν ισχύει\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_el/live_exten_check.php b/LANG_www/agc_el/live_exten_check.php index 0b363a58..9d9ce193 100644 --- a/LANG_www/agc_el/live_exten_check.php +++ b/LANG_www/agc_el/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_el/manager_send.php b/LANG_www/agc_el/manager_send.php index 24fca6b6..07af0f37 100644 --- a/LANG_www/agc_el/manager_send.php +++ b/LANG_www/agc_el/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Ο διαχτής στέλνει: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "ΒΟΗΘΕΙΑ";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Ο διαχτής στέλνει: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "ΒΟΗΘΕΙΑ";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten δεν ισχύει or queryCID $queryCID δεν ισχύει, Originate εντολή που δεν έγινε εισαγωγή\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate εντολή που στέλνεται για Exten $exten Κανάλι $channel στο $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate εντολή που στέλνεται για Exten $exten Κανάλι $channel στο $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context πρέπει να τεθεί\n"; echo "ext_priority $ext_priority πρέπει να τεθεί\n"; echo "\nOriginateName Action μην σταλμένος\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context πρέπει να τεθεί\n"; echo "ext_priority $ext_priority πρέπει να τεθεί\n"; echo "\nOriginateNameVmail Action μην σταλμένος\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten δεν ισχύει or queryCID $queryCID δεν ισχύει, Originate εντολή που δεν έγινε εισαγωγή\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten δεν ισχύει or queryCID $queryCID δεν ισχύει, Originate εντολή που δεν έγινε εισαγωγή\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate εντολή που στέλνεται για Exten $exten Κανάλι $channel στο $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Δεν επιτρέπεται να καλέσετε σε άλλες συνεδρίες πράκτορα $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate εντολή που στέλνεται για Exten $exten Κανάλι $channel στο $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten δεν ισχύει or ext_context $ext_context or queryCID $queryCID δεν ισχύει, Hangup εντολή που δεν έγινε εισαγωγή\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid πρέπει να τεθεί\n"; echo "lead_id $lead_id πρέπει να τεθεί\n"; echo "\nRedirectVD Action μην σταλμένος\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority πρέπει να τεθεί\n"; echo "parkedby $parkedby πρέπει να τεθεί\n"; echo "\nRedirectToPark Action μην σταλμένος\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context πρέπει να τεθεί\n"; echo "ext_priority $ext_priority πρέπει να τεθεί\n"; echo "\nRedirectFromPark Action μην σταλμένος\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context πρέπει να τεθεί\n"; echo "ext_priority $ext_priority πρέπει να τεθεί\n"; echo "\nRedirectName Action μην σταλμένος\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context πρέπει να τεθεί\n"; echo "ext_priority $ext_priority πρέπει να τεθεί\n"; echo "\nRedirectNameVmail Action μην σταλμένος\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Κανάλι $channel δεν είναι ενεργό στο $call_server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect εντολή που δεν έγινε εισαγωγή\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip and \nHungup $extrachannel στο $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel στο $call_server_ip, Hungup $extrachannel στο $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel στο $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Δεν υπάρχει κενή διάσκεψη στο $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Δεν υπάρχει κενή διάσκεψη στο $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Κανάλι $channel δεν είναι ενεργό στο $call_server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra εντολή που στέλνεται για Κανάλι $channel and \nExtraΚανάλι $extrachannel\n to $exten στο $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten στο $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip and \nExtraΚανάλι $extrachannel\n to $exten στο $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; - echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; - echo "ExtraΚανάλι $extrachannel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; - echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; - echo "exten $exten πρέπει να τεθεί\n"; - echo "ext_context $ext_context πρέπει να τεθεί\n"; - echo "ext_priority $ext_priority πρέπει να τεθεί\n"; - echo "\nRedirect Action μην σταλμένος\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Κανάλι $channel δεν είναι ενεργό στο $call_server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect εντολή που δεν έγινε εισαγωγή\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip and \nHungup $extrachannel στο $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel στο $call_server_ip, Hungup $extrachannel στο $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel στο $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; - echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; - echo "ExtraΚανάλι $extrachannel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; - echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; - echo "exten $exten πρέπει να τεθεί\n"; - echo "ext_context $ext_context πρέπει να τεθεί\n"; - echo "ext_priority $ext_priority πρέπει να τεθεί\n"; - echo "\nRedirect Action μην σταλμένος\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Δεν υπάρχει κενή διάσκεψη στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Δεν υπάρχει κενή διάσκεψη στο $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Κανάλι $channel δεν είναι ενεργό στο $call_server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra εντολή που στέλνεται για Κανάλι $channel and \nExtraΚανάλι $extrachannel\n to $exten στο $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten στο $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip and \nExtraΚανάλι $extrachannel\n to $exten στο $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context πρέπει να τεθεί\n"; echo "ext_priority $ext_priority πρέπει να τεθεί\n"; echo "\nRedirect Action μην σταλμένος\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect εντολή που στέλνεται για Κανάλι $channel στο $server_ip\n"; + echo "Redirect εντολή που στέλνεται για Κανάλι $channel στο $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Κανάλι $channel δεν ισχύει or queryCID $queryCID δεν ισχύει or filename: $filename δεν ισχύει, $ACTION εντολή που δεν έγινε εισαγωγή\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, $ACTION εντολή που δεν έγινε εισαγωγή\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION εντολή που στέλνεται για Κανάλι $channel στο $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION εντολή που στέλνεται για Κανάλι $channel στο $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Κανάλι $channel δεν ισχύει or exten $exten δεν ισχύει or filename: $filename δεν ισχύει, $ACTION εντολή που δεν έγινε εισαγωγή\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going στο in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going στο in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION εντολή που στέλνεται για Κανάλι $channel στο $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n Η ΚΑΤΑΓΡΑΦΗ ΘΑ ΔΙΑΡΚΕΣΕΙ ΜΕΧΡΙ 60 ΛΕΠΤΑ\n"; } - echo "$ACTION εντολή που στέλνεται για Κανάλι $channel στο $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n Η ΚΑΤΑΓΡΑΦΗ ΘΑ ΔΙΑΡΚΕΣΕΙ ΜΕΧΡΙ 60 ΛΕΠΤΑ\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Διάσκεψη $exten, Stage $stage δεν ισχύει or queryCID $queryCID δεν ισχύει, Originate εντολή που δεν έγινε εισαγωγή\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume εντολή που στέλνεται για Διάσκεψη $exten, Stage $stage Κανάλι $channel στο $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume εντολή που στέλνεται για Διάσκεψη $exten, Stage $stage Κανάλι $channel στο $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_el/park_calls_display.php b/LANG_www/agc_el/park_calls_display.php index 52c6f8c7..0960e767 100644 --- a/LANG_www/agc_el/park_calls_display.php +++ b/LANG_www/agc_el/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_el/timeclock.php b/LANG_www/agc_el/timeclock.php index 9bf9426c..0d1cc06b 100644 --- a/LANG_www/agc_el/timeclock.php +++ b/LANG_www/agc_el/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "Ο χρήστη και τον κωδικό πρόσβασης που πληκτρολογήσατε δεν είναι ενεργό στο σύστημα
Παρακαλώ δοκιμάστε ξανά:"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'ΕΝΑΡΞΗ') ) { - ### You cannot log in or out within 30 δευτερόλεπτα of your last login/logout + ### You cannot log in or out within 30δευτερόλεπτα of your last login/logout $VDdisplayMESSAGE = "Δεν μπορείτε να συνδεθείτε ή να αναφέρονται μέσα σε 30 δευτερόλεπτα από την τελευταία σας login ή logout"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "ΕΠΙΣΤΡΟΦΗ στην οθόνη υποδοχής";} echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_el/vdc_db_query.php b/LANG_www/agc_el/vdc_db_query.php index da76780e..2b839831 100644 --- a/LANG_www/agc_el/vdc_db_query.php +++ b/LANG_www/agc_el/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Κώδικας ερώτησης βάσεων δεδομένων"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Κώδικας ερώτησης βάσεων δεδομένων"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Σύνδεση:
\n"; - $VDdisplayMESSAGE.= "Manager Κωδικός πρόσβασης:
\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΣύνδεση:
\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΚωδικός πρόσβασης:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Επιλογή ομάδας $closer_choice δεν ισχύει\n"; - exit; - } + { + $channel_live=0; + echo "Επιλογή ομάδας $closer_choice δεν ισχύει\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Επιλογή ομάδας $closer_choice έχει καταχωρηθεί στο χρήστη $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories δεν ισχύει\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories έχει καταχωρηθεί στο χρήστη $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "ΚΕΝΟΣ HOPPER\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context δεν ισχύει\n"; - exit; - } + { + $channel_live=0; + echo "ΚΕΝΟΣ HOPPER\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context δεν ισχύει\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST ΚΛΗΣΗ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST ΚΛΗΣΗ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # ΚΛΗΣΗOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "ΚΕΝΟΣ HOPPER\n"; + { + echo "ΚΕΝΟΣ HOPPER\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context δεν ισχύει\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " ΚΛΗΣΗ NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context δεν ισχύει\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # ΚΛΗΣΗOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Εισαγωγή : $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Εισαγωγή : $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Εκστρατεία $campaign δεν ισχύει\n"; - echo "lead_id $lead_id δεν ισχύει\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Εκστρατεία $campaign δεν ισχύει\n"; + echo "lead_id $lead_id δεν ισχύει\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Εκστρατεία $campaign δεν ισχύει\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Εκστρατεία $campaign δεν ισχύει\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send στο to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send στο to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If ΚΛΗΣΗBK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If ΚΛΗΣΗBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user στο $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user στο $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten δεν ισχύει\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten δεν ισχύει\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a ΑΠΟΣΥΝΔΕΣΗ record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ΑΠΟΣΥΝΔΕΣΗ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation στο the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a ΑΠΟΣΥΝΔΕΣΗ record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ΑΠΟΣΥΝΔΕΣΗ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation στο the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id δεν ισχύει\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id δεν ισχύει\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### ΚΛΗΣΗBACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### ΕΝΑΡΞΗ Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Χρήστης $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Επίθετο Attempt, Date of Επίθετο Non-Contact, Date of Επίθετο Contact, Date of Επίθετο Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' έχει αλλαχτεί ' . $dispo_choice . " Κατάσταση\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id δεν ισχύει\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id δεν ισχύει\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage δεν ισχύει\n"; - exit; - } + { + echo "stage $stage δεν ισχύει\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' είναι τώρα στη κατάσταση ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list δεν ισχύει\n"; - exit; - } + { + echo "favorites list $favorites_list δεν ισχύει\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status δεν ισχύει\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status δεν ισχύει\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Παύση Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
ΑΓΑΠΗΜΕΝΑ       διορθώστε
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Καλεί σε ουρά Δείτε τα άτομα με ειδικές ανάγκες για αυτή την καμπάνια\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data στο calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info στο the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           ΚΛΗΣΗ GROUP     TYPE  
TAKE ΚΛΗΣΗ     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Καλεί σε ουρά Δείτε τα άτομα με ειδικές ανάγκες για αυτή την καμπάνια\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Παύση Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_el/vdc_script_display.php b/LANG_www/agc_el/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_el/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_el/vicidial.php b/LANG_www/agc_el/vicidial.php index f6c6fa05..dfa72ef1 100644 --- a/LANG_www/agc_el/vicidial.php +++ b/LANG_www/agc_el/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls στο hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of δευτερόλεπτα for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofδευτερόλεπτα for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name στο login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST στο server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a ΚΛΗΣΗ link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups στο campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call δευτερόλεπτα counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER OVERRIDE OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER OVERRIDE OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + χειριστής VICIDIAL: Επανασύνδεση\n"; +echo "Agent web client: Επανασύνδεση\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Ελληνικά
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "χειριστής VICIDIAL: Σύνδεση εκστρατείας\n"; + echo "Agent web client: Σύνδεση εκστρατείας\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Επανασύνδεση
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Σύνδεση χρήστη

"; @@ -665,15 +740,17 @@ echo "
χειριστής VICIDIAL: Σύνδεση\n"; + echo "Agent web client: Σύνδεση\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Σύνδεση χειριστής VICIDIAL: Σύνδεση Τηλεφώνου\n"; +echo "Agent web client: Σύνδεση Τηλεφώνου\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Ελληνικά
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Σύνδεση:
\n"; - $VDdisplayMESSAGE.= "Manager Κωδικός πρόσβασης:
\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΣύνδεση:
\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΚωδικός πρόσβασης:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "χειριστής VICIDIAL: VICIDIAL Σύνδεση εκστρατείας\n"; + echo "Agent web client: Σύνδεση εκστρατείας\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Σύνδεση Τηλεφώνου
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Σύνδεση: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_δευτερόλεπτα = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PΕΠΑΝΑΦΟΡΑ_1|PΕΠΑΝΑΦΟΡΑ_2|PΕΠΑΝΑΦΟΡΑ_3|PΕΠΑΝΑΦΟΡΑ_4|PΕΠΑΝΑΦΟΡΑ_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_1|PΕΠΑΝΑΦΟΡΑ_2|PΕΠΑΝΑΦΟΡΑ_3|PΕΠΑΝΑΦΟΡΑ_4|PΕΠΑΝΑΦΟΡΑ_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "χειριστής VICIDIAL: Σύνδεση εκστρατείας\n"; + echo "Agent web client: Σύνδεση εκστρατείας\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "χειριστής VICIDIAL: Σύνδεση Τηλεφώνου Error\n"; + echo "Agent web client: Σύνδεση Τηλεφώνου Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "χειριστής VICIDIAL\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($ΤηλSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed στο this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login στο phone: $SIP_user στην εκστρατεία: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login στο phone: $SIP_user στην εκστρατεία: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a ΝΕΟ record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today στο that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today στο that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "χειριστής VICIDIAL: VICIDIAL Σύνδεση εκστρατείας\n"; + echo "Agent web client: Σύνδεση εκστρατείας\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Συγγνώμη, δεν υπάρχουν οδηγοί στον hopper για αυτήν την εκστρατεία\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Σύνδεση: \n
"; @@ -1854,9 +2079,9 @@ echo "
χειριστής VICIDIAL: VICIDIAL Σύνδεση εκστρατείας\n"; + echo "Agent web client: Σύνδεση εκστρατείας\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Σύνδεση: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callδευτερόλεπτα counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -ΑΠΟΣΥΝΔΕΣΗ\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +ΑΠΟΣΥΝΔΕΣΗ\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     ID εργασίας:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Ενεργή κλήση
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + ΧΕΙΡ.ΚΛΗΣΗ       ΓΡΗΓΟΡΟΣ ΠΙΝΑΚΑΣ
- + X ΕΝΕΡΓΕΣ ΕΠΑΝΑΚΛΗΣΕΙΣ
- +
- δευτερόλεπτα: +δευτερόλεπτα:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - ΚΛΗΣΗ\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
ΕΠΑΝΑΚΛΗΣΕΙΣ ΓΙΑ ΤΟΝ ΧΕΙΡΙΣΤΗ :
Επιλέξτε μία επανάκληση παρακάτω για να καλέσετε τον πελάτη τώρα. Εάν επιλέξετε μία εγγραφή παρακάτω, θα διαγραφεί από την λίστα. + + height=460>
ΕΠΑΝΑΚΛΗΣΕΙΣ ΓΙΑ ΤΟΝ ΧΕΙΡΙΣΤΗ :
Επιλέξτε μία επανάκληση παρακάτω για να καλέσετε τον πελάτη τώρα. Εάν επιλέξετε μία εγγραφή παρακάτω, θα διαγραφεί από την λίστα.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
ΝΕΑ ΧΕΙΡΟΚΙΝΗΤΗ ΚΛΗΣΗ ΟΔΗΓΟΥ ΓΙΑ :

Καταχωρήστε τις πληροφορίες παρακάτω για τον νέο οδηγό που επιθυμήτε να καλέσετε. + + height=460>
ΝΕΑ ΧΕΙΡΟΚΙΝΗΤΗ ΚΛΗΣΗ ΟΔΗΓΟΥ ΓΙΑ :

Καταχωρήστε τις πληροφορίες παρακάτω για τον νέο οδηγό που επιθυμήτε να καλέσετε.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Your Κατάσταση:
Calls Dialing:
- -
Κωδικός Κλήσης:   (Αυτό είναι συνήθως ένα 1 στις ΗΠΑ)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Your Κατάσταση: - -
- Μεταφορά - διάσκεψη            
+ Μεταφορά - διάσκεψη            
+ + + + + + - ΤΟΠΙΚΟΣ CLOSER - Κλείσιμο Γραμμής Xfer - Κλείσιμο και τις δύο γραμμές + + + + + -
- - Αριθμός για κλήση   + + + + + -
+ + + + +
+ + ΤΟΠΙΚΟΣ CLOSER     + + Κλείσιμο Γραμμής Xfer +
+ seconds +   + channel + + ΣΥΜΒΟΥΛΕΥΤΙΚΗ   + + Κλείσιμο και τις δύο γραμμές +
+ Αριθμός για κλήση +   +   - Υπέρβαση Κλήσης   - ΑΠΟΧΩΡΗΣΗ 3μελής ΚΛΗΣΗΣ - Τυφλή μεταφορά κλήσης - D1 - D2 + + Υπέρβαση Κλήσης + + ΑΠΟΧΩΡΗΣΗ 3μελής ΚΛΗΣΗΣ +
+ Τυφλή μεταφορά κλήσης +   + Κλήση με τον πελάτη +   + Στάθμευση κλήσης πελάτη +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- δευτερόλεπτα   - channel - Κλήση με τον πελάτη - Στάθμευση κλήσης πελάτη - Blind Transfer VMail Message
height=70> + +
 Κλήσεις σε αναμονή:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Απόκρυψη καλεί Στην ουρά\n";} + else + {echo "Παρουσίαση καλεί Στην ουρά\n";} + } +?> + + + +
  +Άλλα Κατάσταση Πράκτορες:  
 
+ +
+Διαθέσιμο Agents Μεταφορά:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Τερματισμό Καθοδήγησης όπως:

-
- - height=70> + +
height=70>
Πλήκτρα κλειδιά Τερματισμού: Όταν είναι ενεργό, πιέστε απλά το πλήκτρο κλειδί για τον επιθυμητό τερματισμό της κλήσης. Η κλήση θα τρεματίσει αυτόματα:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Your Κατάσταση:
Προηγούμενες πληροφορίες επανάκλησης: close
- - height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Your Κατάσταση:
Εκτεταμένη Alt Τηλέφωνο Πληροφοριών: ελαχιστοποιήστε
- +
μεγιστοποιήστε
Alt Τηλ Info
- - height=500>
Κανένας δεν είναι στη σύνοδό σας:
+ + height=500>
Κανένας δεν είναι στη σύνοδό σας:
Επιστροφή

Ξανακάλεσε τον Χειριστή
- - height=500>
Ο πελάτης έχει κλείσει το τηλέφωνο:
+ + height=500>
Ο πελάτης έχει κλείσει το τηλέφωνο:
Επιστροφή

Τελείωσε και Τερμάτισε την Κλήση -
- - height=550>
Αναδίπλωση Κλήσης: απομύνοντα δευτερόλεπτα σε αναδίπλωση

- + + height=550>
Αναδίπλωση Κλήσης: απομύνοντα δευτερόλεπτα σε αναδίπλωση

+

Τελείωμα Αναδίπλωσης και Συνέχεια -
- - height=500>
Η σύνοδός σας έχει τεθεί εκτός λειτουργίας
ΑΠΟΣΥΝΔΕΣΗ

Επιστροφή + +
+


+ Κλείσιμο Μήνυμα +
+
+ + + height=500>
Η σύνοδός σας έχει τεθεί εκτός λειτουργίας
ΑΠΟΣΥΝΔΕΣΗ

Επιστροφή
- - height=500>
Υπάρχει ένα πρόβλημα συγχρονισμού με το χρόνο σας, παρακαλούμε ενημερώστε τον διαχειριστή του συστήματός σας


Επιστροφή + + height=500>
Υπάρχει ένα πρόβλημα συγχρονισμού με το χρόνο σας, παρακαλούμε ενημερώστε τον διαχειριστή του συστήματός σας


Επιστροφή
- - height=500>

ΑΠΟΣΥΝΔΕΣΗ
+ + height=500>

ΑΠΟΣΥΝΔΕΣΗ
- +
- +
 
- - height=47>
Οποιεσδήποτε αλλαγές που γίνονται στις πληροφορίες πελατών κατωτέρω αυτή τη στιγμή δεν θα είναι, πρέπει να αλλάξετε τις πληροφορίες πελατών ενώπιον σας Hangup η κλήση.
+ + height=47>
Οποιεσδήποτε αλλαγές που γίνονται στις πληροφορίες πελατών κατωτέρω αυτή τη στιγμή δεν θα είναι, πρέπει να αλλάξετε τις πληροφορίες πελατών ενώπιον σας Hangup η κλήση.
- - height=460>
Τερματισμός Κλήσης :       Ξανακλήσε       ελαχιστοποιήστε
+ + height=460>
Τερματισμός Κλήσης :       Ξανακλήσε       ελαχιστοποιήστε
Επιλογή τερματισμού της κλήσης
ΤΕΡΜΑΤΙΣΜΟΣ ΚΛΗΣΗΣ
@@ -8286,27 +10789,27 @@ Your Κατάσταση:
- - height=460>
ΕΠΙΛΕΞΤΕ έναν ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ :
+ + height=460>
ΕΠΙΛΕΞΤΕ έναν ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ :
Παύση Code Selection

 
- - height=460>
ΕΠΙΛΕΞΤΕ ΟΜΑΔΑ ALIAS :
+ + height=460>
ΕΠΙΛΕΞΤΕ ΟΜΑΔΑ ALIAS :
Γνωστός Ομάδα Επιλογής

 
- + - - height=460>
Επιλέξτε μια ημερομηνία CallBack :
+ + height=460>
Επιλέξτε μια ημερομηνία CallBack :
Επιλέξτε μια ημερομηνία κατωτέρω   @@ -8346,28 +10849,28 @@ Your Κατάσταση: AM  
- ΜΟΝΟ ΤΗΝ ΕΠΑΝΑΚΛΗΣΗ ΜΟΥ
";} ?> Σχόλια CB:

ΥΠΟΒΑΛΕΤΕ

- +

 
- - height=460>
CLOSER ΕΙΣΕΡΧΟΜΕΝΗ ΕΠΙΛΟΓΗ ΟΜΑΔΑΣ
+ + height=460>
CLOSER ΕΙΣΕΡΧΟΜΕΝΗ ΕΠΙΛΟΓΗ ΟΜΑΔΑΣ
Επιλογή Closer εισερχόμενης ομάδας
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> ΣΥΝΔΥΑΣΜΕΝΗ ΚΛΗΣΗ(εξερχόμενες ενεργοποιημένες)
- ΕΠΑΝΑΦΟΡΑ | @@ -8376,37 +10879,53 @@ Your Κατάσταση:
- + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ ΕΠΑΝΑΦΟΡΑ | + ΥΠΟΒΑΛΕΤΕ +



  +
+
+ + Κανάλι Κανάλι - ΜΟΝΟ ΤΗΝ ΕΠΑΝΑΚΛΗΣΗ ΜΟΥ
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " ΣΥΝΔΥΑΣΜΕΝΗ ΚΛΗΣΗ
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -ΠΛΗΚΤΡΑ ΚΛΕΙΔΙΑ ΑΝΕΝΕΡΓΑ - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +ΠΛΗΚΤΡΑ ΚΛΕΙΔΙΑ ΑΝΕΝΕΡΓΑ + - ->
Έκδοση VICIDIAL:     ΔΗΜΙΟΥΡΓΙΑ:               Κεντρικός υπολογιστής:              
-Παρουσίαση πληροφοριών κλήσης καναλιού διασκέψης

 
+ +>
Agent web-client version:     ΔΗΜΙΟΥΡΓΙΑ:               Κεντρικός υπολογιστής:              
+ +Παρουσίαση πληροφοριών κλήσης καναλιού διασκέψης +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_el/voicemail_check.php b/LANG_www/agc_el/voicemail_check.php index 52bfe4ce..27af6fe3 100644 --- a/LANG_www/agc_el/voicemail_check.php +++ b/LANG_www/agc_el/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_es/active_list_refresh.php b/LANG_www/agc_es/active_list_refresh.php index 5978f25d..2ffce645 100644 --- a/LANG_www/agc_es/active_list_refresh.php +++ b/LANG_www/agc_es/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_es/astguiclient.php b/LANG_www/agc_es/astguiclient.php index 7564a585..63b79c83 100644 --- a/LANG_www/agc_es/astguiclient.php +++ b/LANG_www/agc_es/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Usted ahora ha registrado hacia fuera. Gracias\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2802,12 +2804,12 @@ echo "\n"; - +
ΚΑΤΑΣΤΑΣΗ:
@@ -8434,7 +10953,7 @@ else ΚΛΗΣΗ ENAΛ/ΚΟΥ ΤΗΛΕΦΩΝΟΥ
-Εναρξη ηχογράφισης
+Εναρξη ηχογράφισης

Σελίδα Διαδικτύου
+ 0) + {echo "\"Σελίδα
\n";} +?>
-Στάθμευση Κλήσης
-Μεταφορά - διάσκεψη
+Στάθμευση Κλήσης
+Μεταφορά - διάσκεψη
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Κλείσιμο Πελάτη

-
Στείλε DTMF

+
Στείλε DTMF

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ if ( ($alt_phone_dialing) and ($auto_dial_level==0) )
Τηλ: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Σχολιάζει: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "web client astGUIclient\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF_es.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Directorsends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Directorsends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-SALIR
\n"; ?> +SALIR
\n"; ?>
Pantalla Principal
LLAMADAS ENTRANTES:
versión astGUIclient del tela-cliente: CONSTRUCCION:
versión astGUIclient del tela-cliente: CONSTRUCCION:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_es/conf_exten_check.php b/LANG_www/agc_es/conf_exten_check.php index 4f7689ed..6811e306 100644 --- a/LANG_www/agc_es/conf_exten_check.php +++ b/LANG_www/agc_es/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is en is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_SALIR';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Estado: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Estado: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_es/dbconnect.php b/LANG_www/agc_es/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_es/dbconnect.php +++ b/LANG_www/agc_es/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_es/inbound_popup.php b/LANG_www/agc_es/inbound_popup.php index b1f2d57b..7555421a 100644 --- a/LANG_www/agc_es/inbound_popup.php +++ b/LANG_www/agc_es/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -LLAMADA DE ENTRADA ACTIVA"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid No es válido\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_es/live_exten_check.php b/LANG_www/agc_es/live_exten_check.php index 89087055..28404681 100644 --- a/LANG_www/agc_es/live_exten_check.php +++ b/LANG_www/agc_es/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_es/manager_send.php b/LANG_www/agc_es/manager_send.php index 4692fd1d..46379145 100644 --- a/LANG_www/agc_es/manager_send.php +++ b/LANG_www/agc_es/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Enviar al Manager: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "AYUDA";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Enviar al Manager: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AYUDA";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten No es válido or queryCID $queryCID No es válido, Originate comando no insertado\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando enviado a Exten $exten Canal $channel en $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado a Exten $exten Canal $channel en $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context debe ser fijado\n"; echo "ext_priority $ext_priority debe ser fijado\n"; echo "\nOriginateName Action no enviado\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context debe ser fijado\n"; echo "ext_priority $ext_priority debe ser fijado\n"; echo "\nOriginateNameVmail Action no enviado\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten No es válido or queryCID $queryCID No es válido, Originate comando no insertado\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten No es válido or queryCID $queryCID No es válido, Originate comando no insertado\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando enviado a Exten $exten Canal $channel en $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR No está autorizado para marcar en sesiones de otro agente $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado a Exten $exten Canal $channel en $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten No es válido or ext_context $ext_context or queryCID $queryCID No es válido, Hangup comando no insertado\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup comando enviado a Canal $channel en $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid debe ser fijado\n"; echo "lead_id $lead_id debe ser fijado\n"; echo "\nRedirectVD Action no enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority debe ser fijado\n"; echo "parkedby $parkedby debe ser fijado\n"; echo "\nRedirectToPark Action no enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context debe ser fijado\n"; echo "ext_priority $ext_priority debe ser fijado\n"; echo "\nRedirectFromPark Action no enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context debe ser fijado\n"; echo "ext_priority $ext_priority debe ser fijado\n"; echo "\nRedirectName Action no enviado\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context debe ser fijado\n"; echo "ext_priority $ext_priority debe ser fijado\n"; echo "\nRedirectNameVmail Action no enviado\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Una de estas variables No es válido:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canal $channel no está activo en $call_server_ip, Redirect comando no insertado\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect comando no insertado\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX comando enviado a Canal $channel en $call_server_ip and \nHungup $extrachannel en $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel en $call_server_ip, Hungup $extrachannel en $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel en $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Una de estas variables No es válido:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference en $server_ip, Redirect comando no insertado\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No puede encontrar conferencia vacía en $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference en $server_ip, Redirect comando no insertado\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No puede encontrar conferencia vacía en $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canal $channel no está activo en $call_server_ip, Redirect comando no insertado\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando enviado a Canal $channel and \nExtraCanal $extrachannel\n to $exten en $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten en $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando enviado a Canal $channel en $call_server_ip and \nExtraCanal $extrachannel\n to $exten en $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Una de estas variables No es válido:\n"; - echo "Canal $channel debe ser mayor de 2 caracteres\n"; - echo "ExtraCanal $extrachannel debe ser mayor de 2 caracteres\n"; - echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; - echo "exten $exten debe ser fijado\n"; - echo "ext_context $ext_context debe ser fijado\n"; - echo "ext_priority $ext_priority debe ser fijado\n"; - echo "\nRedirect Action no enviado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canal $channel no está activo en $call_server_ip, Redirect comando no insertado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect comando no insertado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX comando enviado a Canal $channel en $call_server_ip and \nHungup $extrachannel en $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel en $call_server_ip, Hungup $extrachannel en $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel en $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Una de estas variables No es válido:\n"; - echo "Canal $channel debe ser mayor de 2 caracteres\n"; - echo "ExtraCanal $extrachannel debe ser mayor de 2 caracteres\n"; - echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; - echo "exten $exten debe ser fijado\n"; - echo "ext_context $ext_context debe ser fijado\n"; - echo "ext_priority $ext_priority debe ser fijado\n"; - echo "\nRedirect Action no enviado\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "No puede encontrar conferencia vacía en $server_ip, Redirect comando no insertado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No puede encontrar conferencia vacía en $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canal $channel no está activo en $call_server_ip, Redirect comando no insertado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando enviado a Canal $channel and \nExtraCanal $extrachannel\n to $exten en $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten en $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando enviado a Canal $channel en $call_server_ip and \nExtraCanal $extrachannel\n to $exten en $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Una de estas variables No es válido:\n"; echo "Canal $channel debe ser mayor de 2 caracteres\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context debe ser fijado\n"; echo "ext_priority $ext_priority debe ser fijado\n"; echo "\nRedirect Action no enviado\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect comando enviado a Canal $channel en $server_ip\n"; + echo "Redirect comando enviado a Canal $channel en $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canal $channel No es válido or queryCID $queryCID No es válido or filename: $filename No es válido, $ACTION comando no insertado\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canal $channel no está activo en $server_ip, $ACTION comando no insertado\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando enviado a Canal $channel en $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION comando enviado a Canal $channel en $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canal $channel No es válido or exten $exten No es válido or filename: $filename No es válido, $ACTION comando no insertado\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going en in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going en in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION comando enviado a Canal $channel en $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n LA GRABACIÓN DURARÁ HASTA 60 MINUTOS\n"; } - echo "$ACTION comando enviado a Canal $channel en $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n LA GRABACIÓN DURARÁ HASTA 60 MINUTOS\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Conferencia $exten, Stage $stage No es válido or queryCID $queryCID No es válido, Originate comando no insertado\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume comando enviado a Conferencia $exten, Stage $stage Canal $channel en $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando enviado a Conferencia $exten, Stage $stage Canal $channel en $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_es/park_calls_display.php b/LANG_www/agc_es/park_calls_display.php index 6584e083..0e512d2b 100644 --- a/LANG_www/agc_es/park_calls_display.php +++ b/LANG_www/agc_es/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_es/timeclock.php b/LANG_www/agc_es/timeclock.php index 4c7b4854..389c84d8 100644 --- a/LANG_www/agc_es/timeclock.php +++ b/LANG_www/agc_es/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "El usuario y la contraseña que ha introducido no son activos en el sistema
Por favor, inténtelo de nuevo:"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'COMIENZO') ) { - ### You cannot log in or out within 30 segundos of your last login/logout + ### You cannot log in or out within 30segundos of your last login/logout $VDdisplayMESSAGE = "No puede iniciar sesión o en un plazo de 30 segundos de su última conexión o desconexión"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "VOLVER a la pantalla de bienvenida";} echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_es/vdc_db_query.php b/LANG_www/agc_es/vdc_db_query.php index f8d37fff..2792deeb 100644 --- a/LANG_www/agc_es/vdc_db_query.php +++ b/LANG_www/agc_es/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Inválido session_name: |$session_name|$server_ip|\n"; + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Database Query Script"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Database Query Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Conexión:
\n"; - $VDdisplayMESSAGE.= "Manager Contraseña:
\n"; + $VDdisplayMESSAGE.= "DirectorConexión:
\n"; + $VDdisplayMESSAGE.= "DirectorContraseña:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Opción Del Grupo $closer_choice No es válido\n"; - exit; - } + { + $channel_live=0; + echo "Opción Del Grupo $closer_choice No es válido\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Opción Del Grupo $closer_choice se ha registrado al usuario $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories No es válido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories se ha registrado al usuario $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "TOLVA VACÍA\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context No es válido\n"; - exit; - } + { + $channel_live=0; + echo "TOLVA VACÍA\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context No es válido\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST LLAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST LLAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # LLAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "TOLVA VACÍA\n"; + { + echo "TOLVA VACÍA\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context No es válido\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " LLAMADA NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context No es válido\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # LLAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Insertado: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "REGISTRO NO ENTRADO\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Insertado: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "REGISTRO NO ENTRADO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campaña $campaign No es válido\n"; - echo "lead_id $lead_id No es válido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Campaña $campaign No es válido\n"; + echo "lead_id $lead_id No es válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campaña $campaign No es válido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Campaña $campaign No es válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send en to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send en to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If LLAMADABK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If LLAMADABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user en $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user en $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten No es válido\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten No es válido\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a SALIR record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','SALIR','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation en the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a SALIR record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','SALIR','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation en the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id No es válido\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id No es válido\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### LLAMADABACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### COMIENZO Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Usuario $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Último Attempt, Date of Último Non-Contact, Date of Último Contact, Date of Último Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' se ha cambiado a ' . $dispo_choice . " Estado\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id No es válido\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id No es válido\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage No es válido\n"; - exit; - } + { + echo "stage $stage No es válido\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' ahora está en estado ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list No es válido\n"; - exit; - } + { + echo "favorites list $favorites_list No es válido\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status No es válido\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status No es válido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
FAVORITOS       corrija
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Ver las llamadas en cola de personas de movilidad reducida para esta campaña\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data en calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info en the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           LLAMADA GROUP     TYPE  
TAKE LLAMADA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Ver las llamadas en cola de personas de movilidad reducida para esta campaña\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pausa Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_es/vdc_script_display.php b/LANG_www/agc_es/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_es/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_es/vicidial.php b/LANG_www/agc_es/vicidial.php index 67c2cf71..7a22f754 100644 --- a/LANG_www/agc_es/vicidial.php +++ b/LANG_www/agc_es/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Usted ahora ha registrado hacia fuera. Gracias\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls en hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of segundos for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofsegundos for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name en login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST en server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a DIAL link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups en campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call segundos counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='GERENTE DE TRANSFERENCIA OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='GERENTE DE TRANSFERENCIA OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + web client VICIDIAL: Conexión Otra Vez\n"; +echo "Agent web client: Conexión Otra Vez\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Español
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "web client VICIDIAL: Conexión en la Campaña\n"; + echo "Agent web client: Conexión en la Campaña\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Conexión Otra Vez
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Español
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Conexión Del Usuario

"; @@ -665,15 +740,17 @@ echo "
web client VICIDIAL: Conexión\n"; + echo "Agent web client: Conexión\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Español
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Conexión web client VICIDIAL: Conexión Del Teléfono\n"; +echo "Agent web client: Conexión Del Teléfono\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Español
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Conexión:
\n"; - $VDdisplayMESSAGE.= "Manager Contraseña:
\n"; + $VDdisplayMESSAGE.= "DirectorConexión:
\n"; + $VDdisplayMESSAGE.= "DirectorContraseña:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "web client VICIDIAL: VICIDIAL Conexión en la Campaña\n"; + echo "Agent web client: Conexión en la Campaña\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Conexión Del Teléfono
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Conexión: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_segundos = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PREINICIAR_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PREINICIAR_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PREINICIAR_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PREINICIAR_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PREINICIAR_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "web client VICIDIAL: Conexión en la Campaña\n"; + echo "Agent web client: Conexión en la Campaña\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Español
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "web client VICIDIAL: Conexión Del Teléfono Error\n"; + echo "Agent web client: Conexión Del Teléfono Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Español
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "web client VICIDIAL\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TeléfonoSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed en this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login en phone: $SIP_user a la campaña: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login en phone: $SIP_user a la campaña: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NUEVO record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today en that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today en that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "web client VICIDIAL: VICIDIAL Conexión en la Campaña\n"; + echo "Agent web client: Conexión en la Campaña\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Lo siento, no hay leads en el hopper de esta campaña\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Conexión: \n
"; @@ -1854,9 +2079,9 @@ echo "
web client VICIDIAL: VICIDIAL Conexión en la Campaña\n"; + echo "Agent web client: Conexión en la Campaña\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Conexión: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsegundos counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -SALIR\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +SALIR\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     sesión ID:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Llamada Activa
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + MARCADO MANUAL       DIAL RÁPIDO
- + X SERVICIOS REPETIDOS ACTIVOS
- +
- segundos: +segundos:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - DIAL\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
SERVICIOS REPETIDOS PARA EL AGENTE :
Chasque encendido un servicio repetido abajo ahora para llamar la parte posteriora del cliente. Si usted chasca encendido un expediente abajo para llamarlo, será quitado de la lista. + + height=460>
SERVICIOS REPETIDOS PARA EL AGENTE :
Chasque encendido un servicio repetido abajo ahora para llamar la parte posteriora del cliente. Si usted chasca encendido un expediente abajo para llamarlo, será quitado de la lista.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
NUEVO PLOMO MANUAL DEL DIAL PARA :

Incorpore la información abajo para el nuevo plomo que usted desea llamar. + + height=460>
NUEVO PLOMO MANUAL DEL DIAL PARA :

Incorpore la información abajo para el nuevo plomo que usted desea llamar.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Su Estado:
Calls Dialing:
- -
Dial Código:   (Éste es generalmente un 1 en los U.S.A. y el Canadá)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Su Estado:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Transferencia - Conferencia            
+ Transferencia - Conferencia            
+ + + + + + - CLOSER LOCAL - Colgar Línea Xfer - Colgar Ambas Líneas + + + + + -
- - Número a llamar   + + + + + -
+ + + + +
+ + CLOSER LOCAL     + + Colgar Línea Xfer +
+ seconds +   + channel + + CONSULTIVO   + + Colgar Ambas Líneas +
+ Número a llamar +   +   - INVALIDACIÓN DEL MARCADO   - ABANDONAR LLAMADA 3-WAY - Marcar Blind Transfer - D1 - D2 + + INVALIDACIÓN DEL MARCADO + + ABANDONAR LLAMADA 3-WAY +
+ Marcar Blind Transfer +   + Marcar Con El Cliente +   + Dial Del Cliente Del Parque +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- segundos   - channel - Marcar Con El Cliente - Dial Del Cliente Del Parque - Blind Transfer VMail Message
height=70> + +
 Llamadas en cola:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Ocultar las llamadas en cola\n";} + else + {echo "Pide Mostrar la cola\n";} + } +?> + + + +
  +Otros agentes de Estado:  
 
+ +
+Agentes disponibles de transferencia:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Lead Dispositioned Como:

-
- - height=70> + +
height=70>
Teclas de acceso rápido a la Disposición: Cuando esté activo, presione simplemente la tecla para la disposición deseada para esta llamada. La llamada después será colgada y dispositioned automáticamente:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Su Estado:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Información Anterior Del Servicio repetido: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Su Estado:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Teléfono de Información ampliado Alt: reduzca al mínimo
maximice
Alt Teléfono Info
- - height=500>
Nadie está en su sesión:
+ + height=500>
Nadie está en su sesión:
Vaya Detrás

Agente De la Llamada Otra vez
- - height=500>
El cliente ha colgado:
+ + height=500>
El cliente ha colgado:
Vaya Detrás

Final y llamada de la disposición -
- - height=550>
Llamada Wrapup: segundos restantes en wrapup

- + + height=550>
Llamada Wrapup: segundos restantes en wrapup

+

Final Wrapup y movimiento encendido -
- - height=500>
Se ha inhabilitado su sesión
SALIR

Vaya Detrás + +
+


+ Cerrar Mensaje +
+
+ + + height=500>
Se ha inhabilitado su sesión
SALIR

Vaya Detrás
- - height=500>
Hay un problema de sincronización de tiempo con su sistema, por favor, dígale a su administrador del sistema


Vaya Detrás + + height=500>
Hay un problema de sincronización de tiempo con su sistema, por favor, dígale a su administrador del sistema


Vaya Detrás
- - height=500>

SALIR
+ + height=500>

SALIR
- +
- +
 
- - height=47>
Cualquier cambio realizado al cliente que no será la información abajo en este tiempo comitted, usted debe cambiar la información del cliente antes de usted retraso la llamada.
+ + height=47>
Cualquier cambio realizado al cliente que no será la información abajo en este tiempo comitted, usted debe cambiar la información del cliente antes de usted retraso la llamada.
- - height=460>
DISPOSITION LLAMADA :       Retraso Otra vez       reduzca al mínimo
+ + height=460>
DISPOSITION LLAMADA :       Retraso Otra vez       reduzca al mínimo
selección de la disposición del End-of-call
PARAR LA LLAMADA
@@ -8286,27 +10789,27 @@ Su Estado:
Calls Dialing: - height=460>
SELECCIONE Un CÓDIGO De la PAUSA :
+ + height=460>
SELECCIONE Un CÓDIGO De la PAUSA :
Pausa Code Selection

 
- - height=460>
SELECCIONAR UN GRUPO DE ALIAS :
+ + height=460>
SELECCIONAR UN GRUPO DE ALIAS :
Grupo de Selección de Alias

 
- + - - height=460>
Seleccione una fecha del servicio repetido :
+ + height=460>
Seleccione una fecha del servicio repetido :
Seleccione una fecha abajo   @@ -8346,28 +10849,28 @@ Su Estado:
Calls Dialing: MI SERVICIO REPETIDO SOLAMENTE
";} ?> Comentarios de los CBES:

ENVIAR

- +

 
- - height=460>
SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER
+ + height=460>
SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER
SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> BLENDED LLAMADAING(Salientes activdas)
- REINICIAR | @@ -8376,37 +10879,53 @@ Su Estado:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ REINICIAR | + ENVIAR +



  +
+
+ + Canal Canal - MI SERVICIO REPETIDO SOLAMENTE
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " BLENDED LLAMADAING
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -TECLAS ACCESO RÁPIDO INACTIVAS - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +TECLAS ACCESO RÁPIDO INACTIVAS + - ->
versión web client VICIDIAL:     CONSTRUCCION:               Servidor:              
-Mostrar la información del canal Conferencia

 
+ +>
Agent web-client version:     CONSTRUCCION:               Servidor:              
+ +Mostrar la información del canal Conferencia +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_es/voicemail_check.php b/LANG_www/agc_es/voicemail_check.php index 657fbe84..5000b441 100644 --- a/LANG_www/agc_es/voicemail_check.php +++ b/LANG_www/agc_es/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_fr/active_list_refresh.php b/LANG_www/agc_fr/active_list_refresh.php index 8eb27a79..95bd4142 100644 --- a/LANG_www/agc_fr/active_list_refresh.php +++ b/LANG_www/agc_fr/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_fr/astguiclient.php b/LANG_www/agc_fr/astguiclient.php index ea455cc6..a95ff105 100644 --- a/LANG_www/agc_fr/astguiclient.php +++ b/LANG_www/agc_fr/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Vous êtes maintenant déconnecté.\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2802,12 +2804,12 @@ echo "\n"; - +
ESTADO:
@@ -8434,7 +10953,7 @@ else TELÉFONO DEL ALT
-Comenzar La Grabación
+Comenzar La Grabación

Formulario Web
+ 0) + {echo "\"Formulario
\n";} +?>
-Aparcar llamada
-Transferencia - Conferencia
+Aparcar llamada
+Transferencia - Conferencia
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Colgar al Cliente

-
Enviar DTMF

+
Enviar DTMF

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ GRABACIÓN ID:
Teléfono: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Comentarios: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "astGUIclient Client Web\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Gestionnairesends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Gestionnairesends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-DÉCONNEXION
\n"; ?> +DÉCONNEXION
\n"; ?>
Ecran Principal
APPELS ENTRANTS:
astGUIclient Client Web: BUILD:
astGUIclient Client Web: BUILD:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_fr/conf_exten_check.php b/LANG_www/agc_fr/conf_exten_check.php index 7ad51245..14e91144 100644 --- a/LANG_www/agc_fr/conf_exten_check.php +++ b/LANG_www/agc_fr/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is sur is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_DÉCONNEXION';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Statut: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Statut: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_fr/dbconnect.php b/LANG_www/agc_fr/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_fr/dbconnect.php +++ b/LANG_www/agc_fr/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_fr/inbound_popup.php b/LANG_www/agc_fr/inbound_popup.php index bc225893..b9caf9bb 100644 --- a/LANG_www/agc_fr/inbound_popup.php +++ b/LANG_www/agc_fr/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -APPEL ENTRANT EN COURS"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid est invalide\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_fr/live_exten_check.php b/LANG_www/agc_fr/live_exten_check.php index 3a54d0be..6d0bee78 100644 --- a/LANG_www/agc_fr/live_exten_check.php +++ b/LANG_www/agc_fr/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_fr/manager_send.php b/LANG_www/agc_fr/manager_send.php index 87bee166..b65fac24 100644 --- a/LANG_www/agc_fr/manager_send.php +++ b/LANG_www/agc_fr/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Envoi de l'Administrateur: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "AIDE";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Envoi de l'Administrateur: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AIDE";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten est invalide or queryCID $queryCID est invalide, Originate commande non insérée\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate commande envoyée pour Exten $exten Canal $channel sur $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commande envoyée pour Exten $exten Canal $channel sur $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context est obligatoire\n"; echo "ext_priority $ext_priority est obligatoire\n"; echo "\nOriginateName Action pas envoyé\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context est obligatoire\n"; echo "ext_priority $ext_priority est obligatoire\n"; echo "\nOriginateNameVmail Action pas envoyé\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten est invalide or queryCID $queryCID est invalide, Originate commande non insérée\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten est invalide or queryCID $queryCID est invalide, Originate commande non insérée\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate commande envoyée pour Exten $exten Canal $channel sur $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Vous n-êtes pas autorisé à composer dans les séances d-un autre agent $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commande envoyée pour Exten $exten Canal $channel sur $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten est invalide or ext_context $ext_context or queryCID $queryCID est invalide, Hangup commande non insérée\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup commande envoyée pour Canal $channel sur $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid est obligatoire\n"; echo "lead_id $lead_id est obligatoire\n"; echo "\nRedirectVD Action pas envoyé\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority est obligatoire\n"; echo "parkedby $parkedby est obligatoire\n"; echo "\nRedirectToPark Action pas envoyé\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context est obligatoire\n"; echo "ext_priority $ext_priority est obligatoire\n"; echo "\nRedirectFromPark Action pas envoyé\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context est obligatoire\n"; echo "ext_priority $ext_priority est obligatoire\n"; echo "\nRedirectName Action pas envoyé\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context est obligatoire\n"; echo "ext_priority $ext_priority est obligatoire\n"; echo "\nRedirectNameVmail Action pas envoyé\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Une de ces variables est invalide:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canal $channel n'est pas en ligne sur $call_server_ip, Redirect commande non insérée\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect commande non insérée\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX commande envoyée pour Canal $channel sur $call_server_ip and \nHungup $extrachannel sur $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel sur $call_server_ip, Hungup $extrachannel sur $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel sur $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Une de ces variables est invalide:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference sur $server_ip, Redirect commande non insérée\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Il n'y a pas de conférence disponible sur $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference sur $server_ip, Redirect commande non insérée\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Il n'y a pas de conférence disponible sur $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canal $channel n'est pas en ligne sur $call_server_ip, Redirect commande non insérée\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra commande envoyée pour Canal $channel and \nExtraCanal $extrachannel\n to $exten sur $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten sur $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra commande envoyée pour Canal $channel sur $call_server_ip and \nExtraCanal $extrachannel\n to $exten sur $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Une de ces variables est invalide:\n"; - echo "Canal $channel doit avoir plus de 2 caractères \n"; - echo "ExtraCanal $extrachannel doit avoir plus de 2 caractères \n"; - echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; - echo "exten $exten est obligatoire\n"; - echo "ext_context $ext_context est obligatoire\n"; - echo "ext_priority $ext_priority est obligatoire\n"; - echo "\nRedirect Action pas envoyé\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canal $channel n'est pas en ligne sur $call_server_ip, Redirect commande non insérée\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect commande non insérée\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX commande envoyée pour Canal $channel sur $call_server_ip and \nHungup $extrachannel sur $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel sur $call_server_ip, Hungup $extrachannel sur $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel sur $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Une de ces variables est invalide:\n"; - echo "Canal $channel doit avoir plus de 2 caractères \n"; - echo "ExtraCanal $extrachannel doit avoir plus de 2 caractères \n"; - echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; - echo "exten $exten est obligatoire\n"; - echo "ext_context $ext_context est obligatoire\n"; - echo "ext_priority $ext_priority est obligatoire\n"; - echo "\nRedirect Action pas envoyé\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Il n'y a pas de conférence disponible sur $server_ip, Redirect commande non insérée\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Il n'y a pas de conférence disponible sur $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canal $channel n'est pas en ligne sur $call_server_ip, Redirect commande non insérée\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra commande envoyée pour Canal $channel and \nExtraCanal $extrachannel\n to $exten sur $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten sur $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra commande envoyée pour Canal $channel sur $call_server_ip and \nExtraCanal $extrachannel\n to $exten sur $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Une de ces variables est invalide:\n"; echo "Canal $channel doit avoir plus de 2 caractères \n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context est obligatoire\n"; echo "ext_priority $ext_priority est obligatoire\n"; echo "\nRedirect Action pas envoyé\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect commande envoyée pour Canal $channel sur $server_ip\n"; + echo "Redirect commande envoyée pour Canal $channel sur $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canal $channel est invalide or queryCID $queryCID est invalide or filename: $filename est invalide, $ACTION commande non insérée\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canal $channel n'est pas en ligne sur $server_ip, $ACTION commande non insérée\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION commande envoyée pour Canal $channel sur $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION commande envoyée pour Canal $channel sur $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canal $channel est invalide or exten $exten est invalide or filename: $filename est invalide, $ACTION commande non insérée\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going sur in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going sur in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION commande envoyée pour Canal $channel sur $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n L'ENREGISTREMENT DURERA AU MAXIMUM 60 MINUTES\n"; } - echo "$ACTION commande envoyée pour Canal $channel sur $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n L'ENREGISTREMENT DURERA AU MAXIMUM 60 MINUTES\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Conférence $exten, Stage $stage est invalide or queryCID $queryCID est invalide, Originate commande non insérée\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume commande envoyée pour Conférence $exten, Stage $stage Canal $channel sur $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume commande envoyée pour Conférence $exten, Stage $stage Canal $channel sur $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_fr/park_calls_display.php b/LANG_www/agc_fr/park_calls_display.php index bec5b6ae..e14563f4 100644 --- a/LANG_www/agc_fr/park_calls_display.php +++ b/LANG_www/agc_fr/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_fr/timeclock.php b/LANG_www/agc_fr/timeclock.php index 68ad3b3a..1d14200a 100644 --- a/LANG_www/agc_fr/timeclock.php +++ b/LANG_www/agc_fr/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "L'utilisateur et le mot de passe que vous avez entrés ne sont pas actifs dans le système
S'il vous plaît essayez de nouveau:"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'DEBUT') ) { - ### You cannot log in or out within 30 secondes of your last login/logout + ### You cannot log in or out within 30secondes of your last login/logout $VDdisplayMESSAGE = "Vous ne pouvez pas vous connecter ou dans un délai de 30 secondes de votre dernière connexion ou déconnexion"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "RETOUR à l'écran de bienvenue";} echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_fr/vdc_db_query.php b/LANG_www/agc_fr/vdc_db_query.php index 076c9e82..03226f50 100644 --- a/LANG_www/agc_fr/vdc_db_query.php +++ b/LANG_www/agc_fr/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Invalide session_name: |$session_name|$server_ip|\n"; + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Script De Requète à la Base de données"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script De Requète à la Base de données"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Ouverture de Session:
\n"; - $VDdisplayMESSAGE.= "Manager Mot de passe:
\n"; + $VDdisplayMESSAGE.= "GestionnaireOuverture de Session:
\n"; + $VDdisplayMESSAGE.= "GestionnaireMot de passe:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Selection De Groupe $closer_choice est invalide\n"; - exit; - } + { + $channel_live=0; + echo "Selection De Groupe $closer_choice est invalide\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Selection De Groupe $closer_choice a été attribué à l'utilisateur $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories est invalide\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories a été attribué à l'utilisateur $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "LISTE D'APPEL VIDE\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context est invalide\n"; - exit; - } + { + $channel_live=0; + echo "LISTE D'APPEL VIDE\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context est invalide\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST APPEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST APPEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # APPELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "LISTE D'APPEL VIDE\n"; + { + echo "LISTE D'APPEL VIDE\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context est invalide\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " APPEL NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context est invalide\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # APPELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Inséré: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "NOTATION NON ENTRÉE\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inséré: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "NOTATION NON ENTRÉE\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campagne $campaign est invalide\n"; - echo "lead_id $lead_id est invalide\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign est invalide\n"; + echo "lead_id $lead_id est invalide\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campagne $campaign est invalide\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign est invalide\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send sur to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send sur to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If APPELBK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If APPELBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user sur $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user sur $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten est invalide\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten est invalide\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a DÉCONNEXION record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','DÉCONNEXION','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation sur the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a DÉCONNEXION record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','DÉCONNEXION','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation sur the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id est invalide\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id est invalide\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### APPELBACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### DEBUT Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Utilisateur $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Nom Attempt, Date of Nom Non-Contact, Date of Nom Contact, Date of Nom Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' a été changé en ' . $dispo_choice . " Statut\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id est invalide\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id est invalide\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage est invalide\n"; - exit; - } + { + echo "stage $stage est invalide\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' le statut actuel est ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list est invalide\n"; - exit; - } + { + echo "favorites list $favorites_list est invalide\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status est invalide\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status est invalide\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pause Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
FAVORIS       Modifier
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Appels en attente Voir désactivé pour cette campagne\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data sur calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info sur the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           APPEL GROUP     TYPE  
TAKE APPEL     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Appels en attente Voir désactivé pour cette campagne\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pause Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_fr/vdc_script_display.php b/LANG_www/agc_fr/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_fr/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_fr/vicidial.php b/LANG_www/agc_fr/vicidial.php index a26aa6cb..fcf7013d 100644 --- a/LANG_www/agc_fr/vicidial.php +++ b/LANG_www/agc_fr/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Vous êtes maintenant déconnecté.\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls sur hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of secondes for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofsecondes for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name sur login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST sur server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a COMPOSER link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups sur campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call secondes counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER OVERRIDE OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER OVERRIDE OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + VICIDIAL Client Web: S'identifier à nouveau\n"; +echo "Agent web client: S'identifier à nouveau\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Français
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "VICIDIAL Client Web: Ouverture de Campagne\n"; + echo "Agent web client: Ouverture de Campagne\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
S'identifier à nouveau
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Français
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Ouverture de Session

"; @@ -665,15 +740,17 @@ echo "
VICIDIAL Client Web: Ouverture de Session\n"; + echo "Agent web client: Ouverture de Session\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Français
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Ouverture de Session VICIDIAL Client Web: Ouverture de Session téléphonique\n"; +echo "Agent web client: Ouverture de Session téléphonique\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Français
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Ouverture de Session:
\n"; - $VDdisplayMESSAGE.= "Manager Mot de passe:
\n"; + $VDdisplayMESSAGE.= "GestionnaireOuverture de Session:
\n"; + $VDdisplayMESSAGE.= "GestionnaireMot de passe:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "VICIDIAL Client Web: VICIDIAL Ouverture de Campagne\n"; + echo "Agent web client: Ouverture de Campagne\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Ouverture de Session téléphonique
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Ouverture de Session: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_secondes = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PREINITIALISATION_1|PREINITIALISATION_2|PREINITIALISATION_3|PREINITIALISATION_4|PREINITIALISATION_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PREINITIALISATION_1|PREINITIALISATION_2|PREINITIALISATION_3|PREINITIALISATION_4|PREINITIALISATION_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PREINITIALISATION_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PREINITIALISATION_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PREINITIALISATION_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PREINITIALISATION_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PREINITIALISATION_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "VICIDIAL Client Web: Ouverture de Campagne\n"; + echo "Agent web client: Ouverture de Campagne\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Français
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "VICIDIAL Client Web: Ouverture de Session téléphonique Error\n"; + echo "Agent web client: Ouverture de Session téléphonique Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Français
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "VICIDIAL Client Web\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TéléphoneSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed sur this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login sur phone: $SIP_user Campagne:: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login sur phone: $SIP_user Campagne:: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NOUVEAU record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today sur that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today sur that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "VICIDIAL Client Web: VICIDIAL Ouverture de Campagne\n"; + echo "Agent web client: Ouverture de Campagne\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Aucune fiche client n'est éligible pour cette campagne\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Ouverture de Session: \n
"; @@ -1854,9 +2079,9 @@ echo "
VICIDIAL Client Web: VICIDIAL Ouverture de Campagne\n"; + echo "Agent web client: Ouverture de Campagne\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Ouverture de Session: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsecondes counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -DÉCONNEXION\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +DÉCONNEXION\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     Id de session:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Appel en cours
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + APPEL MANUEL       CADRAN RAPIDE
- + X RAPPELS EN COURS
- +
- secondes: +secondes:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - COMPOSER\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
RAPPELS PERSONNELS :
Selectionnez un rappel a éffectuer immédiatement. Une fois éffectué, ce rappel diparaitra de la liste. + + height=460>
RAPPELS PERSONNELS :
Selectionnez un rappel a éffectuer immédiatement. Une fois éffectué, ce rappel diparaitra de la liste.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
NOUVEL APPEL MANUEL VERS :

Nouveau prospect: remplissez le formulaire ci dessous. + + height=460>
NOUVEL APPEL MANUEL VERS :

Nouveau prospect: remplissez le formulaire ci dessous.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Votre Statut:
Calls Dialing:
- -
Code d'Appel:   (La valeur de ce champ est habituellement 1 aux Etats-Unis et au Canada)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Votre Statut:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Transfert - Conférence            
+ Transfert - Conférence            
+ + + + + + - CLOSER LOCAL - Raccrocher la ligne transférée - Raccrocher les deux lignes + + + + + -
- - Numéro à appeler   + + + + + -
+ + + + +
+ + CLOSER LOCAL     + + Raccrocher la ligne transférée +
+ seconds +   + channel + + CONSULTATIF   + + Raccrocher les deux lignes +
+ Numéro à appeler +   +   - SURNUMEROTATION   - QUITTER LA CONF A 3 - Transfert immédiat - D1 - D2 + + SURNUMEROTATION + + QUITTER LA CONF A 3 +
+ Transfert immédiat +   + Appel Client +   + Mettre en Attente +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- secondes   - channel - Appel Client - Mettre en Attente - Blind Transfer VMail Message
height=70> + +
 Appels en attente:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Cacher les appels en attente\n";} + else + {echo "Afficher les appels en attente\n";} + } +?> + + + +
  +Autres agents Etat:  
 
+ +
+Transfert des agents disponibles:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Fiche Prospect Statuée en:

-
- - height=70> + +
height=70>
Raccourcis clavier des Statut: Si actif, utilisez le raccourci clavier pour statuer et raccrocher un appel:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Votre Statut:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Information De Rappels: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Votre Statut:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Extended Information Alt Téléphone: réduire
agrandir
Alt Téléphone Info
- - height=500>
Votre session est vide:
+ + height=500>
Votre session est vide:
Retour

Rappeler l'agent
- - height=500>
Le client a raccroché:
+ + height=500>
Le client a raccroché:
Retour

Terminer et Statuer l'Appel -
- - height=550>
Traitement Post Appel : secondes restant pour le traitement post appel

- + + height=550>
Traitement Post Appel : secondes restant pour le traitement post appel

+

Terminer le traitement post appel et continuer -
- - height=500>
Votre session a été neutralisée
DÉCONNEXION

Retour + +
+


+ Fermer Message +
+
+ + + height=500>
Votre session a été neutralisée
DÉCONNEXION

Retour
- - height=500>
Il ya un problème de synchronisation avec votre système, s'il vous plaît dites-le à votre administrateur système


Retour + + height=500>
Il ya un problème de synchronisation avec votre système, s'il vous plaît dites-le à votre administrateur système


Retour
- - height=500>

DÉCONNEXION
+ + height=500>

DÉCONNEXION
- +
- +
 
- - height=47>
Aucune modification ne peut être prise en compte, les modifications doivent être validées avant de raccrocher.
+ + height=47>
Aucune modification ne peut être prise en compte, les modifications doivent être validées avant de raccrocher.
- - height=460>
STATUER L'APPEL :       Décrochement Encore       réduire
+ + height=460>
STATUER L'APPEL :       Décrochement Encore       réduire
Selection du status de fin d'appel
PAUSE DE LA NUMEROTATION
@@ -8286,27 +10789,27 @@ Votre Statut:
Calls Dialing: - height=460>
CHOISISSEZ Un CODE De PAUSE :
+ + height=460>
CHOISISSEZ Un CODE De PAUSE :
Pause Code Selection

 
- - height=460>
CHOISIR UN GROUPE ALIAS :
+ + height=460>
CHOISIR UN GROUPE ALIAS :
Groupe de sélection Alias

 
- + - - height=460>
Choisissez une date de Rappel :
+ + height=460>
Choisissez une date de Rappel :
Choisissez une date ci-dessous   @@ -8346,28 +10849,28 @@ Votre Statut:
Calls Dialing: RAPPELS PERSONNELS
";} ?> Commentaires du Rappel:

VALIDER

- +

 
- - height=460>
UN CHOIX DE GROUPE D'ARRIVÉE PLUS ÉTROIT
+ + height=460>
UN CHOIX DE GROUPE D'ARRIVÉE PLUS ÉTROIT
Un Choix De Groupe D'arrivée Plus étroit
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> APPEL EN MODE BLENDED(Mode "Appels Sortants" Activé)
- REINITIALISATION | @@ -8376,37 +10879,53 @@ Votre Statut:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ REINITIALISATION | + VALIDER +



  +
+
+ + Canal Canal - RAPPELS PERSONNELS
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " APPEL EN MODE BLENDED
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -RACCOURCIS INACTIFS - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +RACCOURCIS INACTIFS + - ->
VICIDIAL Client Web:     BUILD:               Serveur:              
-Montrez les informations sur la conférence

 
+ +>
Agent web-client version:     BUILD:               Serveur:              
+ +Montrez les informations sur la conférence +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_fr/voicemail_check.php b/LANG_www/agc_fr/voicemail_check.php index c81c0882..3f979c5d 100644 --- a/LANG_www/agc_fr/voicemail_check.php +++ b/LANG_www/agc_fr/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_it/active_list_refresh.php b/LANG_www/agc_it/active_list_refresh.php index 3560e8d3..42773644 100644 --- a/LANG_www/agc_it/active_list_refresh.php +++ b/LANG_www/agc_it/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_it/astguiclient.php b/LANG_www/agc_it/astguiclient.php index b4dacfff..249dd205 100644 --- a/LANG_www/agc_it/astguiclient.php +++ b/LANG_www/agc_it/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Ora non sei collegato. Grazie\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2802,12 +2804,12 @@ echo "\n"; - +
STATUT:
@@ -8434,7 +10953,7 @@ else APPEL NUM. 2nd.
-Enregistrer
+Enregistrer

Formulaire Web
+ 0) + {echo "\"Formulaire
\n";} +?>
-Mettre en Attente
-Transfert - Conférence
+Mettre en Attente
+Transfert - Conférence
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Raccrocher

-
Envoyez DTMF

+
Envoyez DTMF

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ IDENTIFIANT:
Téléphone: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Commentaires: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "web client astGUIclient\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Managersends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Managersends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-LOGOUT
\n"; ?> +LOGOUT
\n"; ?>
Pannello Principale
CHIAMATE INBOUND:
Versione di astGUIclient web-client: BUILD:
Versione di astGUIclient web-client: BUILD:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_it/conf_exten_check.php b/LANG_www/agc_it/conf_exten_check.php index f50dc165..df5cfa1e 100644 --- a/LANG_www/agc_it/conf_exten_check.php +++ b/LANG_www/agc_it/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is su is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,16 +295,21 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $RingCalls=$row[0]; - if ($RingCalls > 0) {$RingCalls = "Chiede, in coda: $RingCalls";} - else {$RingCalls = "Chiede, in coda: $RingCalls";} + if ($RingCalls > 0) {$RingCalls = "Chiamate in coda: $RingCalls";} + else {$RingCalls = "Chiamate in coda: $RingCalls";} ### grab the number of calls being placed from this server and campaign $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_LOGOUT';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Stato: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Stato: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_it/dbconnect.php b/LANG_www/agc_it/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_it/dbconnect.php +++ b/LANG_www/agc_it/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_it/inbound_popup.php b/LANG_www/agc_it/inbound_popup.php index 5e9d5b61..886692ce 100644 --- a/LANG_www/agc_it/inbound_popup.php +++ b/LANG_www/agc_it/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -CHIAMATA INBOUND IN CORSO"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid non e` valido\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_it/live_exten_check.php b/LANG_www/agc_it/live_exten_check.php index 9a92d6db..4c73c549 100644 --- a/LANG_www/agc_it/live_exten_check.php +++ b/LANG_www/agc_it/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_it/manager_send.php b/LANG_www/agc_it/manager_send.php index f500624c..0a878412 100644 --- a/LANG_www/agc_it/manager_send.php +++ b/LANG_www/agc_it/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Utentename/Password non validi: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Invio Manager: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "AIUTO";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Invio Manager: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AIUTO";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten non e` valido or queryCID $queryCID non e` valido, Originate comando non inserito\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando inviato per Exten $exten Canale $channel su $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando inviato per Exten $exten Canale $channel su $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context deve essere impostato\n"; echo "ext_priority $ext_priority deve essere impostato\n"; echo "\nOriginateName Action non inviato\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context deve essere impostato\n"; echo "ext_priority $ext_priority deve essere impostato\n"; echo "\nOriginateNameVmail Action non inviato\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten non e` valido or queryCID $queryCID non e` valido, Originate comando non inserito\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten non e` valido or queryCID $queryCID non e` valido, Originate comando non inserito\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando inviato per Exten $exten Canale $channel su $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Non ti è permesso di comporre in sessioni altro agente $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando inviato per Exten $exten Canale $channel su $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten non e` valido or ext_context $ext_context or queryCID $queryCID non e` valido, Hangup comando non inserito\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup comando inviato per Canale $channel su $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid deve essere impostato\n"; echo "lead_id $lead_id deve essere impostato\n"; echo "\nRedirectVD Action non inviato\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority deve essere impostato\n"; echo "parkedby $parkedby deve essere impostato\n"; echo "\nRedirectToPark Action non inviato\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context deve essere impostato\n"; echo "ext_priority $ext_priority deve essere impostato\n"; echo "\nRedirectFromPark Action non inviato\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context deve essere impostato\n"; echo "ext_priority $ext_priority deve essere impostato\n"; echo "\nRedirectName Action non inviato\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context deve essere impostato\n"; echo "ext_priority $ext_priority deve essere impostato\n"; echo "\nRedirectNameVmail Action non inviato\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Una di queste variabili non e` valido:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canale $channel non e` attivo su $call_server_ip, Redirect comando non inserito\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect comando non inserito\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX comando inviato per Canale $channel su $call_server_ip and \nHungup $extrachannel su $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel su $call_server_ip, Hungup $extrachannel su $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel su $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Una di queste variabili non e` valido:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference su $server_ip, Redirect comando non inserito\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Impossibile trovare conferenze vuote su $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference su $server_ip, Redirect comando non inserito\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Impossibile trovare conferenze vuote su $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canale $channel non e` attivo su $call_server_ip, Redirect comando non inserito\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando inviato per Canale $channel and \nExtraCanale $extrachannel\n to $exten su $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten su $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando inviato per Canale $channel su $call_server_ip and \nExtraCanale $extrachannel\n to $exten su $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Una di queste variabili non e` valido:\n"; - echo "Canale $channel deve avere piu' di 2 caratteri\n"; - echo "ExtraCanale $extrachannel deve avere piu' di 2 caratteri\n"; - echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; - echo "exten $exten deve essere impostato\n"; - echo "ext_context $ext_context deve essere impostato\n"; - echo "ext_priority $ext_priority deve essere impostato\n"; - echo "\nRedirect Action non inviato\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canale $channel non e` attivo su $call_server_ip, Redirect comando non inserito\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect comando non inserito\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX comando inviato per Canale $channel su $call_server_ip and \nHungup $extrachannel su $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel su $call_server_ip, Hungup $extrachannel su $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel su $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Una di queste variabili non e` valido:\n"; - echo "Canale $channel deve avere piu' di 2 caratteri\n"; - echo "ExtraCanale $extrachannel deve avere piu' di 2 caratteri\n"; - echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; - echo "exten $exten deve essere impostato\n"; - echo "ext_context $ext_context deve essere impostato\n"; - echo "ext_priority $ext_priority deve essere impostato\n"; - echo "\nRedirect Action non inviato\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Impossibile trovare conferenze vuote su $server_ip, Redirect comando non inserito\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Impossibile trovare conferenze vuote su $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canale $channel non e` attivo su $call_server_ip, Redirect comando non inserito\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando inviato per Canale $channel and \nExtraCanale $extrachannel\n to $exten su $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten su $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando inviato per Canale $channel su $call_server_ip and \nExtraCanale $extrachannel\n to $exten su $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Una di queste variabili non e` valido:\n"; echo "Canale $channel deve avere piu' di 2 caratteri\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context deve essere impostato\n"; echo "ext_priority $ext_priority deve essere impostato\n"; echo "\nRedirect Action non inviato\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect comando inviato per Canale $channel su $server_ip\n"; + echo "Redirect comando inviato per Canale $channel su $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canale $channel non e` valido or queryCID $queryCID non e` valido or filename: $filename non e` valido, $ACTION comando non inserito\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canale $channel non e` attivo su $server_ip, $ACTION comando non inserito\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando inviato per Canale $channel su $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION comando inviato per Canale $channel su $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canale $channel non e` valido or exten $exten non e` valido or filename: $filename non e` valido, $ACTION comando non inserito\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going su in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going su in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION comando inviato per Canale $channel su $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n LA REGISTRAZIONE DURERA` FINO A 60 MINUTI\n"; } - echo "$ACTION comando inviato per Canale $channel su $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n LA REGISTRAZIONE DURERA` FINO A 60 MINUTI\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Conferenza $exten, Stage $stage non e` valido or queryCID $queryCID non e` valido, Originate comando non inserito\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume comando inviato per Conferenza $exten, Stage $stage Canale $channel su $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando inviato per Conferenza $exten, Stage $stage Canale $channel su $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_it/park_calls_display.php b/LANG_www/agc_it/park_calls_display.php index 7abbe09f..b3728be8 100644 --- a/LANG_www/agc_it/park_calls_display.php +++ b/LANG_www/agc_it/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_it/timeclock.php b/LANG_www/agc_it/timeclock.php index c9cdfe14..9f538fdb 100644 --- a/LANG_www/agc_it/timeclock.php +++ b/LANG_www/agc_it/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "Lutente e la password che hai inserito non sono attivi nel sistema
Si prega di riprovare:"; echo"\n"; - echo"VICIDIAL:Orologio\n"; + echo"AgentOrologio\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'INIZIO') ) { - ### You cannot log in or out within 30 secondi of your last login/logout + ### You cannot log in or out within 30secondi of your last login/logout $VDdisplayMESSAGE = "Non è possibile accedere o entro 30 secondi del tuo ultimo accesso o il logout"; echo"\n"; - echo"VICIDIAL:Orologio\n"; + echo"AgentOrologio\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "Torna alla schermata iniziale";} echo"\n"; - echo"VICIDIAL:Orologio\n"; + echo"AgentOrologio\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Orologio\n"; + echo"AgentOrologio\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Orologio\n"; + echo"AgentOrologio\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_it/vdc_db_query.php b/LANG_www/agc_it/vdc_db_query.php index 335754a8..e2731da7 100644 --- a/LANG_www/agc_it/vdc_db_query.php +++ b/LANG_www/agc_it/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Utentename/Password non validi: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + echo "Utentename/Password non validi: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Script per query su Database"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script per query su Database"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Password:
\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPassword:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Scelta del Gruppo $closer_choice non e` valido\n"; - exit; - } + { + $channel_live=0; + echo "Scelta del Gruppo $closer_choice non e` valido\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Scelta del Gruppo $closer_choice e` stato registrato dall`utente $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories non e` valido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories e` stato registrato dall`utente $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "LISTA DI CHIAMATA VUOTA\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context non e` valido\n"; - exit; - } + { + $channel_live=0; + echo "LISTA DI CHIAMATA VUOTA\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context non e` valido\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST CHIAMATA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST CHIAMATA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # CHIAMATAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "LISTA DI CHIAMATA VUOTA\n"; + { + echo "LISTA DI CHIAMATA VUOTA\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context non e` valido\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " CHIAMATA NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context non e` valido\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # CHIAMATAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Inserito: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "LOG NON INSERITO\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserito: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "LOG NON INSERITO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campagna $campaign non e` valido\n"; - echo "lead_id $lead_id non e` valido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Campagna $campaign non e` valido\n"; + echo "lead_id $lead_id non e` valido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campagna $campaign non e` valido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Campagna $campaign non e` valido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send su to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send su to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If CHIAMATABK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If CHIAMATABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user su $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user su $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten non e` valido\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten non e` valido\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a LOGOUT record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation su the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a LOGOUT record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation su the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id non e` valido\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id non e` valido\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### CHIAMATABACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### INIZIO Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Utente $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Cognome Attempt, Date of Cognome Non-Contact, Date of Cognome Contact, Date of Cognome Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' e` cambiato ' . $dispo_choice . " Stato\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id non e` valido\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id non e` valido\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage non e` valido\n"; - exit; - } + { + echo "stage $stage non e` valido\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' e` ora nello stato ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list non e` valido\n"; - exit; - } + { + echo "favorites list $favorites_list non e` valido\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status non e` valido\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status non e` valido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
PREFERITI       modifica
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Chiamate in coda Visualizza disabili per questa campagna\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data su calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info su the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           CHIAMATA GROUP     TYPE  
TAKE CHIAMATA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Chiamate in coda Visualizza disabili per questa campagna\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pausa Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_it/vdc_script_display.php b/LANG_www/agc_it/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_it/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_it/vicidial.php b/LANG_www/agc_it/vicidial.php index 2f8ab753..04c7943e 100644 --- a/LANG_www/agc_it/vicidial.php +++ b/LANG_www/agc_it/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Ora non sei collegato. Grazie\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls su hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of secondi for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofsecondi for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name su login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST su server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a CHIAMA link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups su campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call secondi counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='Sovrascrive MANAGER OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='Sovrascrive MANAGER OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + VICIDIAL web client: Re-Login\n"; +echo "Agent web client: Re-Login\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Orologio
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Italiano
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "VICIDIAL web client: Login Campagna\n"; + echo "Agent web client: Login Campagna\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Orologio
\n"; echo "
Re-Login
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Italiano
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Login Utente

"; @@ -665,15 +740,17 @@ echo "
VICIDIAL web client: Login\n"; + echo "Agent web client: Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Orologio
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Italiano
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Login VICIDIAL web client: Login Telefono\n"; +echo "Agent web client: Login Telefono\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Orologio
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Italiano
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Password:
\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPassword:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "VICIDIAL web client: VICIDIAL Login Campagna\n"; + echo "Agent web client: Login Campagna\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Orologio
\n"; echo "
Login Telefono
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_secondi = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "VICIDIAL web client: Login Campagna\n"; + echo "Agent web client: Login Campagna\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Orologio
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Italiano
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "VICIDIAL web client: Login Telefono Error\n"; + echo "Agent web client: Login Telefono Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Orologio
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Italiano
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "VICIDIAL web client\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TelefonoSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed su this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login su phone: $SIP_user nella campagna: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login su phone: $SIP_user nella campagna: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NUOVO record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today su that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today su that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "VICIDIAL web client: VICIDIAL Login Campagna\n"; + echo "Agent web client: Login Campagna\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Orologio
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Spiacenti, non ci sono contatti da chiamare per questa campagna\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1854,9 +2079,9 @@ echo "
VICIDIAL web client: VICIDIAL Login Campagna\n"; + echo "Agent web client: Login Campagna\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Orologio
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsecondi counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -LOGOUT\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +LOGOUT\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     ID sessione:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Chiamata in corso
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + CHIAMATA MANUALE       CHIAMATA VELOCE
- + X CHIAMATABACK ATTIVE
- +
- secondi: +secondi:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - CHIAMA\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
RICHIAMI PER L`OPERATORE :
Selezionare una callback per chiamare il cliente ora. Una volta fatto click, il record sara` rimosso dalla lista. + + height=460>
RICHIAMI PER L`OPERATORE :
Selezionare una callback per chiamare il cliente ora. Una volta fatto click, il record sara` rimosso dalla lista.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
NUOVA CHIAMATA MANUALE PER IL CONTATTO :

Inserisci le informazioni per il nuovo contatto da chiamare. + + height=460>
NUOVA CHIAMATA MANUALE PER IL CONTATTO :

Inserisci le informazioni per il nuovo contatto da chiamare.
- \n"; } ?> - Nota: tutti i nuovi contatti chiamati manualmente andranno nella lista

+ Nota: tutti i nuovi contatti chiamati manualmente andranno nella lista

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Il tuo stato:
Calls Dialing:
- -
Codice di Chiamata:   (Vale 1 negli USA ed in Canada)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Il tuo stato:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Trasferimento - Conferenza            
+ Trasferimento - Conferenza            
+ + + + + + - LOCAL CLOSER - Riaggancia la linea trasferita - Riaggancia entrambe le linee + + + + + -
- - Numero da chiamare   + + + + + -
+ + + + +
+ + LOCAL CLOSER     + + Riaggancia la linea trasferita +
+ seconds +   + channel + + CONSULTIVO   + + Riaggancia entrambe le linee +
+ Numero da chiamare +   +   - CHIAMA OVERRIDE   - LASCIA LA CONFERENZA A 3 - Effettua il Blind Transfer - D1 - D2 + + CHIAMA OVERRIDE + + LASCIA LA CONFERENZA A 3 +
+ Effettua il Blind Transfer +   + Chiama il Cliente +   + Metti in attesa il cliente +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- secondi   - channel - Chiama il Cliente - Metti in attesa il cliente - Blind Transfer VMail Message
height=70> + +
 Chiamate in coda:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Nascondere chiamate in coda\n";} + else + {echo "Mostra le chiamate in coda\n";} + } +?> + + + +
  +Altri agenti Stato:  
 
+ +
+Agenti di trasferimento disponibili:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Esito Contatto:

-
- - height=70> + +
height=70>
Tasti Funzione per Esiti: Se attivo, premi il tasto corrispondente all`esito desiderato e la chiamata sara` riagganciata automaticamente:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Il tuo stato:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Informazioni richiamo precedente: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Il tuo stato:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Estensione Alt Telefono informazioni: minimizza
ingrandisci
Alt Telefono Info
- - height=500>
Non c'è nessuno nella tua sessione:
+ + height=500>
Non c'è nessuno nella tua sessione:
Torna Indietro

Chiama l`operatore di nuovo
- - height=500>
Il cliente ha riagganciato:
+ + height=500>
Il cliente ha riagganciato:
Torna Indietro

Termina e definisci un Esito per la chiamata -
- - height=550>
Call Wrapup: secondi di riposo restanti

- + + height=550>
Call Wrapup: secondi di riposo restanti

+

Termina riposo e continua -
- - height=500>
La tua sessione e` stata disabilitata
LOGOUT

Torna Indietro + +
+


+ Chiudi Message +
+
+ + + height=500>
La tua sessione e` stata disabilitata
LOGOUT

Torna Indietro
- - height=500>
Cè un problema di sincronizzazione con il tempo il vostro sistema, si prega di informare lamministratore di sistema


Torna Indietro + + height=500>
Cè un problema di sincronizzazione con il tempo il vostro sistema, si prega di informare lamministratore di sistema


Torna Indietro
- - height=500>

LOGOUT
+ + height=500>

LOGOUT
- +
- +
 
- - height=47>
Tutti i cambiamenti eseguiti sui dati del cliente non saranno salvati, bisogna effettuare le modifiche prima di riagganciare.
+ + height=47>
Tutti i cambiamenti eseguiti sui dati del cliente non saranno salvati, bisogna effettuare le modifiche prima di riagganciare.
- - height=460>
ESITO CHIAMATA :       Aggancia di nuovo       minimizza
+ + height=460>
ESITO CHIAMATA :       Aggancia di nuovo       minimizza
Selezione Esito di fine chiamata
PAUSA OPERATORE
@@ -8286,27 +10789,27 @@ Il tuo stato:
Calls Dialing: - height=460>
SELEZIONARE UN CODICE PAUSA:
+ + height=460>
SELEZIONARE UN CODICE PAUSA:
Pausa Code Selection

 
- - height=460>
SCEGLI UN GRUPPO ALIAS :
+ + height=460>
SCEGLI UN GRUPPO ALIAS :
Gruppo Alias selezione

 
- + - - height=460>
Selezionare una data di richiamo! :
+ + height=460>
Selezionare una data di richiamo! :
Seleziona una data qui sotto   @@ -8346,28 +10849,28 @@ Il tuo stato:
Calls Dialing: CHIAMATABACK PERSONALE (nessun altro potra` richiamarlo)
";} ?> Note Richiamo:

INVIA

- +

 
- - height=460>
SELEZIONE del CLOSER INBOUND GROUP
+ + height=460>
SELEZIONE del CLOSER INBOUND GROUP
Selezione del Closer Inbound Group
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> CHIAMATA MISTA(outbound attivato)
- RESET | @@ -8376,37 +10879,53 @@ Il tuo stato:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + INVIA +



  +
+
+ + Canale Canale - CHIAMATABACK PERSONALE (nessun altro potra` richiamarlo)
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " CHIAMATA MISTA
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -TASTI FUNZIONE DISATTIVATI - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +TASTI FUNZIONE DISATTIVATI + - ->
Versione di VICIDIAL web-client:     BUILD:               Server:              
-Mostra le informazioni relative al canale della conferenza

 
+ +>
Agent web-client version:     BUILD:               Server:              
+ +Mostra le informazioni relative al canale della conferenza +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_it/voicemail_check.php b/LANG_www/agc_it/voicemail_check.php index 56615f3c..b119c033 100644 --- a/LANG_www/agc_it/voicemail_check.php +++ b/LANG_www/agc_it/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_nl/active_list_refresh.php b/LANG_www/agc_nl/active_list_refresh.php index 836ee49c..2d86e8c1 100644 --- a/LANG_www/agc_nl/active_list_refresh.php +++ b/LANG_www/agc_nl/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_nl/astguiclient.php b/LANG_www/agc_nl/astguiclient.php index 9b3b0913..38fb83de 100644 --- a/LANG_www/agc_nl/astguiclient.php +++ b/LANG_www/agc_nl/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Je ben nu uitgelogd. Bedankt\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2803,12 +2805,12 @@ echo "\n"; - +
STATO:
@@ -8434,7 +10953,7 @@ else CHIAMA ALT NUM
-Start Registrazione
+Start Registrazione

Web Form
+ 0) + {echo "\"Web
\n";} +?>
-Metti in attesa la chiamata
-Trasferimento - Conferenza
+Metti in attesa la chiamata
+Trasferimento - Conferenza
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Riaggancia il cliente

-
Trasmetti Tono Tastiera

+
Trasmetti Tono Tastiera

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ ID Registrazione:
Telefono: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Note: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "astGUIclient web client\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Managersends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Managersends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-UITLOGGEN
\n"; ?> +UITLOGGEN
\n"; ?>
Hoofd Paneel
INKOMENDE GESPREKKEN:
astGUIclient web-client VERSIE: BUILD:
astGUIclient web-client VERSIE: BUILD:
- $h) { @@ -2892,7 +2894,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_nl/conf_exten_check.php b/LANG_www/agc_nl/conf_exten_check.php index 6b6100d9..44158ffc 100644 --- a/LANG_www/agc_nl/conf_exten_check.php +++ b/LANG_www/agc_nl/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is op is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_UITLOGGEN';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -484,7 +617,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_nl/dbconnect.php b/LANG_www/agc_nl/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_nl/dbconnect.php +++ b/LANG_www/agc_nl/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_nl/inbound_popup.php b/LANG_www/agc_nl/inbound_popup.php index 8368345d..d4481c41 100644 --- a/LANG_www/agc_nl/inbound_popup.php +++ b/LANG_www/agc_nl/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -LIVE BINNENKOMEND GESPREK"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid is niet geldig\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_nl/live_exten_check.php b/LANG_www/agc_nl/live_exten_check.php index 7a0211f7..7c98dcf3 100644 --- a/LANG_www/agc_nl/live_exten_check.php +++ b/LANG_www/agc_nl/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_nl/manager_send.php b/LANG_www/agc_nl/manager_send.php index 8bb33484..cd56155a 100644 --- a/LANG_www/agc_nl/manager_send.php +++ b/LANG_www/agc_nl/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Manager Send: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "HELP";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "ManagerSend: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "HELP";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten is niet geldig or queryCID $queryCID is niet geldig, Originate commando niet uitgevoerd\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate commando verstuurt Exten $exten Kanaal $channel op $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commando verstuurt Exten $exten Kanaal $channel op $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context moet gezet zijn\n"; echo "ext_priority $ext_priority moet gezet zijn\n"; echo "\nOriginateName Action niet verstuurd\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context moet gezet zijn\n"; echo "ext_priority $ext_priority moet gezet zijn\n"; echo "\nOriginateNameVmail Action niet verstuurd\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten is niet geldig or queryCID $queryCID is niet geldig, Originate commando niet uitgevoerd\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten is niet geldig or queryCID $queryCID is niet geldig, Originate commando niet uitgevoerd\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate commando verstuurt Exten $exten Kanaal $channel op $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR U bent niet toegestaan te bellen naar andere agent sessies $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commando verstuurt Exten $exten Kanaal $channel op $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten is niet geldig or ext_context $ext_context or queryCID $queryCID is niet geldig, Hangup commando niet uitgevoerd\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup commando verstuurt Kanaal $channel op $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid moet gezet zijn\n"; echo "lead_id $lead_id moet gezet zijn\n"; echo "\nRedirectVD Action niet verstuurd\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority moet gezet zijn\n"; echo "parkedby $parkedby moet gezet zijn\n"; echo "\nRedirectToPark Action niet verstuurd\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context moet gezet zijn\n"; echo "ext_priority $ext_priority moet gezet zijn\n"; echo "\nRedirectFromPark Action niet verstuurd\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context moet gezet zijn\n"; echo "ext_priority $ext_priority moet gezet zijn\n"; echo "\nRedirectName Action niet verstuurd\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context moet gezet zijn\n"; echo "ext_priority $ext_priority moet gezet zijn\n"; echo "\nRedirectNameVmail Action niet verstuurd\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Een van deze variabelen is niet geldig:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanaal $channel is niet live op $call_server_ip, Redirect commando niet uitgevoerd\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect commando niet uitgevoerd\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX commando verstuurt Kanaal $channel op $call_server_ip and \nHungup $extrachannel op $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel op $call_server_ip, Hungup $extrachannel op $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel op $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Een van deze variabelen is niet geldig:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference op $server_ip, Redirect commando niet uitgevoerd\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kan geen lege conferentie vinden op $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference op $server_ip, Redirect commando niet uitgevoerd\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kan geen lege conferentie vinden op $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanaal $channel is niet live op $call_server_ip, Redirect commando niet uitgevoerd\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra commando verstuurt Kanaal $channel and \nExtraKanaal $extrachannel\n to $exten op $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten op $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra commando verstuurt Kanaal $channel op $call_server_ip and \nExtraKanaal $extrachannel\n to $exten op $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Een van deze variabelen is niet geldig:\n"; - echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; - echo "ExtraKanaal $extrachannel moet groter zijn dan 2 karakters\n"; - echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; - echo "exten $exten moet gezet zijn\n"; - echo "ext_context $ext_context moet gezet zijn\n"; - echo "ext_priority $ext_priority moet gezet zijn\n"; - echo "\nRedirect Action niet verstuurd\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanaal $channel is niet live op $call_server_ip, Redirect commando niet uitgevoerd\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect commando niet uitgevoerd\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX commando verstuurt Kanaal $channel op $call_server_ip and \nHungup $extrachannel op $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel op $call_server_ip, Hungup $extrachannel op $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel op $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Een van deze variabelen is niet geldig:\n"; - echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; - echo "ExtraKanaal $extrachannel moet groter zijn dan 2 karakters\n"; - echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; - echo "exten $exten moet gezet zijn\n"; - echo "ext_context $ext_context moet gezet zijn\n"; - echo "ext_priority $ext_priority moet gezet zijn\n"; - echo "\nRedirect Action niet verstuurd\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Kan geen lege conferentie vinden op $server_ip, Redirect commando niet uitgevoerd\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kan geen lege conferentie vinden op $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanaal $channel is niet live op $call_server_ip, Redirect commando niet uitgevoerd\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra commando verstuurt Kanaal $channel and \nExtraKanaal $extrachannel\n to $exten op $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten op $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra commando verstuurt Kanaal $channel op $call_server_ip and \nExtraKanaal $extrachannel\n to $exten op $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Een van deze variabelen is niet geldig:\n"; echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context moet gezet zijn\n"; echo "ext_priority $ext_priority moet gezet zijn\n"; echo "\nRedirect Action niet verstuurd\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect commando verstuurt Kanaal $channel op $server_ip\n"; + echo "Redirect commando verstuurt Kanaal $channel op $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanaal $channel is niet geldig or queryCID $queryCID is niet geldig or filename: $filename is niet geldig, $ACTION commando niet uitgevoerd\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanaal $channel is niet live op $server_ip, $ACTION commando niet uitgevoerd\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION commando verstuurt Kanaal $channel op $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION commando verstuurt Kanaal $channel op $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanaal $channel is niet geldig or exten $exten is niet geldig or filename: $filename is niet geldig, $ACTION commando niet uitgevoerd\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going op in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going op in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION commando verstuurt Kanaal $channel op $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n OPNEMEN DUURT TOT 60 MINUTEN\n"; } - echo "$ACTION commando verstuurt Kanaal $channel op $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n OPNEMEN DUURT TOT 60 MINUTEN\n"; } -} @@ -1876,31 +1636,31 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ - if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { echo "Conferentie $exten, Stage $stage is niet geldig or queryCID $queryCID is niet geldig, Originate commando niet uitgevoerd\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume commando verstuurt Conferentie + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume commando verstuurt Conferentie $exten, Stage $stage Kanaal $channel op $server_ip\n"; + } } -} @@ -1915,7 +1675,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1923,23 +1683,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_nl/park_calls_display.php b/LANG_www/agc_nl/park_calls_display.php index 0ef80045..53bf408a 100644 --- a/LANG_www/agc_nl/park_calls_display.php +++ b/LANG_www/agc_nl/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_nl/timeclock.php b/LANG_www/agc_nl/timeclock.php index f2cd48da..079cdca8 100644 --- a/LANG_www/agc_nl/timeclock.php +++ b/LANG_www/agc_nl/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "De gebruiker en wachtwoord die je hebt ingevoerd zijn niet actief in het systeem
Probeer aub nogmaals:"; echo"\n"; - echo"VICIDIAL: Tijdslot\n"; + echo"Agent Tijdslot\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'START') ) { - ### You cannot log in or out within 30 seconden of your last login/logout + ### You cannot log in or out within 30seconden of your last login/logout $VDdisplayMESSAGE = "Je kunt niet inloggen binnen 30 seconden na je laatste login of log-uit"; echo"\n"; - echo"VICIDIAL: Tijdslot\n"; + echo"Agent Tijdslot\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "TERUG naar Welkomst Scherm";} echo"\n"; - echo"VICIDIAL: Tijdslot\n"; + echo"Agent Tijdslot\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL: Tijdslot\n"; + echo"Agent Tijdslot\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL: Tijdslot\n"; + echo"Agent Tijdslot\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_nl/vdc_db_query.php b/LANG_www/agc_nl/vdc_db_query.php index 71eaf36a..de586b4d 100644 --- a/LANG_www/agc_nl/vdc_db_query.php +++ b/LANG_www/agc_nl/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -195,12 +197,41 @@ # 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y # 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode # 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.2.0-107'; -$build = '90327-1348'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=212; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -366,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -384,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -430,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Foutief session_name: |$session_name|$server_ip|\n"; + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Database Query Script"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Database Query Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -622,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Inloggen:
\n"; - $VDdisplayMESSAGE.= "Manager Wachtwoord:
\n"; + $VDdisplayMESSAGE.= "ManagerInloggen:
\n"; + $VDdisplayMESSAGE.= "ManagerWachtwoord:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -665,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Groep Keuze $closer_choice is niet geldig\n"; - exit; - } + { + $channel_live=0; + echo "Groep Keuze $closer_choice is niet geldig\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Groep Keuze $closer_choice is geregistreerd voor gebruiker $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories is niet geldig\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories is geregistreerd voor gebruiker $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "HOPPER LEEG\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is niet geldig\n"; - exit; - } + { + $channel_live=0; + echo "HOPPER LEEG\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is niet geldig\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -779,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -907,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST BEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST BEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -934,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -972,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -999,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1081,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1119,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1145,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1155,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1171,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # BELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1190,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1228,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "HOPPER LEEG\n"; + { + echo "HOPPER LEEG\n"; + } } } -} ################################################################################ @@ -1301,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is niet geldig\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1323,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1332,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " BEL NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is niet geldig\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1372,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1408,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1471,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # BELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1488,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1576,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1772,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1780,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1788,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1807,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1821,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1870,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1884,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1970,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1984,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2060,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2097,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2106,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2191,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Ingevoerd: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "LOG NIET INGEVOERD\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Ingevoerd: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "LOG NIET INGEVOERD\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2243,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2292,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2480,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2492,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2510,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campagne $campaign is niet geldig\n"; - echo "lead_id $lead_id is niet geldig\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign is niet geldig\n"; + echo "lead_id $lead_id is niet geldig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2552,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2566,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campagne $campaign is niet geldig\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign is niet geldig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2913,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send op to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send op to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If BELBK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If BELBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user op $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user op $server_ip\n"; - exit; } } -} ################################################################################ @@ -3096,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten is niet geldig\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten is niet geldig\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3118,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a UITLOGGEN record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','UITLOGGEN','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation op the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a UITLOGGEN record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','UITLOGGEN','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation op the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3279,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3289,122 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id is niet geldig\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id is niet geldig\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - ### find all DNC-type statuses in the system - if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) - { - $DNC_string_check = '|'; - $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dncvs_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dncvs_ct) - { + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $DNC_string_check .= "$row[0]|"; - $i++; + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } } - $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dncvcs_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dncvcs_ct) + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) { - $row=mysql_fetch_row($rslt); - $DNC_string_check .= "$row[0]|"; - $i++; + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; } - # echo "$DNC_string_check"; + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - $insert_into_dnc=0; - if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $insert_into_dnc++; - } - if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $insert_into_dnc++; - } - } - $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3412,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### BELBACK ENTRY @@ -3459,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3474,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3545,7 +5088,7 @@ if ($ACTION == 'updateDISPO') $status_name = $row[0]; } } - if (strlen($dispo_choice) < 1) {$status_name = $dispo_chioce;} + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} ### connect to your vtiger database $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); @@ -3586,48 +5129,101 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $user_id = $row[0]; - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "|$leadid|\n";} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "|$leadid|\n";} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "|$leadid|\n";} + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Gebruiker $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "|$leadid|\n";} + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Gebruiker $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } } ### update the status of the record in vtiger if (ereg('Y',$vtiger_status_call)) @@ -3702,7 +5298,7 @@ if ($ACTION == 'updateDISPO') } $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $cc_vcs_ct = mysql_num_rows($rslt); $i=0; @@ -3830,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3840,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3861,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' is veranderd naar ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id is niet geldig\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id is niet geldig\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3973,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage is niet geldig\n"; - exit; - } + { + echo "stage $stage is niet geldig\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -4011,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### START QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -4054,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' is nu in status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list is niet geldig\n"; - exit; - } + { + echo "favorites list $favorites_list is niet geldig\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status is niet geldig\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### START QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status is niet geldig\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pauze Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
FAVORIETEN       bewerk
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Roept in wachtrij Bekijk een handicap voor deze campagne\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data op calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info op the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           BEL GROUP     TYPE  
TAKE BEL     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Roept in wachtrij Bekijk een handicap voor deze campagne\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pauze Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -4318,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_nl/vdc_script_display.php b/LANG_www/agc_nl/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_nl/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_nl/vicidial.php b/LANG_www/agc_nl/vicidial.php index bcd139b1..eb56961e 100644 --- a/LANG_www/agc_nl/vicidial.php +++ b/LANG_www/agc_nl/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -225,18 +225,66 @@ # 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time # 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.2.0-203'; -$build = '90323-1555'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -251,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Je ben nu uitgelogd. Bedankt\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -296,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -324,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -344,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls op hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of seconden for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofseconden for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name op login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST op server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a DIAL link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups op campaigns for login @@ -363,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -374,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call seconden counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -418,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER BOVEN OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER BOVEN OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + VICIDIAL web client: Opnieuw inloggen\n"; +echo "Agent web client: Opnieuw inloggen\n"; echo "\n"; -echo "\n"; +echo "\n"; echo " Tijdslot
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Dutch
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -623,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "VICIDIAL web client: Campagne Inloggen\n"; + echo "Agent web client: Campagne Inloggen\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Tijdslot
\n"; echo "
Opnieuw inloggen
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Dutch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Gebruiker Inloggen

"; @@ -667,15 +740,17 @@ echo "
VICIDIAL web client: Inloggen\n"; + echo "Agent web client: Inloggen\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Tijdslot
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Dutch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -706,15 +781,17 @@ echo "
Inloggen VICIDIAL web client: Telefoon Inloggen\n"; +echo "Agent web client: Telefoon Inloggen\n"; echo "\n"; -echo "\n"; +echo "\n"; echo " Tijdslot
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Dutch
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -757,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -777,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -791,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -842,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -900,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Inloggen:
\n"; - $VDdisplayMESSAGE.= "Manager Wachtwoord:
\n"; + $VDdisplayMESSAGE.= "ManagerInloggen:
\n"; + $VDdisplayMESSAGE.= "ManagerWachtwoord:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -909,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -930,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "VICIDIAL web client: VICIDIAL Campagne Inloggen\n"; + echo "Agent web client: Campagne Inloggen\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Tijdslot
\n"; echo "
Telefoon Inloggen
\n"; echo "\n"; @@ -940,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Inloggen: \n
"; @@ -1036,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_seconden = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1102,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1116,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1168,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1186,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1195,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1247,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1269,15 +1463,17 @@ echo "VICIDIAL web client: Campagne Inloggen\n"; + echo "Agent web client: Campagne Inloggen\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Tijdslot
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Dutch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1302,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1357,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "VICIDIAL web client: Telefoon Inloggen Error\n"; + echo "Agent web client: Telefoon Inloggen Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Tijdslot
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Dutch
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1415,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1443,8 +1644,8 @@ else } echo "\n"; } - echo "VICIDIAL web client\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1512,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TelefoonSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1557,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed op this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1609,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1631,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1647,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1663,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login op phone: $SIP_user naar campagne: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login op phone: $SIP_user naar campagne: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1717,7 +1936,7 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } @@ -1728,43 +1947,45 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today op that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today op that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1776,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1799,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1816,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1832,9 +2053,9 @@ else } else { - echo "VICIDIAL web client: VICIDIAL Campagne Inloggen\n"; + echo "Agent web client: Campagne Inloggen\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Tijdslot
\n"; echo "\n"; echo "\n"; @@ -1842,6 +2063,8 @@ echo "
Sorry, er zijn geen leads in de hopper voor deze campagne\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Inloggen: \n
"; @@ -1856,9 +2079,9 @@ echo "
VICIDIAL web client: VICIDIAL Campagne Inloggen\n"; + echo "Agent web client: Campagne Inloggen\n"; echo "\n"; - echo "\n"; + echo "\n"; echo " Tijdslot
\n"; echo "\n"; echo "\n"; @@ -1866,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Inloggen: \n
"; @@ -1882,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1899,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1920,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1931,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callseconden counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2035,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2076,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7976,7 +10383,8 @@ else -\n"; @@ -8008,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -UITLOGGEN\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +UITLOGGEN\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     sessie ID:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Live Gesprek
@@ -8033,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + HANDMATIG BELLEN       SNEL BELLEN
- + X AKTIEVE TERUGBELLERS
- +
- seconden: +seconden:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - DIAL\n"; @@ -8062,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
TERUGBELLERS VOOR AGENT :
Klik op een terugbeller om de klant nu terug te bellen. Als je hierop klikt, wordt deze verwijderd uit de lijst. + + height=460>
TERUGBELLERS VOOR AGENT :
Klik op een terugbeller om de klant nu terug te bellen. Als je hierop klikt, wordt deze verwijderd uit de lijst.

  @@ -8077,16 +10485,16 @@ echo "\n";
- - height=460>
NIEUWE HANDMATIGE LEAD VOOR :

Voer de informatie voor de nieuwe lead hieronder in. + + height=460>
NIEUWE HANDMATIGE LEAD VOOR :

Voer de informatie voor de nieuwe lead hieronder in.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8121,46 +10529,88 @@ echo "\n"; -
+
- + Jouw Status:
Calls Dialing:
- -
Dial Code:   (Dit is normaal gesproken een 1 in de USA en Canada)
> -
+ + > + + @@ -8168,32 +10618,68 @@ Jouw Status:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Transfer- Conferentie            
+ Transfer- Conferentie            
+ + + + + + - LOKALE CLOSER - Ophangen Xfer Lijn - Ophangen Beide Lijnen + + + + + -
- - Nummer om te bellen   + + + + + -
+ + + + +
+ + LOKALE CLOSER     + + Ophangen Xfer Lijn +
+ seconds +   + channel + + ADVIESGROEP   + + Ophangen Beide Lijnen +
+ Nummer om te bellen +   +   - DIAL OVERRIDE   - VERLAAT 3-WAY GESPREK - Bel Blinde Transfer - D1 - D2 + + DIAL OVERRIDE + + VERLAAT 3-WAY GESPREK +
+ Bel Blinde Transfer +   + Bel Met Klant +   + Parkeer Klant Gesprek +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- seconden   - channel - Bel Met Klant - Parkeer Klant Gesprek - Blind Transfer VMail Message
height=70> + +
 Roept in de wachtrij:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Verberg roept in de wachtrij\n";} + else + {echo "Toon roept in de wachtrij\n";} + } +?> + + + +
  +Andere Agenten Status:  
 
+ +
+Beschikbaar Transfer Agents:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Klant Gedispotioneerd Als:

-
- - height=70> + +
height=70>
Dispositie Hot Keys: Wanneer aktief, kies de corresponderende toets op het toetsenbord, om dit geprek te dispositioneren. Het gesprek wordt opgehangen en automatisch gedispositioneerd:
- + - + - +
- - height=70> + +
height=70> @@ -8209,8 +10695,8 @@ Jouw Status:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Vorige Callback Informatie: close
height=70> + +
height=70> @@ -8226,67 +10712,72 @@ Jouw Status:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Uitgebreide Alt. Tel. Informatie minimaliseer
maximaliseer
Alt Telefoon Info
- - height=500>
Er is niemand in jouw sessie:
+ + height=500>
Er is niemand in jouw sessie:
Ga Terug

Bel Agent
- - height=500>
Klant heeft opgehangen:
+ + height=500>
Klant heeft opgehangen:
Ga Terug

Afsluiten en Dispositioneren Gesprek -
- - height=550>
Call Wrapup: seconden over in wrapup

- + + height=550>
Call Wrapup: seconden over in wrapup

+

Wrapup afmaken en doorgaan -
- - height=500>
Jouw sessie is disabled
UITLOGGEN

Ga Terug + +
+


+ Close Message +
+
+ + + height=500>
Jouw sessie is disabled
UITLOGGEN

Ga Terug
- - height=500>
Er is een tijd synchronisatie probleem met uw systeem, kunt u uw systeembeheerder


Ga Terug + + height=500>
Er is een tijd synchronisatie probleem met uw systeem, kunt u uw systeembeheerder


Ga Terug
- - height=500>

UITLOGGEN
+ + height=500>

UITLOGGEN
- +
- +
 
- - height=47>
Alle aanpassingen gedaan aan onderstaande klant informatie wordt niet doorgevoerd. Je moet de klant informatie aanpassen VOORDAT je VOLGENDE LEAD kiest.
+ + height=47>
Alle aanpassingen gedaan aan onderstaande klant informatie wordt niet doorgevoerd. Je moet de klant informatie aanpassen VOORDAT je VOLGENDE LEAD kiest.
- - height=460>
DISPOSITIONEER GESPREK :       Opnieuw Ophangen       minimaliseer
+ + height=460>
DISPOSITIONEER GESPREK :       Opnieuw Ophangen       minimaliseer
Einde gesprek Dispositie Selectie
PAUZEER BELLEN
@@ -8298,27 +10789,27 @@ Jouw Status:
Calls Dialing: - height=460>
SELECTEER EEN PAUZE CODE :
+ + height=460>
SELECTEER EEN PAUZE CODE :
Pauze Code Selection

 
- - height=460>
KIES EEN GROEP ALIAS :
+ + height=460>
KIES EEN GROEP ALIAS :
Groep Alias Selectie

 
- + - - height=460>
Selecteer een terugbel datum :
+ + height=460>
Selecteer een terugbel datum :
Selecteer een dautm   @@ -8358,28 +10849,28 @@ Jouw Status:
Calls Dialing: ALLEEN MIJN TERUGBELLER
";} ?> CB Commentaar:

OPSLAAN

- +

 
- - height=460>
CLOSER INKOMENDE GROEP SELECTIE
+ + height=460>
CLOSER INKOMENDE GROEP SELECTIE
Close Inkomende Groep Selectie
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> BLENDED BELLEN(outbound geactiveerd)
- RESET | @@ -8388,37 +10879,53 @@ Jouw Status:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + OPSLAAN +



  +
+
+ + Kanaal Kanaal - ALLEEN MIJN TERUGBELLER
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " BLENDED BELLEN
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -HOT KEYS NIET AKTIEF - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +HOT KEYS NIET AKTIEF + - ->
VICIDIAL web-client versie:     BUILD:               Server:              
-Toon conferentie gesprek kanaal informatie

 
+ +>
Agent web-client version:     BUILD:               Server:              
+ +Toon conferentie gesprek kanaal informatie +

 
- 0) ) {echo "Alert is ON";} else @@ -8427,7 +10934,7 @@ else
- +
@@ -8436,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8584,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_nl/voicemail_check.php b/LANG_www/agc_nl/voicemail_check.php index 230fde07..e4b8ab0b 100644 --- a/LANG_www/agc_nl/voicemail_check.php +++ b/LANG_www/agc_nl/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pl/active_list_refresh.php b/LANG_www/agc_pl/active_list_refresh.php index 59562a68..98e5b627 100644 --- a/LANG_www/agc_pl/active_list_refresh.php +++ b/LANG_www/agc_pl/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_pl/astguiclient.php b/LANG_www/agc_pl/astguiclient.php index 6a54918a..f6596f0e 100644 --- a/LANG_www/agc_pl/astguiclient.php +++ b/LANG_www/agc_pl/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Wylogowałeś się. Do zobaczenia\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2802,12 +2804,12 @@ echo "\n"; - +
STATUS:
@@ -8446,7 +10953,7 @@ else BEL ALT. TEL.
-Start Opnemen
+Start Opnemen

Web Formulier
+ 0) + {echo "\"Web
\n";} +?>
-Parkeer Gesprek
-Transfer- Conferentie
+Parkeer Gesprek
+Transfer- Conferentie
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Ophangen Klant

-
Stuur DTMF

+
Stuur DTMF

align=left valign=top> + align=left valign=top> + + @@ -8522,8 +11049,8 @@ OPENEMEN ID:
Telefoon: -                     "; echo ""; @@ -8548,7 +11075,7 @@ else Opmerkingen: -\n";} else @@ -8566,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "klient astGUIclient\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF_pl.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Kierowniksends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Kierowniksends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-WYLOGUJ
\n"; ?> +WYLOGUJ
\n"; ?>
Główny panel
ROZMOWY PRZYCHODZĄCE:
astGUIclient WERSJA: KOMPILACJA:
astGUIclient WERSJA: KOMPILACJA:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pl/conf_exten_check.php b/LANG_www/agc_pl/conf_exten_check.php index ea606f21..8304beef 100644 --- a/LANG_www/agc_pl/conf_exten_check.php +++ b/LANG_www/agc_pl/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is na is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_WYLOGUJ';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pl/dbconnect.php b/LANG_www/agc_pl/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_pl/dbconnect.php +++ b/LANG_www/agc_pl/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_pl/inbound_popup.php b/LANG_www/agc_pl/inbound_popup.php index a59cad88..237549eb 100644 --- a/LANG_www/agc_pl/inbound_popup.php +++ b/LANG_www/agc_pl/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -AKTYWNA PRZYHODZĄCA ROZMOWA"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid nie jest prawidłowy\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pl/live_exten_check.php b/LANG_www/agc_pl/live_exten_check.php index 5ad4d3c9..306892f1 100644 --- a/LANG_www/agc_pl/live_exten_check.php +++ b/LANG_www/agc_pl/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pl/manager_send.php b/LANG_www/agc_pl/manager_send.php index 0c726592..ba07e9d9 100644 --- a/LANG_www/agc_pl/manager_send.php +++ b/LANG_www/agc_pl/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Wyślij do zarządzania: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "POMOC";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Wyślij do zarządzania: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "POMOC";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Originate komenda nie wstawiona\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate komenda wysłana do Exten $exten Kanał $channel na $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate komenda wysłana do Exten $exten Kanał $channel na $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context musi być ustawiony\n"; echo "ext_priority $ext_priority musi być ustawiony\n"; echo "\nOriginateName Action nie wysłano\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context musi być ustawiony\n"; echo "ext_priority $ext_priority musi być ustawiony\n"; echo "\nOriginateNameVmail Action nie wysłano\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Originate komenda nie wstawiona\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Originate komenda nie wstawiona\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate komenda wysłana do Exten $exten Kanał $channel na $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Nie masz uprawnień do wybierania numeru inne sesje agenta $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate komenda wysłana do Exten $exten Kanał $channel na $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten nie jest prawidłowy or ext_context $ext_context or queryCID $queryCID nie jest prawidłowy, Hangup komenda nie wstawiona\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup komenda wysłana do Kanał $channel na $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid musi być ustawiony\n"; echo "lead_id $lead_id musi być ustawiony\n"; echo "\nRedirectVD Action nie wysłano\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority musi być ustawiony\n"; echo "parkedby $parkedby musi być ustawiony\n"; echo "\nRedirectToPark Action nie wysłano\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context musi być ustawiony\n"; echo "ext_priority $ext_priority musi być ustawiony\n"; echo "\nRedirectFromPark Action nie wysłano\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context musi być ustawiony\n"; echo "ext_priority $ext_priority musi być ustawiony\n"; echo "\nRedirectName Action nie wysłano\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context musi być ustawiony\n"; echo "ext_priority $ext_priority musi być ustawiony\n"; echo "\nRedirectNameVmail Action nie wysłano\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanał $channel nie jest aktywna na $call_server_ip, Redirect komenda nie wstawiona\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect komenda nie wstawiona\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX komenda wysłana do Kanał $channel na $call_server_ip and \nHungup $extrachannel na $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel na $call_server_ip, Hungup $extrachannel na $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel na $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference na $server_ip, Redirect komenda nie wstawiona\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie mogę znaleźć wolnej konferencji na $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference na $server_ip, Redirect komenda nie wstawiona\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie mogę znaleźć wolnej konferencji na $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanał $channel nie jest aktywna na $call_server_ip, Redirect komenda nie wstawiona\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra komenda wysłana do Kanał $channel and \nExtraKanał $extrachannel\n to $exten na $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten na $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra komenda wysłana do Kanał $channel na $call_server_ip and \nExtraKanał $extrachannel\n to $exten na $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; - echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; - echo "ExtraKanał $extrachannel musi mieć więcej niż 2 znaki\n"; - echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; - echo "exten $exten musi być ustawiony\n"; - echo "ext_context $ext_context musi być ustawiony\n"; - echo "ext_priority $ext_priority musi być ustawiony\n"; - echo "\nRedirect Action nie wysłano\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanał $channel nie jest aktywna na $call_server_ip, Redirect komenda nie wstawiona\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect komenda nie wstawiona\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX komenda wysłana do Kanał $channel na $call_server_ip and \nHungup $extrachannel na $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel na $call_server_ip, Hungup $extrachannel na $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel na $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; - echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; - echo "ExtraKanał $extrachannel musi mieć więcej niż 2 znaki\n"; - echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; - echo "exten $exten musi być ustawiony\n"; - echo "ext_context $ext_context musi być ustawiony\n"; - echo "ext_priority $ext_priority musi być ustawiony\n"; - echo "\nRedirect Action nie wysłano\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Nie mogę znaleźć wolnej konferencji na $server_ip, Redirect komenda nie wstawiona\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie mogę znaleźć wolnej konferencji na $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanał $channel nie jest aktywna na $call_server_ip, Redirect komenda nie wstawiona\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra komenda wysłana do Kanał $channel and \nExtraKanał $extrachannel\n to $exten na $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten na $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra komenda wysłana do Kanał $channel na $call_server_ip and \nExtraKanał $extrachannel\n to $exten na $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context musi być ustawiony\n"; echo "ext_priority $ext_priority musi być ustawiony\n"; echo "\nRedirect Action nie wysłano\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect komenda wysłana do Kanał $channel na $server_ip\n"; + echo "Redirect komenda wysłana do Kanał $channel na $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanał $channel nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy or filename: $filename nie jest prawidłowy, $ACTION komenda nie wstawiona\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanał $channel nie jest aktywna na $server_ip, $ACTION komenda nie wstawiona\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION komenda wysłana do Kanał $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION komenda wysłana do Kanał $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanał $channel nie jest prawidłowy or exten $exten nie jest prawidłowy or filename: $filename nie jest prawidłowy, $ACTION komenda nie wstawiona\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going na in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going na in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION komenda wysłana do Kanał $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n NAGRYWANIE BĘDZIE TRWAĆ MAKSYMALNIE 60 MINUT\n"; } - echo "$ACTION komenda wysłana do Kanał $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n NAGRYWANIE BĘDZIE TRWAĆ MAKSYMALNIE 60 MINUT\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Konferencja $exten, Stage $stage nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Originate komenda nie wstawiona\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume komenda wysłana do Konferencja $exten, Stage $stage Kanał $channel na $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume komenda wysłana do Konferencja $exten, Stage $stage Kanał $channel na $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_pl/park_calls_display.php b/LANG_www/agc_pl/park_calls_display.php index c80e5901..8a1b8d5a 100644 --- a/LANG_www/agc_pl/park_calls_display.php +++ b/LANG_www/agc_pl/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pl/timeclock.php b/LANG_www/agc_pl/timeclock.php index 2b08079b..f25009b5 100644 --- a/LANG_www/agc_pl/timeclock.php +++ b/LANG_www/agc_pl/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "Użytkownika i hasło podane nie są aktywne w systemie
Please try again:"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'START') ) { - ### You cannot log in or out within 30 sekundy of your last login/logout + ### You cannot log in or out within 30sekundy of your last login/logout $VDdisplayMESSAGE = "Nie można zalogować się w ciągu 30 sekund od ostatniego logowania lub wylogowywania"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "Powrót do ekranu powitalnego";} echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_pl/vdc_db_query.php b/LANG_www/agc_pl/vdc_db_query.php index 402964be..4432379c 100644 --- a/LANG_www/agc_pl/vdc_db_query.php +++ b/LANG_www/agc_pl/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Skrypt zapytań do bazy danych"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Skrypt zapytań do bazy danych"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Hasło:
\n"; + $VDdisplayMESSAGE.= "KierownikLogin:
\n"; + $VDdisplayMESSAGE.= "KierownikHasło:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Wybór grupowy $closer_choice nie jest prawidłowy\n"; - exit; - } + { + $channel_live=0; + echo "Wybór grupowy $closer_choice nie jest prawidłowy\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Wybór grupowy $closer_choice został zarejestrowny dla użytkownika $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories nie jest prawidłowy\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories został zarejestrowny dla użytkownika $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "Zasobnik pusty\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context nie jest prawidłowy\n"; - exit; - } + { + $channel_live=0; + echo "Zasobnik pusty\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context nie jest prawidłowy\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST Rozmowa TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST Rozmowa TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # RozmowaOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "Zasobnik pusty\n"; + { + echo "Zasobnik pusty\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context nie jest prawidłowy\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " Rozmowa NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context nie jest prawidłowy\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # RozmowaOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Wstawiony: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "Dziennik nie zapisany\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Wstawiony: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "Dziennik nie zapisany\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Kampania $campaign nie jest prawidłowy\n"; - echo "lead_id $lead_id nie jest prawidłowy\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Kampania $campaign nie jest prawidłowy\n"; + echo "lead_id $lead_id nie jest prawidłowy\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Kampania $campaign nie jest prawidłowy\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Kampania $campaign nie jest prawidłowy\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send na to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send na to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If RozmowaBK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If RozmowaBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user na $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user na $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten nie jest prawidłowy\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten nie jest prawidłowy\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a WYLOGUJ record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','WYLOGUJ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation na the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a WYLOGUJ record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','WYLOGUJ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation na the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id nie jest prawidłowy\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id nie jest prawidłowy\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### RozmowaBACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### START Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Użytkownik $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Nazwisko Attempt, Date of Nazwisko Non-Contact, Date of Nazwisko Contact, Date of Nazwisko Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### START QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' zmieniono na ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id nie jest prawidłowy\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id nie jest prawidłowy\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage nie jest prawidłowy\n"; - exit; - } + { + echo "stage $stage nie jest prawidłowy\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### START QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' ma statusie ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list nie jest prawidłowy\n"; - exit; - } + { + echo "favorites list $favorites_list nie jest prawidłowy\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status nie jest prawidłowy\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### START QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status nie jest prawidłowy\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Przerwa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
ULUBIONE       edytuj
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Wzywa w kolejce Zobacz niepełnosprawnych w tej kampanii\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data na calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info na the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           Rozmowa GROUP     TYPE  
TAKE Rozmowa     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Wzywa w kolejce Zobacz niepełnosprawnych w tej kampanii\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Przerwa Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pl/vdc_script_display.php b/LANG_www/agc_pl/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_pl/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_pl/vicidial.php b/LANG_www/agc_pl/vicidial.php index f391fdfb..45c9702f 100644 --- a/LANG_www/agc_pl/vicidial.php +++ b/LANG_www/agc_pl/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Wylogowałeś się. Do zobaczenia\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls na hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of sekundy for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofsekundy for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name na login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST na server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a WYBIERZ link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups na campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call sekundy counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='KIEROWNIK nadrzędne OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='KIEROWNIK nadrzędne OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + klient VICIDIAL: Powtórne zalogowanie\n"; +echo "Agent web client: Powtórne zalogowanie\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Polski
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "klient VICIDIAL: Logowanie do kampani\n"; + echo "Agent web client: Logowanie do kampani\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Powtórne zalogowanie
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Polski
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Login użytkownika

"; @@ -665,15 +740,17 @@ echo "
klient VICIDIAL: Login\n"; + echo "Agent web client: Login\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Polski
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Login klient VICIDIAL: Login telefonu\n"; +echo "Agent web client: Login telefonu\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Polski
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Login:
\n"; - $VDdisplayMESSAGE.= "Manager Hasło:
\n"; + $VDdisplayMESSAGE.= "KierownikLogin:
\n"; + $VDdisplayMESSAGE.= "KierownikHasło:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "klient VICIDIAL: VICIDIAL Logowanie do kampani\n"; + echo "Agent web client: Logowanie do kampani\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Login telefonu
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_sekundy = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "klient VICIDIAL: Logowanie do kampani\n"; + echo "Agent web client: Logowanie do kampani\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Polski
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "klient VICIDIAL: Login telefonu Error\n"; + echo "Agent web client: Login telefonu Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Polski
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "klient VICIDIAL\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TelefonSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed na this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login na phone: $SIP_user do kampani: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login na phone: $SIP_user do kampani: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NOWY record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today na that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today na that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "klient VICIDIAL: VICIDIAL Logowanie do kampani\n"; + echo "Agent web client: Logowanie do kampani\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Niestety, w zasobniku nie ma kontaktów oczekujących wykonania połączeń dla tej kampanii\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1854,9 +2079,9 @@ echo "
klient VICIDIAL: VICIDIAL Logowanie do kampani\n"; + echo "Agent web client: Logowanie do kampani\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Login: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsekundy counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -WYLOGUJ\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +WYLOGUJ\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     ID sesji:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Aktywna rozmowa
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + WYBIERANIE RĘCZNE       SZYBKA TARCZA
- + X AKTYWNE INNE TERMINY
- +
- sekundy: +sekundy:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - WYBIERZ\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
INNE TERMINY DLA AGENTA :
Kliknij poniżej na Inne terminy żeby teraz zadzwonić do klienta. Jeżeli klikniesz na rekordzie by zadzwonić, rekord zostanie usunięty z listy. + + height=460>
INNE TERMINY DLA AGENTA :
Kliknij poniżej na Inne terminy żeby teraz zadzwonić do klienta. Jeżeli klikniesz na rekordzie by zadzwonić, rekord zostanie usunięty z listy.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
NOWE RĘCZNE WYBIERANIE NUMERU DLA :

Wpisz poniżej informacje o kontakcie do którego chcesz wykonać połączenie. + + height=460>
NOWE RĘCZNE WYBIERANIE NUMERU DLA :

Wpisz poniżej informacje o kontakcie do którego chcesz wykonać połączenie.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Twój Status:
Calls Dialing:
- -
Kod wybierania:   (dla polski będzie to 48)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Twój Status:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Transfer - Konferencja            
+ Transfer - Konferencja            
+ + + + + + - LOKALNY FINALIZUJĄCYCH - Rozłącz linię transferu - Rozłącz obie linie + + + + + -
- - Numer do wybrania   + + + + + -
+ + + + +
+ + LOKALNY FINALIZUJĄCYCH     + + Rozłącz linię transferu +
+ seconds +   + channel + + KONSULTACYJNA   + + Rozłącz obie linie +
+ Numer do wybrania +   +   - WYBIERZ TEN NUMER   - WYJDŹ Z ROZMOWY 3-STRONNEJ - Wybierz numer do nieweryfikowanego transferu - D1 - D2 + + WYBIERZ TEN NUMER + + WYJDŹ Z ROZMOWY 3-STRONNEJ +
+ Wybierz numer do nieweryfikowanego transferu +   + Połącz z klientem +   + Zawieś połączenie z klientem +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- sekundy   - channel - Połącz z klientem - Zawieś połączenie z klientem - Blind Transfer VMail Message
height=70> + +
 Wzywa w kolejce:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Ukryj wzywa w kolejce\n";} + else + {echo "Wzywa Pokaż w kolejce\n";} + } +?> + + + +
  +Inne leki Status:  
 
+ +
+Transfer Dostępne pełnomocników:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Połączenie rozdysponowane jako:

-
- - height=70> + +
height=70>
Klawisze skrótu dyspozycji: Kiedy aktywne, naciśnij guzik na klawiaturze w celu wybrania opcji dla tej rozmowy. Rozmowa zostanie automatycznie rozłączona a opcja ustawiona:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Twój Status:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Previous Callback Information: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Twój Status:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Rozszerzony Alt telefonu: minimalizuj
maksymalizuj
Alt Telefon Info
- - height=500>
Nikt nie uczestniczy w Twojej sesji:
+ + height=500>
Nikt nie uczestniczy w Twojej sesji:
Wróć

Ponownie połącz się z telefonem
- - height=500>
Klient sie rozłączył:
+ + height=500>
Klient sie rozłączył:
Wróć

Zakończ i wprowadź rezultat rozmowy -
- - height=550>
Call Wrapup sekundy remaining in wrapup

- + + height=550>
Call Wrapup sekundy remaining in wrapup

+

Finish Wrapup and Move On -
- - height=500>
Wasza sesja była uszkadzana
WYLOGUJ

Wróć + +
+


+ Zamknij komunikat +
+
+ + + height=500>
Wasza sesja była uszkadzana
WYLOGUJ

Wróć
- - height=500>
Istnieje problem synchronizacji czasu z systemem, należy powiadomić administratora systemu


Wróć + + height=500>
Istnieje problem synchronizacji czasu z systemem, należy powiadomić administratora systemu


Wróć
- - height=500>

WYLOGUJ
+ + height=500>

WYLOGUJ
- +
- +
 
- - height=47>
Zmiany wprowadzone w informacjach o kliencie będą zapisane tylko podczas trwania połączenia. Nie po rozłączaniu!.
+ + height=47>
Zmiany wprowadzone w informacjach o kliencie będą zapisane tylko podczas trwania połączenia. Nie po rozłączaniu!.
- - height=460>
REZULTAT ROZMOWY :       Rozłącz się ponownie       minimalizuj
+ + height=460>
REZULTAT ROZMOWY :       Rozłącz się ponownie       minimalizuj
Koniec rozmowy, wybierz rezultat
ZATRZYMAJ DZWONIENIE
@@ -8286,27 +10789,27 @@ Twój Status:
Calls Dialing: - height=460>
WYBÓR SZYFR PRZERWY :
+ + height=460>
WYBÓR SZYFR PRZERWY :
Przerwa Code Selection

 
- - height=460>
Wybierz grupę Alias :
+ + height=460>
Wybierz grupę Alias :
Wybór grupy Alias

 
- + - - height=460>
Wybierz datę oddzwonienia :
+ + height=460>
Wybierz datę oddzwonienia :
Wybierz datę poniżej   @@ -8346,28 +10849,28 @@ Twój Status:
Calls Dialing: TYLKO MOJE INNE TERMINY
";} ?> Notatki:

ZATWIERDŹ

- +

 
- - height=460>
SELEKCJA GRUPY ZAWNĘTRZNYCH FINALIZUJĄCYCH
+ + height=460>
SELEKCJA GRUPY ZAWNĘTRZNYCH FINALIZUJĄCYCH
Selekcja grupy zawnętrznych finalizujących
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> KOMBINOWANE POŁĄCZENIA(wychodzące aktywowane)
- RESET | @@ -8376,37 +10879,53 @@ Twój Status:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + ZATWIERDŹ +



  +
+
+ + Kanał Kanał - TYLKO MOJE INNE TERMINY
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " KOMBINOWANE POŁĄCZENIA
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -KLAWISZE SKRÓTU NIEAKTYWNE - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +KLAWISZE SKRÓTU NIEAKTYWNE + - ->
wersja klienta VICIDIAL:     KOMPILACJA:               Serwer:              
-Pokaż informacje o kanałach konferencyjnych

 
+ +>
Agent web-client version:     KOMPILACJA:               Serwer:              
+ +Pokaż informacje o kanałach konferencyjnych +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_pl/voicemail_check.php b/LANG_www/agc_pl/voicemail_check.php index 60408a8e..db993759 100644 --- a/LANG_www/agc_pl/voicemail_check.php +++ b/LANG_www/agc_pl/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pt/active_list_refresh.php b/LANG_www/agc_pt/active_list_refresh.php index 0354379d..7f714668 100644 --- a/LANG_www/agc_pt/active_list_refresh.php +++ b/LANG_www/agc_pt/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_pt/astguiclient.php b/LANG_www/agc_pt/astguiclient.php index aa9bb785..6c4ce683 100644 --- a/LANG_www/agc_pt/astguiclient.php +++ b/LANG_www/agc_pt/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Você tem registrado agora para fora. Obrigado\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo " @@ -2802,12 +2804,12 @@ echo "\n"; - +
STATUS:
@@ -8434,7 +10953,7 @@ else WYBIERANIE ALT NUM
-Rozpocznij nagrywanie
+Rozpocznij nagrywanie

Web Formularz
+ 0) + {echo "\"Web
\n";} +?>
-Zawieś rozmowę
-Transfer - Konferencja
+Zawieś rozmowę
+Transfer - Konferencja
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Odłącz kilenta

-
Wyślij tonowo

+
Wyślij tonowo

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ NUMER NAGRANIA:
Telefon: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Komentarz: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "web client astGUIclient\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Gerentesends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Gerentesends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-LOGOUT
\n"; ?> +LOGOUT
\n"; ?>
Painel Principal
CHAMADAS INBOUND:
VERSÃO astGUIclient do correia-cliente: CONFIGURAÇÃO:
VERSÃO astGUIclient do correia-cliente: CONFIGURAÇÃO:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pt/conf_exten_check.php b/LANG_www/agc_pt/conf_exten_check.php index 3f5e3111..fefc5e3f 100644 --- a/LANG_www/agc_pt/conf_exten_check.php +++ b/LANG_www/agc_pt/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is em is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_LOGOUT';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pt/dbconnect.php b/LANG_www/agc_pt/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_pt/dbconnect.php +++ b/LANG_www/agc_pt/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_pt/inbound_popup.php b/LANG_www/agc_pt/inbound_popup.php index 73b8949c..0aa52190 100644 --- a/LANG_www/agc_pt/inbound_popup.php +++ b/LANG_www/agc_pt/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -CHAMADA INBOUND VIVA"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid é inválido\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pt/live_exten_check.php b/LANG_www/agc_pt/live_exten_check.php index 78898d3e..0552b782 100644 --- a/LANG_www/agc_pt/live_exten_check.php +++ b/LANG_www/agc_pt/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pt/manager_send.php b/LANG_www/agc_pt/manager_send.php index 197d34a7..26aacd94 100644 --- a/LANG_www/agc_pt/manager_send.php +++ b/LANG_www/agc_pt/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "O Gerente Emite: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "AJUDA";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "O Gerente Emite: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AJUDA";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten é inválido or queryCID $queryCID é inválido, Originate comando não introduzido\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando emitido para Exten $exten Canaleta $channel em $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando emitido para Exten $exten Canaleta $channel em $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context deve ser ajustado\n"; echo "ext_priority $ext_priority deve ser ajustado\n"; echo "\nOriginateName Action não emitido\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context deve ser ajustado\n"; echo "ext_priority $ext_priority deve ser ajustado\n"; echo "\nOriginateNameVmail Action não emitido\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten é inválido or queryCID $queryCID é inválido, Originate comando não introduzido\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten é inválido or queryCID $queryCID é inválido, Originate comando não introduzido\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate comando emitido para Exten $exten Canaleta $channel em $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Você não tem permissão para discar para sessões de outro agente $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando emitido para Exten $exten Canaleta $channel em $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten é inválido or ext_context $ext_context or queryCID $queryCID é inválido, Hangup comando não introduzido\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup comando emitido para Canaleta $channel em $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid deve ser ajustado\n"; echo "lead_id $lead_id deve ser ajustado\n"; echo "\nRedirectVD Action não emitido\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority deve ser ajustado\n"; echo "parkedby $parkedby deve ser ajustado\n"; echo "\nRedirectToPark Action não emitido\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context deve ser ajustado\n"; echo "ext_priority $ext_priority deve ser ajustado\n"; echo "\nRedirectFromPark Action não emitido\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context deve ser ajustado\n"; echo "ext_priority $ext_priority deve ser ajustado\n"; echo "\nRedirectName Action não emitido\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context deve ser ajustado\n"; echo "ext_priority $ext_priority deve ser ajustado\n"; echo "\nRedirectNameVmail Action não emitido\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Uma destas variáveis é inválido:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canaleta $channel não está vivo em $call_server_ip, Redirect comando não introduzido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect comando não introduzido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX comando emitido para Canaleta $channel em $call_server_ip and \nHungup $extrachannel em $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel em $call_server_ip, Hungup $extrachannel em $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel em $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Uma destas variáveis é inválido:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference em $server_ip, Redirect comando não introduzido\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não pode encontrar a conferência vazia em $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference em $server_ip, Redirect comando não introduzido\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não pode encontrar a conferência vazia em $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Canaleta $channel não está vivo em $call_server_ip, Redirect comando não introduzido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando emitido para Canaleta $channel and \nExtraCanaleta $extrachannel\n to $exten em $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten em $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra comando emitido para Canaleta $channel em $call_server_ip and \nExtraCanaleta $extrachannel\n to $exten em $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Uma destas variáveis é inválido:\n"; - echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; - echo "ExtraCanaleta $extrachannel deve ser mais grande de 2 caráteres\n"; - echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; - echo "exten $exten deve ser ajustado\n"; - echo "ext_context $ext_context deve ser ajustado\n"; - echo "ext_priority $ext_priority deve ser ajustado\n"; - echo "\nRedirect Action não emitido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canaleta $channel não está vivo em $call_server_ip, Redirect comando não introduzido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect comando não introduzido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX comando emitido para Canaleta $channel em $call_server_ip and \nHungup $extrachannel em $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel em $call_server_ip, Hungup $extrachannel em $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel em $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Uma destas variáveis é inválido:\n"; - echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; - echo "ExtraCanaleta $extrachannel deve ser mais grande de 2 caráteres\n"; - echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; - echo "exten $exten deve ser ajustado\n"; - echo "ext_context $ext_context deve ser ajustado\n"; - echo "ext_priority $ext_priority deve ser ajustado\n"; - echo "\nRedirect Action não emitido\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Não pode encontrar a conferência vazia em $server_ip, Redirect comando não introduzido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não pode encontrar a conferência vazia em $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Canaleta $channel não está vivo em $call_server_ip, Redirect comando não introduzido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando emitido para Canaleta $channel and \nExtraCanaleta $extrachannel\n to $exten em $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten em $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra comando emitido para Canaleta $channel em $call_server_ip and \nExtraCanaleta $extrachannel\n to $exten em $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Uma destas variáveis é inválido:\n"; echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context deve ser ajustado\n"; echo "ext_priority $ext_priority deve ser ajustado\n"; echo "\nRedirect Action não emitido\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect comando emitido para Canaleta $channel em $server_ip\n"; + echo "Redirect comando emitido para Canaleta $channel em $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canaleta $channel é inválido or queryCID $queryCID é inválido or filename: $filename é inválido, $ACTION comando não introduzido\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Canaleta $channel não está vivo em $server_ip, $ACTION comando não introduzido\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando emitido para Canaleta $channel em $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION comando emitido para Canaleta $channel em $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Canaleta $channel é inválido or exten $exten é inválido or filename: $filename é inválido, $ACTION comando não introduzido\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going em in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going em in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION comando emitido para Canaleta $channel em $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n A GRAVAÇÃO DURARÁ ATÉ 60 MINUTOS\n"; } - echo "$ACTION comando emitido para Canaleta $channel em $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n A GRAVAÇÃO DURARÁ ATÉ 60 MINUTOS\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Conferência $exten, Stage $stage é inválido or queryCID $queryCID é inválido, Originate comando não introduzido\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume comando emitido para Conferência $exten, Stage $stage Canaleta $channel em $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando emitido para Conferência $exten, Stage $stage Canaleta $channel em $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_pt/park_calls_display.php b/LANG_www/agc_pt/park_calls_display.php index f3c19d75..99c34930 100644 --- a/LANG_www/agc_pt/park_calls_display.php +++ b/LANG_www/agc_pt/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pt/timeclock.php b/LANG_www/agc_pt/timeclock.php index f3661a55..919ff2f4 100644 --- a/LANG_www/agc_pt/timeclock.php +++ b/LANG_www/agc_pt/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "O usuário ea senha que você digitou não são ativos no sistema
Por favor, tente novamente:"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'COMEÇO') ) { - ### You cannot log in or out within 30 segundos of your last login/logout + ### You cannot log in or out within 30segundos of your last login/logout $VDdisplayMESSAGE = "Você não pode efetuar login ou para fora dentro de 30 segundos do seu último login ou logout"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "ANTERIOR a tela Bem-vindo";} echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_pt/vdc_db_query.php b/LANG_www/agc_pt/vdc_db_query.php index 4f44bc3e..9cc1138e 100644 --- a/LANG_www/agc_pt/vdc_db_query.php +++ b/LANG_www/agc_pt/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Inválido session_name: |$session_name|$server_ip|\n"; + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Certificado Da Pergunta Da Base de dados"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Certificado Da Pergunta Da Base de dados"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Início de uma sessão:
\n"; - $VDdisplayMESSAGE.= "Manager Senha:
\n"; + $VDdisplayMESSAGE.= "GerenteInício de uma sessão:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Escolha Do Grupo $closer_choice é inválido\n"; - exit; - } + { + $channel_live=0; + echo "Escolha Do Grupo $closer_choice é inválido\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Escolha Do Grupo $closer_choice foi registado ao usuário $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories é inválido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories foi registado ao usuário $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "FUNIL VAZIO\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context é inválido\n"; - exit; - } + { + $channel_live=0; + echo "FUNIL VAZIO\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context é inválido\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "FUNIL VAZIO\n"; + { + echo "FUNIL VAZIO\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context é inválido\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " CHAMADA NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context é inválido\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Introduzido: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "REGISTRO NÃO ENTRADO\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Introduzido: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "REGISTRO NÃO ENTRADO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campanha $campaign é inválido\n"; - echo "lead_id $lead_id é inválido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign é inválido\n"; + echo "lead_id $lead_id é inválido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Campanha $campaign é inválido\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign é inválido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send em to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send em to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If CHAMADABK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If CHAMADABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user em $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user em $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten é inválido\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten é inválido\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a LOGOUT record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation em the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a LOGOUT record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation em the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id é inválido\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id é inválido\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### CHAMADABACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### COMEÇO Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Usuário $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Último Attempt, Date of Último Non-Contact, Date of Último Contact, Date of Último Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' foi mudado a ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id é inválido\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id é inválido\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage é inválido\n"; - exit; - } + { + echo "stage $stage é inválido\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' está agora no status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list é inválido\n"; - exit; - } + { + echo "favorites list $favorites_list é inválido\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status é inválido\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status é inválido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
FAVORITOS       edite
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data em calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info em the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           CHAMADA GROUP     TYPE  
TAKE CHAMADA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pausa Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_pt/vdc_script_display.php b/LANG_www/agc_pt/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_pt/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_pt/vicidial.php b/LANG_www/agc_pt/vicidial.php index b7be80da..c2616940 100644 --- a/LANG_www/agc_pt/vicidial.php +++ b/LANG_www/agc_pt/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Você tem registrado agora para fora. Obrigado\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls em hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of segundos for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofsegundos for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name em login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST em server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a SELETOR link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups em campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call segundos counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='GERENTE Override OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='GERENTE Override OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + Web client de VICIDIAL: Re-Início de uma sessão\n"; +echo "Agent web client: Re-Início de uma sessão\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Português
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "Web client de VICIDIAL: Início de uma sessão Da Campanha\n"; + echo "Agent web client: Início de uma sessão Da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Re-Início de uma sessão
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Português
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Início de uma sessão Do Usuário

"; @@ -665,15 +740,17 @@ echo "
Web client de VICIDIAL: Início de uma sessão\n"; + echo "Agent web client: Início de uma sessão\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Português
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Início de uma sessão Web client de VICIDIAL: Início de uma sessão Do Telefone\n"; +echo "Agent web client: Início de uma sessão Do Telefone\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Português
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Início de uma sessão:
\n"; - $VDdisplayMESSAGE.= "Manager Senha:
\n"; + $VDdisplayMESSAGE.= "GerenteInício de uma sessão:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "Web client de VICIDIAL: VICIDIAL Início de uma sessão Da Campanha\n"; + echo "Agent web client: Início de uma sessão Da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Início de uma sessão Do Telefone
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Início de uma sessão: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_segundos = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESTAURAÇÃO_1|PRESTAURAÇÃO_2|PRESTAURAÇÃO_3|PRESTAURAÇÃO_4|PRESTAURAÇÃO_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESTAURAÇÃO_1|PRESTAURAÇÃO_2|PRESTAURAÇÃO_3|PRESTAURAÇÃO_4|PRESTAURAÇÃO_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESTAURAÇÃO_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESTAURAÇÃO_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESTAURAÇÃO_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESTAURAÇÃO_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESTAURAÇÃO_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "Web client de VICIDIAL: Início de uma sessão Da Campanha\n"; + echo "Agent web client: Início de uma sessão Da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Português
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "Web client de VICIDIAL: Início de uma sessão Do Telefone Error\n"; + echo "Agent web client: Início de uma sessão Do Telefone Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Português
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "Web client de VICIDIAL\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TelefoneSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed em this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login em phone: $SIP_user à campanha: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login em phone: $SIP_user à campanha: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NOVO record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today em that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today em that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "Web client de VICIDIAL: VICIDIAL Início de uma sessão Da Campanha\n"; + echo "Agent web client: Início de uma sessão Da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Pesaroso, não há nenhuma ligação no funil para esta campanha\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Início de uma sessão: \n
"; @@ -1854,9 +2079,9 @@ echo "
Web client de VICIDIAL: VICIDIAL Início de uma sessão Da Campanha\n"; + echo "Agent web client: Início de uma sessão Da Campanha\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Início de uma sessão: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsegundos counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -LOGOUT\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +LOGOUT\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     sessão ID:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Vive A Chamada
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + SELETOR MANUAL       SELETOR RÁPIDO
- + X RECHAMADAS ATIVAS
- +
- segundos: +segundos:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - SELETOR\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
RECHAMADAS PARA O AGENTE :
Estale sobre uma rechamada abaixo para chamar agora a parte traseira do cliente. Se você estalar sobre um registro abaixo para o chamar, estará removido da lista. + + height=460>
RECHAMADAS PARA O AGENTE :
Estale sobre uma rechamada abaixo para chamar agora a parte traseira do cliente. Se você estalar sobre um registro abaixo para o chamar, estará removido da lista.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
LIGAÇÃO MANUAL NOVA DO SELETOR PARA :

Incorpore a informação abaixo para a ligação que nova você deseja se chamar. + + height=460>
LIGAÇÃO MANUAL NOVA DO SELETOR PARA :

Incorpore a informação abaixo para a ligação que nova você deseja se chamar.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Seu Status:
Calls Dialing:
- -
Código Do Seletor:   (Este é geralmente um 1 nos EUA e no Canadá)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Seu Status:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Transferência - Conferência            
+ Transferência - Conferência            
+ + + + + + - LOCAL MAIS PRÓXIMO - Linha De Xfer Do Hangup - Hangup Ambas as Linhas + + + + + -
- - Número a chamar-se   + + + + + -
+ + + + +
+ + LOCAL MAIS PRÓXIMO     + + Linha De Xfer Do Hangup +
+ seconds +   + channel + + CONSULTIVO   + + Hangup Ambas as Linhas +
+ Número a chamar-se +   +   - ULTRAPASSAGEM DO SELETOR   - CHAMADA DA LICENÇA 3-WAY - Transferência Da Cortina Do Seletor - D1 - D2 + + ULTRAPASSAGEM DO SELETOR + + CHAMADA DA LICENÇA 3-WAY +
+ Transferência Da Cortina Do Seletor +   + Seletor Com Cliente +   + Seletor Do Cliente Do Parque +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- segundos   - channel - Seletor Com Cliente - Seletor Do Cliente Do Parque - Blind Transfer VMail Message
height=70> + +
 Solicita, em fila:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Solicita Hide Na fila\n";} + else + {echo "Solicita Mostra Em Fila\n";} + } +?> + + + +
  +Outros agentes Status:  
 
+ +
+Agentes de transferência disponíveis:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Ligação Dispositioned Como:

-
- - height=70> + +
height=70>
Chaves Quentes Da Disposição: Quando ativo, pressione simplesmente a chave de teclado para a:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Seu Status:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Informação Precedente Da Rechamada: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Seu Status:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Extensão Alt Telefone Informação: minimize
maximize
Alt Telefone Info
- - height=500>
Noone está em sua sessão:
+ + height=500>
Noone está em sua sessão:
Vá Para trás

Agente Da Chamada Outra vez
- - height=500>
O cliente pendurou acima:
+ + height=500>
O cliente pendurou acima:
Vá Para trás

Revestimento e chamada da disposição -
- - height=550>
Chamada Wrapup: segundos restantes no wrapup

- + + height=550>
Chamada Wrapup: segundos restantes no wrapup

+

Revestimento Wrapup e movimento sobre -
- - height=500>
Sua sessão foi incapacitada
LOGOUT

Vá Para trás + +
+


+ Fechar Mensagem +
+
+ + + height=500>
Sua sessão foi incapacitada
LOGOUT

Vá Para trás
- - height=500>
Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema


Vá Para trás + + height=500>
Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema


Vá Para trás
- - height=500>

LOGOUT
+ + height=500>

LOGOUT
- +
- +
 
- - height=47>
Todas as mudanças feitas ao cliente que a informação abaixo neste tempo não será comitted, você devem mudar a informação do cliente antes de você hangup a chamada.
+ + height=47>
Todas as mudanças feitas ao cliente que a informação abaixo neste tempo não será comitted, você devem mudar a informação do cliente antes de você hangup a chamada.
- - height=460>
CHAMADA DA DISPOSIÇÃO :       Hangup Outra vez       minimize
+ + height=460>
CHAMADA DA DISPOSIÇÃO :       Hangup Outra vez       minimize
Extremidade-$$$-CHAME A Seleção Da Disposição
PARE DE CHAMAR-SE
@@ -8286,27 +10789,27 @@ Seu Status:
Calls Dialing: - height=460>
SELECIONE Um CÓDIGO Da PAUSA :
+ + height=460>
SELECIONE Um CÓDIGO Da PAUSA :
Pausa Code Selection

 
- - height=460>
Selecionar um grupo ALIÁS :
+ + height=460>
Selecionar um grupo ALIÁS :
Grupo Alias Selecção

 
- + - - height=460>
Selecione uma data da rechamada :
+ + height=460>
Selecione uma data da rechamada :
Selecione uma data abaixo   @@ -8346,28 +10849,28 @@ Seu Status:
Calls Dialing: MINHA RECHAMADA SOMENTE
";} ?> Comentários dos CB:

SUBMETA

- +

 
- - height=460>
SELEÇÃO DE GRUPO INBOUND MAIS PRÓXIMA
+ + height=460> @@ -2794,7 +2796,7 @@ echo "\n"; - + @@ -2802,12 +2804,12 @@ echo "\n"; - +
SELEÇÃO DE GRUPO INBOUND MAIS PRÓXIMA
Seleção De Grupo Inbound Mais próxima
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> CHAMADA MISTURADA(outbound ativado)
- RESTAURAÇÃO | @@ -8376,37 +10879,53 @@ Seu Status:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESTAURAÇÃO | + SUBMETA +



  +
+
+ + Canaleta Canaleta - MINHA RECHAMADA SOMENTE
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " CHAMADA MISTURADA
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -CHAVES QUENTES INATIVAS - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +CHAVES QUENTES INATIVAS + - ->"; + in_log_HTML = in_log_HTML + ""; } in_log_HTML = in_log_HTML + "
Versão do correia-cliente de VICIDIAL:     CONFIGURAÇÃO:               Usuário:              
-Mostre a informação da canaleta da chamada de conferência

 
+ +>
Agent web-client version:     CONFIGURAÇÃO:               Usuário:              
+ +Mostre a informação da canaleta da chamada de conferência +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_pt/voicemail_check.php b/LANG_www/agc_pt/voicemail_check.php index 9a60dae6..a874d40c 100644 --- a/LANG_www/agc_pt/voicemail_check.php +++ b/LANG_www/agc_pt/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_ru/active_list_refresh.php b/LANG_www/agc_ru/active_list_refresh.php index 252bd19f..ca7c00aa 100644 --- a/LANG_www/agc_ru/active_list_refresh.php +++ b/LANG_www/agc_ru/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_ru/astguiclient.php b/LANG_www/agc_ru/astguiclient.php index 9212cffa..c38ff648 100644 --- a/LANG_www/agc_ru/astguiclient.php +++ b/LANG_www/agc_ru/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Вы вышли из системы. Спасибо\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo ""; + out_log_HTML = out_log_HTML + ""; } out_log_HTML = out_log_HTML + "
STATUS:
@@ -8434,7 +10953,7 @@ else ALT DO TELEFONE
-Comece Gravar
+Comece Gravar

Formulário Da Correia fotorreceptora
+ 0) + {echo "\"Formulário
\n";} +?>
-Chamada Do Parque
-Transferência - Conferência
+Chamada Do Parque
+Transferência - Conferência
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Cliente Do Hangup

-
Emita DTMF

+
Emita DTMF

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ ID REGISTRO:
Telefone: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Comentários: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n\n"; exit; } - else +else { if($auth>0) @@ -185,7 +187,7 @@ echo " 0) { - fwrite ($fp, "VICIНАБОР НОМЕРА|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); fclose($fp); } } @@ -193,7 +195,7 @@ echo " 0) { - fwrite ($fp, "VICIНАБОР НОМЕРА|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); fclose($fp); } } @@ -275,7 +277,7 @@ echo "web-клиент astGUIclient\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Менеджерsends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Менеджерsends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -1545,7 +1547,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var call_out_datetime = call_array[1]; var call_out_number = call_array[2]; var call_out_length = call_array[3]; - out_log_HTML = out_log_HTML + "
" + loop_ct + "" + call_out_datetime + "" + call_out_number + "" + call_out_length + " НАБОР НОМЕРА
" + loop_ct + "" + call_out_datetime + "" + call_out_number + "" + call_out_length + " DIAL
"; @@ -1575,7 +1577,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var call_in_idnum = call_array[3]; var call_in_idname = call_array[4]; var call_in_length = call_array[5]; - in_log_HTML = in_log_HTML + "
" + loop_ct + "" + call_in_datetime + "" + call_in_number + "" + call_in_idnum + "" + call_in_idname + "" + call_in_length + " НАБОР НОМЕРА
" + loop_ct + "" + call_in_datetime + "" + call_in_number + "" + call_in_idnum + "" + call_in_idname + "" + call_in_length + " DIAL
"; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-ВЫХОД
\n"; ?> +ВЫХОД
\n"; ?>
Главная Панель
VOICEMAIL     НОВЫЙ:     СТАРЫЙ:             РУЧНОЙ НАБОР НОМЕРА       НАБОР НОМЕРА
VOICEMAIL     НОВЫЙ:     СТАРЫЙ:             РУЧНОЙ НАБОР НОМЕРА       DIAL
ПАРКОВАТЬ ВЫЗОВ: 0                ЛОКАЛЬНЫЕ РАСШИРЕНИЯ НАБОРА НОМЕРА
ВХОДЯЩИЕ ВЫЗОВЫ:
Версия web-клиента astGUIclient : СБОРКА:
Версия web-клиента astGUIclient : СБОРКА:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_ru/conf_exten_check.php b/LANG_www/agc_ru/conf_exten_check.php index 468f0477..cf896812 100644 --- a/LANG_www/agc_ru/conf_exten_check.php +++ b/LANG_www/agc_ru/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is на is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_ВЫХОД';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Статус: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Статус: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_ru/dbconnect.php b/LANG_www/agc_ru/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_ru/dbconnect.php +++ b/LANG_www/agc_ru/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_ru/inbound_popup.php b/LANG_www/agc_ru/inbound_popup.php index 2c08e788..032c32e1 100644 --- a/LANG_www/agc_ru/inbound_popup.php +++ b/LANG_www/agc_ru/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -ЖИВОЙ ВХОДЯЩИЙ ВЫЗОВ"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid это неправильно\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_ru/live_exten_check.php b/LANG_www/agc_ru/live_exten_check.php index 87f5e96b..6226e934 100644 --- a/LANG_www/agc_ru/live_exten_check.php +++ b/LANG_www/agc_ru/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_ru/manager_send.php b/LANG_www/agc_ru/manager_send.php index c6d0fff1..9b4deb81 100644 --- a/LANG_www/agc_ru/manager_send.php +++ b/LANG_www/agc_ru/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Отослать Менеджеру: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "ПОМОЩЬ";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Отослать Менеджеру: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "ПОМОЩЬ";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten это неправильно or queryCID $queryCID это неправильно, Originate команда не введена\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate посылать команду для Exten $exten Канал $channel на $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate посылать команду для Exten $exten Канал $channel на $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context должен быть установлен\n"; echo "ext_priority $ext_priority должен быть установлен\n"; echo "\nOriginateName Action не послано\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context должен быть установлен\n"; echo "ext_priority $ext_priority должен быть установлен\n"; echo "\nOriginateNameVmail Action не послано\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten это неправильно or queryCID $queryCID это неправильно, Originate команда не введена\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten это неправильно or queryCID $queryCID это неправильно, Originate команда не введена\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate посылать команду для Exten $exten Канал $channel на $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Вы не можете набрать в других сессиях агент $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate посылать команду для Exten $exten Канал $channel на $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten это неправильно or ext_context $ext_context or queryCID $queryCID это неправильно, Hangup команда не введена\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup посылать команду для Канал $channel на $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid должен быть установлен\n"; echo "lead_id $lead_id должен быть установлен\n"; echo "\nRedirectVD Action не послано\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority должен быть установлен\n"; echo "parkedby $parkedby должен быть установлен\n"; echo "\nRedirectToPark Action не послано\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context должен быть установлен\n"; echo "ext_priority $ext_priority должен быть установлен\n"; echo "\nRedirectFromPark Action не послано\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context должен быть установлен\n"; echo "ext_priority $ext_priority должен быть установлен\n"; echo "\nRedirectName Action не послано\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context должен быть установлен\n"; echo "ext_priority $ext_priority должен быть установлен\n"; echo "\nRedirectNameVmail Action не послано\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Одна из этих переменных это неправильно:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Канал $channel это не активно на $call_server_ip, Redirect команда не введена\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect команда не введена\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX посылать команду для Канал $channel на $call_server_ip and \nHungup $extrachannel на $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel на $call_server_ip, Hungup $extrachannel на $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel на $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Одна из этих переменных это неправильно:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference на $server_ip, Redirect команда не введена\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Не могу найти свободную конференцию на $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference на $server_ip, Redirect команда не введена\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Не могу найти свободную конференцию на $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Канал $channel это не активно на $call_server_ip, Redirect команда не введена\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra посылать команду для Канал $channel and \nExtraКанал $extrachannel\n to $exten на $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten на $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra посылать команду для Канал $channel на $call_server_ip and \nExtraКанал $extrachannel\n to $exten на $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Одна из этих переменных это неправильно:\n"; - echo "Канал $channel должно быть больше чем 2 символа\n"; - echo "ExtraКанал $extrachannel должно быть больше чем 2 символа\n"; - echo "queryCID $queryCID должно быть больше чем 14 символов\n"; - echo "exten $exten должен быть установлен\n"; - echo "ext_context $ext_context должен быть установлен\n"; - echo "ext_priority $ext_priority должен быть установлен\n"; - echo "\nRedirect Action не послано\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Канал $channel это не активно на $call_server_ip, Redirect команда не введена\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect команда не введена\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX посылать команду для Канал $channel на $call_server_ip and \nHungup $extrachannel на $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel на $call_server_ip, Hungup $extrachannel на $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel на $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Одна из этих переменных это неправильно:\n"; - echo "Канал $channel должно быть больше чем 2 символа\n"; - echo "ExtraКанал $extrachannel должно быть больше чем 2 символа\n"; - echo "queryCID $queryCID должно быть больше чем 14 символов\n"; - echo "exten $exten должен быть установлен\n"; - echo "ext_context $ext_context должен быть установлен\n"; - echo "ext_priority $ext_priority должен быть установлен\n"; - echo "\nRedirect Action не послано\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Не могу найти свободную конференцию на $server_ip, Redirect команда не введена\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Не могу найти свободную конференцию на $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Канал $channel это не активно на $call_server_ip, Redirect команда не введена\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra посылать команду для Канал $channel and \nExtraКанал $extrachannel\n to $exten на $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten на $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra посылать команду для Канал $channel на $call_server_ip and \nExtraКанал $extrachannel\n to $exten на $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ - ### for manual dial VICIНАБОР НОМЕРА calls send the second attempt to transfer the call - if ($stage=="2NDXfeR") { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Одна из этих переменных это неправильно:\n"; echo "Канал $channel должно быть больше чем 2 символа\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context должен быть установлен\n"; echo "ext_priority $ext_priority должен быть установлен\n"; echo "\nRedirect Action не послано\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect посылать команду для Канал $channel на $server_ip\n"; + echo "Redirect посылать команду для Канал $channel на $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Канал $channel это неправильно or queryCID $queryCID это неправильно or filename: $filename это неправильно, $ACTION команда не введена\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Канал $channel это не активно на $server_ip, $ACTION команда не введена\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION посылать команду для Канал $channel на $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION посылать команду для Канал $channel на $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Канал $channel это неправильно or exten $exten это неправильно or filename: $filename это неправильно, $ACTION команда не введена\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going на in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going на in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION посылать команду для Канал $channel на $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n ЗАПИСЬ МОЖЕТ ПРОДОЛЖАТЬСЯ ДО 60 МИН.\n"; } - echo "$ACTION посылать команду для Канал $channel на $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n ЗАПИСЬ МОЖЕТ ПРОДОЛЖАТЬСЯ ДО 60 МИН.\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Конференция $exten, Stage $stage это неправильно or queryCID $queryCID это неправильно, Originate команда не введена\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume посылать команду для Конференция $exten, Stage $stage Канал $channel на $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume посылать команду для Конференция $exten, Stage $stage Канал $channel на $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_ru/park_calls_display.php b/LANG_www/agc_ru/park_calls_display.php index 0885af0e..9b99ff0b 100644 --- a/LANG_www/agc_ru/park_calls_display.php +++ b/LANG_www/agc_ru/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_ru/timeclock.php b/LANG_www/agc_ru/timeclock.php index 6889cded..b2aab8e9 100644 --- a/LANG_www/agc_ru/timeclock.php +++ b/LANG_www/agc_ru/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "Пользователя и пароль, которые вы вступили, не действующих в системе
Пожалуйста, повторите попытку:"; echo"\n"; - echo"VICIНАБОР НОМЕРА:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'СТАРТ') ) { - ### You cannot log in or out within 30 секунды of your last login/logout + ### You cannot log in or out within 30секунды of your last login/logout $VDdisplayMESSAGE = "Вы не можете войти или в течение 30 секунд после вашего последнего входа в систему или Logout"; echo"\n"; - echo"VICIНАБОР НОМЕРА:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "BACK приветствовать экрана";} echo"\n"; - echo"VICIНАБОР НОМЕРА:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIНАБОР НОМЕРА:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIНАБОР НОМЕРА:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_ru/vdc_db_query.php b/LANG_www/agc_ru/vdc_db_query.php index adb94bc7..73ff7aa9 100644 --- a/LANG_www/agc_ru/vdc_db_query.php +++ b/LANG_www/agc_ru/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Скрипт Запроса Базы Данных"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Скрипт Запроса Базы Данных"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Логин:
\n"; - $VDdisplayMESSAGE.= "Manager Пароль:
\n"; + $VDdisplayMESSAGE.= "МенеджерЛогин:
\n"; + $VDdisplayMESSAGE.= "МенеджерПароль:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Выбор Группы $closer_choice это неправильно\n"; - exit; - } + { + $channel_live=0; + echo "Выбор Группы $closer_choice это неправильно\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Выбор Группы $closer_choice был зарегистрован пользователем $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories это неправильно\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories был зарегистрован пользователем $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "ПУСТОЙ КОНТЕЙНЕР\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context это неправильно\n"; - exit; - } + { + $channel_live=0; + echo "ПУСТОЙ КОНТЕЙНЕР\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context это неправильно\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST ВЫЗОВ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST ВЫЗОВ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # ВЫЗОВOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "ПУСТОЙ КОНТЕЙНЕР\n"; + { + echo "ПУСТОЙ КОНТЕЙНЕР\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context это неправильно\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " ВЫЗОВ NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context это неправильно\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # ВЫЗОВOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Введенный: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "LOG НЕ ВВЕДЕН\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Введенный: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "LOG НЕ ВВЕДЕН\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Кампания $campaign это неправильно\n"; - echo "lead_id $lead_id это неправильно\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Кампания $campaign это неправильно\n"; + echo "lead_id $lead_id это неправильно\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Кампания $campaign это неправильно\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Кампания $campaign это неправильно\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send на to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send на to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If ВЫЗОВBK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If ВЫЗОВBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user на $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user на $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten это неправильно\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten это неправильно\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a ВЫХОД record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ВЫХОД','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation на the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a ВЫХОД record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ВЫХОД','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation на the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id это неправильно\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id это неправильно\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### ВЫЗОВBACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### СТАРТ Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Пользователь $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Фамилия Attempt, Date of Фамилия Non-Contact, Date of Фамилия Contact, Date of Фамилия Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3478,7 +5446,7 @@ if ($ACTION == 'updateDISPO') if (strlen($stage) < 2) {$stage = $campaign;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLСТАТУС',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' был изменен на ' . $dispo_choice . " Статус\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id это неправильно\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id это неправильно\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage это неправильно\n"; - exit; - } + { + echo "stage $stage это неправильно\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('ПАУЗПА',$stage)) {$QMstatus='ПАУЗПАALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('ПАУЗПА',$stage)) {$QMstatus='ПАУЗПАALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' новый статус ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list это неправильно\n"; - exit; - } + { + echo "favorites list $favorites_list это неправильно\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ -if ($ACTION == 'ПаузаCodeSubmit') -{ +if ($ACTION == 'PauseCodeSubmit') + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status это неправильно\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status это неправильно\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='ПАУЗПАREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Пауза Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
ИЗБРАННОЕ       редактировать
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -ПАУЗПАD  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Звонки в Очередь Открыть инвалидов для этой кампании\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data на calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='ПАУЗПАREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info на the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           ВЫЗОВ GROUP     TYPE  
TAKE ВЫЗОВ     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Звонки в Очередь Открыть инвалидов для этой кампании\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Пауза Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_ru/vdc_script_display.php b/LANG_www/agc_ru/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_ru/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_ru/vicidial.php b/LANG_www/agc_ru/vicidial.php index 7ec051e3..8bbe3226 100644 --- a/LANG_www/agc_ru/vicidial.php +++ b/LANG_www/agc_ru/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Вы вышли из системы. Спасибо\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls на hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of секунды for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofсекунды for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name на login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST на server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a НАБОР НОМЕРА link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups на campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call секунды counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='МЕНЕДЖЕР Переопределить OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='МЕНЕДЖЕР Переопределить OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + web-клиент VICIНАБОР НОМЕРА: Re-Логин\n"; +echo "Agent web client: Re-Логин\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Russian
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "web-клиент VICIНАБОР НОМЕРА: Логин Кампании\n"; + echo "Agent web client: Логин Кампании\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Re-Логин
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Russian
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Логин Пользователя

"; @@ -665,15 +740,17 @@ echo "
web-клиент VICIНАБОР НОМЕРА: Логин\n"; + echo "Agent web client: Логин\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Russian
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Логин web-клиент VICIНАБОР НОМЕРА: Логин Телефона\n"; +echo "Agent web client: Логин Телефона\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Russian
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Логин:
\n"; - $VDdisplayMESSAGE.= "Manager Пароль:
\n"; + $VDdisplayMESSAGE.= "МенеджерЛогин:
\n"; + $VDdisplayMESSAGE.= "МенеджерПароль:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "web-клиент VICIНАБОР НОМЕРА: VICIНАБОР НОМЕРА Логин Кампании\n"; + echo "Agent web client: Логин Кампании\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Логин Телефона
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Логин: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_секунды = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "web-клиент VICIНАБОР НОМЕРА: Логин Кампании\n"; + echo "Agent web client: Логин Кампании\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Russian
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "web-клиент VICIНАБОР НОМЕРА: Логин Телефона Error\n"; + echo "Agent web client: Логин Телефона Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Russian
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "web-клиент VICIНАБОР НОМЕРА\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($ТелефонSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed на this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login на phone: $SIP_user в кампанию: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login на phone: $SIP_user в кампанию: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a НОВЫЙ record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today на that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today на that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='ПАУЗПАALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='ПАУЗПАALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "web-клиент VICIНАБОР НОМЕРА: VICIНАБОР НОМЕРА Логин Кампании\n"; + echo "Agent web client: Логин Кампании\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Жаль, но leads нет в контейнере этой кампании\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Логин: \n
"; @@ -1854,9 +2079,9 @@ echo "
web-клиент VICIНАБОР НОМЕРА: VICIНАБОР НОМЕРА Логин Кампании\n"; + echo "Agent web client: Логин Кампании\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Логин: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='ПАУЗПАREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callсекунды counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -ВЫХОД\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +ВЫХОД\n"; ?>
- height=30> +
height=30> - + - +
VICIНАБОР НОМЕРАMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     ID сессии:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Живой Вызов
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIНАБОР НОМЕРА
+ height=>

Agent Screen
- + РУЧНОЙ НАБОР НОМЕРА       БЫСТРЫЙ НАБОР НОМЕРА
- + X АКТИВНЫЕ ВЫЗОВBACK
- -
+ +
- секунды: +секунды:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - НАБОР НОМЕРА\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
ВЫЗОВBACK ДЛЯ ОПЕРАТОРА :
Чтобы позвонить клиенту сейчас, кликните на callback ниже. Если Вы нажмете на record ниже, чтобы позвонить, то это будет удалено из списка. + + height=460>
ВЫЗОВBACK ДЛЯ ОПЕРАТОРА :
Чтобы позвонить клиенту сейчас, кликните на callback ниже. Если Вы нажмете на record ниже, чтобы позвонить, то это будет удалено из списка.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
НОВЫЙ LEAD РУЧНОЙ НАБОР НОМЕРА ДЛЯ :

Ведите информацию ниже для нового lead который вы хотите вызвать. + + height=460>
НОВЫЙ LEAD РУЧНОЙ НАБОР НОМЕРА ДЛЯ :

Ведите информацию ниже для нового lead который вы хотите вызвать.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Ваш Статус:
Calls Dialing:
- -
Код страны:   (Обычно 7 для России и некоторых стран СНГ)
> -
+ + > + + @@ -8156,32 +10618,68 @@ echo "\n"; - -
- Перевод - Конференция            
+ Перевод - Конференция            
+ + + + + + - ЛОКАЛЬНЫЙ CLOSER - Разъединение Xfer Линии - Разъединить Обе Линии + + + + + -
- - Номер для вызова   + + + + + -
+ + + + +
+ + ЛОКАЛЬНЫЙ CLOSER     + + Разъединение Xfer Линии +
+ seconds +   + channel + + КОНСУЛЬТАТИВНЫЙ   + + Разъединить Обе Линии +
+ Номер для вызова +   +   - НАБЕРИТЕ ОТМЕНУ   - ОСТАВИТЬ 3-WAY ЗАПРОС - Слепой Перевод Набора номера - D1 - D2 + + НАБЕРИТЕ ОТМЕНУ + + ОСТАВИТЬ 3-WAY ЗАПРОС +
+ Слепой Перевод Набора номера +   + Набор номера С Клиентом +   + Парковать Набор номера Клиента +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- секунды   - channel - Набор номера С Клиентом - Парковать Набор номера Клиента - Blind Transfer VMail Message
height=70> + +
 Звонки в очередь:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Скрыть Звонки в очередь\n";} + else + {echo "Показать Звонки в очередь\n";} + } +?> + + + +
  +Другие агенты Статус:  
 
+ +
+Доступные Агенты передачи:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Lead Диспозицию как:

-
- - height=70> + +
height=70>
Горячие Клавиши Диспозиции: Когда активно, просто нажмите клавишу желаемой диспозиции для этого запроса. Тогда запрос будет автоматически разъединен и dispositioned:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ echo "\n";
Предыдущая Информация о Callback: close
- - height=70> + +
height=70> @@ -8214,67 +10712,72 @@ echo "\n";
Расширенная информация Alt Телефон: минимизировать
- +
максимизировать
Alt Телефон Info
- - height=500>
Никого нет в вашей сессии:
+ + height=500>
Никого нет в вашей сессии:
Вернуться

Вызов Оператора Снова
- - height=500>
Клиент разъединен:
+ + height=500>
Клиент разъединен:
Вернуться

Конец и Вызов Диспозиции -
- - height=550>
Call Wrapup: секунд осталось в wrapup

- + + height=550>
Call Wrapup: секунд осталось в wrapup

+

Финиш Wrapup и Переход -
- - height=500>
Ваша сессия отключена
ВЫХОД

Вернуться + +
+


+ Закрыть сообщение +
+
+ + + height=500>
Ваша сессия отключена
ВЫХОД

Вернуться
- - height=500>
Существует проблема синхронизации времени с вашей системой, пожалуйста, сообщите об этом вашему системному администратору


Вернуться + + height=500>
Существует проблема синхронизации времени с вашей системой, пожалуйста, сообщите об этом вашему системному администратору


Вернуться
- - height=500>

ВЫХОД
+ + height=500>

ВЫХОД
- +
- +
 
- - height=47>
Any changes made to the customer information below at this time will not be comitted, You must change customer information before you Hangup the call.
+ + height=47>
Any changes made to the customer information below at this time will not be comitted, You must change customer information before you Hangup the call.
- - height=460>
DISPOSITION ВЫЗОВ :       Разъединить Снова       минимизировать
+ + height=460>
DISPOSITION ВЫЗОВ :       Разъединить Снова       минимизировать
Выбор Диспозиции End-of-call
ПАУЗА ВЫЗОВА
@@ -8286,27 +10789,27 @@ echo "\n";
- - height=460>
ВЫБЕРИТЕ КОД ПАУЗЫ :
- Пауза Code Selection - + + height=460>
ВЫБЕРИТЕ КОД ПАУЗЫ :
+ Пауза Code Selection +

 
- - height=460>
ВЫБОР ГРУППЫ ALIAS :
+ + height=460>
ВЫБОР ГРУППЫ ALIAS :
Группа Alias выбора

 
- + - - height=460>
Выберите дату для CallBack :
+ + height=460>
Выберите дату для CallBack :
Выберите Дату Ниже   @@ -8346,28 +10849,28 @@ echo "\n";  
- ТОЛЬКО МОИ ВЫЗОВBACK
";} ?> CB Комментарии:

SUBMIT

- +

 
- - height=460>
ВЫБОР INBOUND ГРУППЫ CLOSER
+ + height=460>
ВЫБОР INBOUND ГРУППЫ CLOSER
Closer Inbound Group Selection
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> BLENDED ВЫЗОВING(исходящие активированы)
- RESET | @@ -8376,37 +10879,53 @@ echo "\n";
- + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + SUBMIT +



  +
+
+ + Канал Канал - ТОЛЬКО МОИ ВЫЗОВBACK
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " BLENDED ВЫЗОВING
";} ?>
- - height=>
VICIНАБОР НОМЕРА SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -НЕАКТИВНЫЕ ГОРЯЧИЕ КЛАВИШИ - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +НЕАКТИВНЫЕ ГОРЯЧИЕ КЛАВИШИ + - -> @@ -2802,12 +2804,12 @@ echo "\n"; - +
Версия web-клиента VICIНАБОР НОМЕРА:     СБОРКА:               Сервер:              
-Показать информацию о канале конференц-связи

 
+ +>
Agent web-client version:     СБОРКА:               Сервер:              
+ +Показать информацию о канале конференц-связи +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,16 +10934,16 @@ else
- +
- + - id="MainTable"> +
id="MainTable"> - - @@ -8562,7 +11101,7 @@ else - +
СТАТУС:
@@ -8434,7 +10953,7 @@ else НАБРАТЬ АЛЬТ. НОМЕР
-Начать Запись
+Начать Запись

Web Форма
+ 0) + {echo "\"Web
\n";} +?>
-Парковать Вызов
-Перевод - Конференция
+Парковать Вызов
+Перевод - Конференция
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Разъединить Клиента

-
Послать DTMF

+
Послать DTMF

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ ID ЗАПИСИ:
Телефон: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Комментарии: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
@@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_ru/voicemail_check.php b/LANG_www/agc_ru/voicemail_check.php index cdef7060..f775c5f5 100644 --- a/LANG_www/agc_ru/voicemail_check.php +++ b/LANG_www/agc_ru/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_sk/active_list_refresh.php b/LANG_www/agc_sk/active_list_refresh.php index be888d1d..3f46525b 100644 --- a/LANG_www/agc_sk/active_list_refresh.php +++ b/LANG_www/agc_sk/active_list_refresh.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to serve updates of the live data to the display scripts # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -38,6 +38,7 @@ # 50711-1209 - removed HTTP authentication in favor of user/pass vars # 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -469,7 +470,7 @@ if ($ADD==5) $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n";} if ($format=='table') {echo "\n\n\n";} exit; diff --git a/LANG_www/agc_sk/astguiclient.php b/LANG_www/agc_sk/astguiclient.php index c615d417..3efb17ec 100644 --- a/LANG_www/agc_sk/astguiclient.php +++ b/LANG_www/agc_sk/astguiclient.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -56,6 +56,8 @@ # 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1103 - Added variable filters to close security holes for login form # 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query # require("dbconnect.php"); @@ -87,8 +89,8 @@ $user_abb = "$user$user$user$user"; while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} -$version = '2.0.1'; -$build = '60829-1528'; +$version = '2.2.0'; +$build = '91129-2211'; ### security strip all non-alphanumeric characters out of the variables ### $DB=ereg_replace("[^0-9a-z]","",$DB); @@ -99,15 +101,15 @@ $build = '60829-1528'; if ($force_logout) -{ - if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Práve ste sa odhlásili, Ďakujeme\n"; exit; -} + } $StarTtime = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -139,7 +141,7 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = $agcPAGE; $agcDIR = eregi_replace('astguiclient.php','',$agcDIR); - if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) { header ("Content-type: text/html; charset=utf-8"); @@ -172,7 +174,7 @@ echo "
\n\n"; exit; } - else +else { if($auth>0) @@ -275,7 +277,7 @@ echo "web klient astGUIclient\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -425,31 +427,31 @@ else var last_filename = ''; var LCAcount = 0; var LMAcount = 0; - var filedate = ''; - var agcDIR = ''; - var agcPAGE = ''; - var extension = ''; - var extension_xfer = ''; - var dialplan_number = ''; - var ext_context = ''; - var protocol = ''; - var server_ip = ''; -'; + var agcDIR = ''; + var agcPAGE = ''; + var extension = ''; + var extension_xfer = ''; + var dialplan_number = ''; + var ext_context = ''; + var protocol = ''; + var server_ip = ''; + - var user_abb = ''; - var voicemail_id = ''; - var voicemail_exten = ''; - var voicemail_dump_exten = ''; + var user_abb = ''; + var voicemail_id = ''; + var voicemail_exten = ''; + var voicemail_dump_exten = ''; var new_messages = 999; var old_messages = 999; - var outbound_cid = ''; - var local_web_callerID_URL_enc = ''; - var epoch_sec = ; - var dtmf_send_extension = ''; - var recording_exten = ''; - var park_on_extension = ''; + var outbound_cid = ''; + var local_web_callerID_URL_enc = ''; + var epoch_sec = ; + var dtmf_send_extension = ''; + var recording_exten = ''; + var park_on_extension = ''; var park_count=0; var park_refresh=0; var check_n = 0; @@ -457,7 +459,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var logout_stop_timeouts = 0; var lastconf=''; var agc_dial_prefix = '91'; - var monitor_prefix = ''; + var monitor_prefix = ''; var menuheight = 30; var menuwidth = 30; var menufontsize = 8; @@ -480,15 +482,15 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var busytrunkhangup_order='asc'; var busylocalhangup_order='asc'; var xmlhttp=false; - var admin_hangup_enabled = ''; - var admin_hijack_enabled = ''; - var admin_monitor_enabled = ''; + var admin_hangup_enabled = ''; + var admin_hijack_enabled = ''; + var admin_monitor_enabled = ''; var XfeR_channel = ''; - var user = ''; - var pass = ''; - var phone_login = ''; - var phone_pass = ''; - var session_name = ''; + var user = ''; + var pass = ''; + var phone_login = ''; + var phone_pass = ''; + var session_name = ''; var image_livecall_OFF = new Image(); image_livecall_OFF.src="../agc/images/agc_live_call_OFF.gif"; var image_livecall_ON = new Image(); @@ -505,13 +507,13 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} var favoritesEDIT = new Array(); var favorites_namesEDIT = new Array(); var favlist = new Array(); - var favlistCT = ''; - var favorites_count = ''; - var favorites_countEDIT = ''; - var favorites_listX = ''; - var favorites_list = ""; - var favorites_listEDIT = ""; - '; + var favorites_count = ''; + var favorites_countEDIT = ''; + var favorites_listX = ''; + var favorites_list = ""; + var favorites_listEDIT = ""; + $h) { echo "favorites['$h'] = \"$favorites[$h]\";\n"; @@ -951,7 +953,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} } // ################################################################################ -// Send Redirect command for live call to Manager sends phone name where call is going to +// Send Redirect command for live call to Manažérsends phone name where call is going to function mainxfer_send_redirect(taskvar,taskxferconf) { var xmlhttp=false; @@ -1044,7 +1046,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} // ################################################################################ -// Send Originate command for local dial to Manager sends phone name where call is going to +// Send Originate command for local dial to Manažérsends phone name where call is going to function mainxfer_send_originate(taskvar,taskxferconf,taskentrypop) { var xmlhttp=false; @@ -2704,7 +2706,7 @@ if ($enable_fast_refresh < 1) {echo "var refresh_interval = 1000;\n";} --> -\n"; @@ -2716,7 +2718,7 @@ echo "\n";
-ODHLÁSIŤ
\n"; ?> +ODHLÁSIŤ
\n"; ?>
Základný panel
PRÍCHODZIE HOVORY:
astGUIclient verzia web-klient: POSTAVENÉ:
astGUIclient verzia web-klient: POSTAVENÉ:
- $h) { @@ -2891,7 +2893,7 @@ echo "\n"; - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the inbound and outbound calls for a specific phone # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -28,6 +28,7 @@ # 60323-1550 - added option for showing different number dialed in log # 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -187,7 +188,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_sk/conf_exten_check.php b/LANG_www/agc_sk/conf_exten_check.php index 3cfd457b..4e6869d6 100644 --- a/LANG_www/agc_sk/conf_exten_check.php +++ b/LANG_www/agc_sk/conf_exten_check.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -43,10 +43,16 @@ # 90102-1402 - Added check for system and database time synchronization # 90120-1720 - Added compatibility for API pause/resume and dial a number # 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions # -$version = '2.0.5-18'; -$build = '90307-1855'; +$version = '2.2.0-24'; +$build = '91228-1341'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=17; $one_mysql_log=0; @@ -86,15 +92,13 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -192,6 +196,9 @@ echo " { $Acount=0; $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; ### see if the agent has a record in the vicidial_live_agents table $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; @@ -203,12 +210,15 @@ echo " if ($Acount > 0) { - $stmt="SELECT status from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $Astatus=$row[0]; + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; } # ### find out if external table shows agent should be disabled # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; @@ -234,8 +244,46 @@ echo " $retry_count++; } + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is na is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + if ($campagentstdisp == 'YES') { + $ADsql=''; ### grab the status of this agent to display $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} @@ -247,9 +295,14 @@ echo " $AccampSQL=$row[2]; $AccampSQL = ereg_replace(' -','', $AccampSQL); $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } ### grab the number of calls being placed from this server and campaign - $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} @@ -297,19 +350,25 @@ echo " } ### grab the API hangup and API dispo fields in vicidial_live_agents - $stmt="SELECT external_hangup,external_status,external_pause,external_dial from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $external_hangup = $row[0]; - $external_status = $row[1]; - $external_pause = $row[2]; - $external_dial = $row[3]; + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + if (strlen($external_status)<1) {$external_status = '::::::::::';} $web_epoch = date("U"); - $stmt="select UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} @@ -319,6 +378,72 @@ echo " $time_diff = ($server_epoch - $db_epoch); $web_diff = ($db_epoch - $web_epoch); + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } ##### grab the shift information the agent $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; @@ -408,8 +533,16 @@ echo " if ($Ashift_logout > 0) {$Alogin='SHIFT_ODHLÁSIŤ';} - echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Stav: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . "|\n"; + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Stav: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } } $total_conf=0; $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; @@ -483,7 +616,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_sk/dbconnect.php b/LANG_www/agc_sk/dbconnect.php index 723d3c59..89d88689 100644 --- a/LANG_www/agc_sk/dbconnect.php +++ b/LANG_www/agc_sk/dbconnect.php @@ -1,10 +1,10 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { diff --git a/LANG_www/agc_sk/inbound_popup.php b/LANG_www/agc_sk/inbound_popup.php index dd4b3c96..17d239a2 100644 --- a/LANG_www/agc_sk/inbound_popup.php +++ b/LANG_www/agc_sk/inbound_popup.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed to open up when a live_inbound call comes in giving the user # options of what to do with the call or options to lookup the callerID on various web sites @@ -30,6 +30,7 @@ # 50711-1203 - removed HTTP authentication in favor of user/pass vars # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -127,16 +128,16 @@ echo "\n"; echo "\n"; ?> -ŽIVÝ PRÍCHODZÍ HOVOR"; echo "\n"; echo "\n"; @@ -259,22 +260,22 @@ echo "$NOW_TIME

\n"; } - $MT[0]=''; - $row=''; $rowx=''; - $channel_live=1; - if (strlen($uniqueid)<9) +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) { $channel_live=0; echo "Uniqueid $uniqueid Nie je správny\n"; exit; } - else +else { - $stmt="SELECT * FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $channels_list = mysql_num_rows($rslt); - if ($channels_list>0) + if ($channels_list>0) { $row=mysql_fetch_row($rslt); # echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; @@ -342,7 +343,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_sk/live_exten_check.php b/LANG_www/agc_sk/live_exten_check.php index f76a708f..33c26162 100644 --- a/LANG_www/agc_sk/live_exten_check.php +++ b/LANG_www/agc_sk/live_exten_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send whether the client channel is live and to what channel it is connected # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -29,6 +29,7 @@ # 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1203 - Added variable filters to close security holes for login form # 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -269,7 +270,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_sk/manager_send.php b/LANG_www/agc_sk/manager_send.php index b544f341..39574e30 100644 --- a/LANG_www/agc_sk/manager_send.php +++ b/LANG_www/agc_sk/manager_send.php @@ -1,5 +1,5 @@ - LICENSE: AGPLv2 # @@ -40,6 +40,7 @@ # - $account - ('DEFAULT',...) # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') # # CHANGELOG: # 50401-1002 - First build of script, Hangup function only @@ -85,12 +86,20 @@ # 90303-1144 - Fixed manual dial live hangup bug # 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables # 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records # -$version = '2.0.5-38'; -$build = '90305-1040'; +$version = '2.2.0-46'; +$build = '91213-1208'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=83; +$mysql_log_count=85; $one_mysql_log=0; require("dbconnect.php"); @@ -174,7 +183,8 @@ if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_di elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} - +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -184,25 +194,29 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$secondS = ereg_replace("[^0-9]","",$secondS); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($ACTION)) {$ACTION="Originate";} @@ -223,14 +237,13 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) { echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; exit; } - else +else { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; @@ -257,21 +270,21 @@ $auth=$row[0]; } if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "Poslať manažér: "; -if ($ACTION=="Originate") {echo "Originate";} -if ($ACTION=="Redirect") {echo "Redirect";} -if ($ACTION=="RedirectName") {echo "RedirectName";} -if ($ACTION=="Hangup") {echo "Hangup";} -if ($ACTION=="Command") {echo "Command";} -if ($ACTION==99999) {echo "POMOC";} -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Poslať manažér: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "POMOC";} + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -281,20 +294,20 @@ echo " # ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls ###################### if ($ACTION=="SysCIDOriginate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) - { + { echo "Exten $exten Nie je správny or queryCID $queryCID Nie je správny, Originate príkaz nebol vložený\n"; - } + } else - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate príkaz poslaný pre Exten $exten Kanál $channel na $server_ip\n"; + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate príkaz poslaný pre Exten $exten Kanál $channel na $server_ip\n"; + } } -} @@ -302,9 +315,9 @@ if ($ACTION=="SysCIDOriginate") # ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement ###################### if ($ACTION=="OriginateName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -313,27 +326,27 @@ if ($ACTION=="OriginateName") echo "ext_context $ext_context musí byť nastavené\n"; echo "ext_priority $ext_priority musí byť nastavené\n"; echo "\nOriginateName Action neodoslané\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -343,73 +356,79 @@ if ($ACTION=="OriginateNameVmail") echo "ext_context $ext_context musí byť nastavené\n"; echo "ext_priority $ext_priority musí byť nastavené\n"; echo "\nOriginateNameVmail Action neodoslané\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Originate"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } } } -} if ($ACTION=="OriginateVDRelogin") -{ - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { - $CIDdate = date("ymdHis"); - $DS='-'; - $SIPSAK_prefix = 'LIN-'; - print "\n"; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); - $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; - } + } $ACTION="Originate"; -} + } if ($ACTION=="Originate") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) - { - echo "Exten $exten Nie je správny or queryCID $queryCID Nie je správny, Originate príkaz nebol vložený\n"; - } - else - { - if (strlen($outbound_cid)>1) - {$outCID = "\"$queryCID\" <$outbound_cid>";} - else - {$outCID = "$queryCID";} - if ( ($usegroupalias > 0) and (strlen($account)>1) ) { - $RAWaccount = $account; - $account = "Account: $account"; - $variable = "Variable: usegroupalias=1"; + echo "ERROR Exten $exten Nie je správny or queryCID $queryCID Nie je správny, Originate príkaz nebol vložený\n"; } else - {$account=''; $variable='';} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Originate príkaz poslaný pre Exten $exten Kanál $channel na $server_ip |$account|$variable|\n"; + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Nie je dovolené, aby voľby do iných agent zasadnutí $exten\n"; + exit; + } - if ($agent_dialed_number > 0) - { - $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; - if ($DB) {echo "$stmt\n";} + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate príkaz poslaný pre Exten $exten Kanál $channel na $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } } } -} @@ -417,16 +436,16 @@ if ($ACTION=="Originate") # ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up ###################### if ($ACTION=="HangupConfDial") -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) - { + { $channel_live=0; echo "conference $exten Nie je správny or ext_context $ext_context or queryCID $queryCID Nie je správny, Hangup príkaz nebol vložený\n"; - } + } else - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; @@ -437,7 +456,7 @@ if ($ACTION=="HangupConfDial") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -446,9 +465,9 @@ if ($ACTION=="HangupConfDial") $channel=$rowx[0]; $ACTION="Hangup"; $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } } } -} @@ -456,10 +475,10 @@ if ($ACTION=="HangupConfDial") # ACTION=Hangup - insert Hangup Manager statement ###################### if ($ACTION=="Hangup") -{ -$stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; - if ($format=='debug') {echo "\n";} -$rslt=mysql_query($stmt, $link); + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} $row=''; $rowx=''; @@ -478,17 +497,17 @@ $rslt=mysql_query($stmt, $link); # $rslt=mysql_query($stmt, $link); # $row=mysql_fetch_row($rslt); # if ($row[0]==0) -# { +# { # $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; # if ($format=='debug') {echo "\n";} # $rslt=mysql_query($stmt, $link); # $rowx=mysql_fetch_row($rslt); # if ($rowx[0]==0) -# { +# { # $channel_live=0; # echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; -# } -# } +# } +# } if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) { $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; @@ -589,24 +608,26 @@ $rslt=mysql_query($stmt, $link); if ($format=='debug') {echo "\n";} if ($caller_connect > 0) { + $CLqueue_position='1'; ### grab call lead information needed for QM logging - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } if ($format=='debug') {echo "\n";} @@ -627,7 +648,7 @@ $rslt=mysql_query($stmt, $link); if ($caller_complete < 1) { $time_id=0; - $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb='ENTERQUEUE' and queue='$CLcampaign_id';"; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_eq_ct = mysql_num_rows($rslt); @@ -641,7 +662,7 @@ $rslt=mysql_query($stmt, $link); {$secondS = ($StarTtime - $time_id);} if ($format=='debug') {echo "\n";} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); @@ -659,7 +680,7 @@ $rslt=mysql_query($stmt, $link); echo "Hangup príkaz poslaný pre Kanál $channel na $call_server_ip\n"; } } -} + } @@ -668,9 +689,9 @@ $rslt=mysql_query($stmt, $link); # - insert Redirect Manager statement using extensions name ###################### if ($ACTION=="RedirectVD") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -683,9 +704,9 @@ if ($ACTION=="RedirectVD") echo "uniqueid $uniqueid musí byť nastavené\n"; echo "lead_id $lead_id musí byť nastavené\n"; echo "\nRedirectVD Action neodoslané\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; if ($format=='debug') {echo "\n";} @@ -694,33 +715,66 @@ if ($ACTION=="RedirectVD") $row=mysql_fetch_row($rslt); if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} } - if ($auto_dial_level < 1) - { - $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} - } - else + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) { $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectToPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -731,22 +785,26 @@ if ($ACTION=="RedirectToPark") echo "ext_priority $ext_priority musí byť nastavené\n"; echo "parkedby $parkedby musí byť nastavené\n"; echo "\nRedirectToPark Action neodoslané\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} - $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','','$extenName','$parkedby','$NOW_TIME');"; + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } } -} if ($ACTION=="RedirectFromPark") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -755,22 +813,22 @@ if ($ACTION=="RedirectFromPark") echo "ext_context $ext_context musí byť nastavené\n"; echo "ext_priority $ext_priority musí byť nastavené\n"; echo "\nRedirectFromPark Action neodoslané\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} $ACTION="Redirect"; + } } -} if ($ACTION=="RedirectName") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -779,27 +837,27 @@ if ($ACTION=="RedirectName") echo "ext_context $ext_context musí byť nastavené\n"; echo "ext_priority $ext_priority musí byť nastavené\n"; echo "\nRedirectName Action neodoslané\n"; - } + } else - { + { $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = $row[0]; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } } } -} if ($ACTION=="RedirectNameVmail") -{ - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -809,22 +867,22 @@ if ($ACTION=="RedirectNameVmail") echo "ext_context $ext_context musí byť nastavené\n"; echo "ext_priority $ext_priority musí byť nastavené\n"; echo "\nRedirectNameVmail Action neodoslané\n"; - } + } else - { + { $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} $name_count = mysql_num_rows($rslt); if ($name_count>0) - { - $row=mysql_fetch_row($rslt); - $exten = "$exten$row[0]"; - $ACTION="Redirect"; + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } } } -} @@ -832,13 +890,13 @@ if ($ACTION=="RedirectNameVmail") if ($ACTION=="RedirectXtraCXNeW") -{ + { $DBout=''; $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Jeden z týchto premených Nie je správny:\n"; @@ -858,9 +916,9 @@ if ($ACTION=="RedirectXtraCXNeW") fclose($fp); } } - } + } else - { + { if (ereg("NEXTAVAILABLE",$exten)) { $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; @@ -941,53 +999,53 @@ if ($ACTION=="RedirectXtraCXNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanál $channel nie je živá na $call_server_ip, Redirect príkaz nebol vložený\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { + { $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0] < 1) - { + { $channel_liveY=0; echo "No Local agent to send call to, Redirect príkaz nebol vložený\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } + } else - { + { $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1021,29 +1079,28 @@ if ($ACTION=="RedirectXtraCXNeW") echo "RedirectXtraCX príkaz poslaný pre Kanál $channel na $call_server_ip and \nHungup $extrachannel na $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel na $call_server_ip, Hungup $extrachannel na $server_ip";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel na $server_ip";} - } + } - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) + if (ereg("SECOND|FIRST|DEBUG",$filename)) { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } } } - } -} @@ -1055,16 +1112,16 @@ if ($ACTION=="RedirectXtraCXNeW") if ($ACTION=="RedirectXtraNeW") -{ + { if ($channel=="$extrachannel") {$ACTION="Redirect";} else - { + { $row=''; $rowx=''; $channel_liveX=1; $channel_liveY=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) - { + { $channel_liveX=0; $channel_liveY=0; echo "Jeden z týchto premených Nie je správny:\n"; @@ -1085,73 +1142,73 @@ if ($ACTION=="RedirectXtraNeW") fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) + } + else { - $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 1) + if (ereg("NEXTAVAILABLE",$exten)) { - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $exten = $row[0]; - - $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} - - $queryCID = "CXAR23$NOWnum"; - $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmtB, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($auto_dial_level < 1) + if ($row[0] > 1) { - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference na $server_ip, Redirect príkaz nebol vložený\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie je možné nájsť prázdnu konferenciu na $server_ip";} } - - echo "NeWSessioN|$exten|\n"; - echo "|$stmtB|\n"; - - exit; } - else - { - $channel_liveX=0; - echo "Cannot find empty vicidial_conference na $server_ip, Redirect príkaz nebol vložený\n|$stmt|"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie je možné nájsť prázdnu konferenciu na $server_ip";} - } - } - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1159,42 +1216,42 @@ if ($ACTION=="RedirectXtraNeW") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveX=0; echo "Kanál $channel nie je živá na $call_server_ip, Redirect príkaz nebol vložený\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $call_server_ip";} - } - } + } + } $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_liveY=0; echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $server_ip";} - } - } + } + } if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1202,9 +1259,9 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra príkaz poslaný pre Kanál $channel and \nExtraKanál $extrachannel\n to $exten na $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten na $server_ip";} - } + } else - { + { $S='*'; $D_s_ip = explode('.', $server_ip); if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} @@ -1229,332 +1286,38 @@ if ($ACTION=="RedirectXtraNeW") echo "RedirectXtra príkaz poslaný pre Kanál $channel na $call_server_ip and \nExtraKanál $extrachannel\n to $exten na $server_ip\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } } - } else - { + { if ($channel_liveX==1) {$ACTION="Redirect"; $server_ip = $call_server_ip;} if ($channel_liveY==1) {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); } - } - } - } -} - - - - - - - -/* -if ($ACTION=="RedirectXtraCX") -{ - $DBout=''; - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Jeden z týchto premených Nie je správny:\n"; - echo "Kanál $channel musí byť viac ako 2 znaky\n"; - echo "ExtraKanál $extrachannel musí byť viac ako 2 znaky\n"; - echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; - echo "exten $exten musí byť nastavené\n"; - echo "ext_context $ext_context musí byť nastavené\n"; - echo "ext_priority $ext_priority musí byť nastavené\n"; - echo "\nRedirect Action neodoslané\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); - fclose($fp); - } - } - } - else - { - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanál $channel nie je živá na $call_server_ip, Redirect príkaz nebol vložený\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0]==0) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0] < 1) - { - $channel_liveY=0; - echo "No Local agent to send call to, Redirect príkaz nebol vložený\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} - } - else - { - $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $dest_server_ip = $rowx[0]; - $dest_session_id = $rowx[1]; - $dest_user = $rowx[2]; - $S='*'; - - $D_s_ip = explode('.', $dest_server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtraCX príkaz poslaný pre Kanál $channel na $call_server_ip and \nHungup $extrachannel na $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel na $call_server_ip, Hungup $extrachannel na $server_ip";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel na $server_ip";} - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - - } -} - - - -###### BEGIN OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -if ($ACTION=="RedirectXtra") -{ - if ($channel=="$extrachannel") - {$ACTION="Redirect";} - else - { - $row=''; $rowx=''; - $channel_liveX=1; - $channel_liveY=1; - if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) ) - { - $channel_liveX=0; - $channel_liveY=0; - echo "Jeden z týchto premených Nie je správny:\n"; - echo "Kanál $channel musí byť viac ako 2 znaky\n"; - echo "ExtraKanál $extrachannel musí byť viac ako 2 znaky\n"; - echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; - echo "exten $exten musí byť nastavené\n"; - echo "ext_context $ext_context musí byť nastavené\n"; - echo "ext_priority $ext_priority musí byť nastavené\n"; - echo "\nRedirect Action neodoslané\n"; if (ereg("SECOND|FIRST|DEBUG",$filename)) { if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); fclose($fp); } } - } - else - { - if (ereg("NEXTAVAILABLE",$exten)) - { - $stmt="SELECT conf_exten FROM conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if (strlen($row[0]) > 3) - { - $stmt="UPDATE conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $exten = $row[0]; - } - else - { - $channel_liveX=0; - echo "Nie je možné nájsť prázdnu konferenciu na $server_ip, Redirect príkaz nebol vložený\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie je možné nájsť prázdnu konferenciu na $server_ip";} - } } - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - - $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveX=0; - echo "Kanál $channel nie je živá na $call_server_ip, Redirect príkaz nebol vložený\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $call_server_ip";} - } - } - $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) - { - $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - if ($rowx[0]==0) - { - $channel_liveY=0; - echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $server_ip";} - } - } - if ( ($channel_liveX==1) && ($channel_liveY==1) ) - { - if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra príkaz poslaný pre Kanál $channel and \nExtraKanál $extrachannel\n to $exten na $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten na $server_ip";} - } - else - { - $S='*'; - $D_s_ip = explode('.', $server_ip); - if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} - if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} - if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} - if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} - if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - - echo "RedirectXtra príkaz poslaný pre Kanál $channel na $call_server_ip and \nExtraKanál $extrachannel\n to $exten na $server_ip\n"; - if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} - } - } - else - { - if ($channel_liveX==1) - {$ACTION="Redirect"; $server_ip = $call_server_ip;} - if ($channel_liveY==1) - {$ACTION="Redirect"; $channel=$extrachannel;} - - } - - if (ereg("SECOND|FIRST|DEBUG",$filename)) - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); - fclose($fp); - } - } - } } -} -###### END OLD LEAVE-3-WAY FOR EXTERNAL CALLS - DEPRICATED AND WILL BE DELETED SOON ##### -*/ + + + + if ($ACTION=="Redirect") -{ + { ### for manual dial VICIDIAL calls send the second attempt to transfer the call if ($stage=="2NDXfeR") - { + { $local_DEF = 'Local/'; $local_AMP = '@'; $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; @@ -1565,7 +1328,7 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row > 0) - { + { $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); @@ -1574,13 +1337,13 @@ if ($ACTION=="Redirect") $channel=$rowx[0]; $channel = eregi_replace("1$","2",$channel); $queryCID = eregi_replace("^.","Q",$queryCID); + } } - } $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) - { + { $channel_live=0; echo "Jeden z týchto premených Nie je správny:\n"; echo "Kanál $channel musí byť viac ako 2 znaky\n"; @@ -1589,9 +1352,9 @@ if ($ACTION=="Redirect") echo "ext_context $ext_context musí byť nastavené\n"; echo "ext_priority $ext_priority musí byť nastavené\n"; echo "\nRedirect Action neodoslané\n"; - } + } else - { + { if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} @@ -1599,29 +1362,29 @@ if ($ACTION=="Redirect") if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Redirect príkaz poslaný pre Kanál $channel na $server_ip\n"; + echo "Redirect príkaz poslaný pre Kanál $channel na $server_ip\n"; + } } } -} @@ -1629,7 +1392,7 @@ if ($ACTION=="Redirect") # ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel ###################### if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) -{ + { if ($ACTION=="StopMonitor") {$SQLfile = "";} else @@ -1638,78 +1401,77 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) $row=''; $rowx=''; $channel_live=1; if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanál $channel Nie je správny or queryCID $queryCID Nie je správny or filename: $filename Nie je správny, $ACTION príkaz nebol vložený\n"; - } + } else - { + { $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); if ($row[0]==0) - { + { $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} $rowx=mysql_fetch_row($rslt); if ($rowx[0]==0) - { + { $channel_live=0; echo "Kanál $channel nie je živá na $server_ip, $ACTION príkaz nebol vložený\n"; - } - } + } + } if ($channel_live==1) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - - if ($ACTION=="Monitor") { - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - } - else - { - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); - if ($rec_count>0) + if ($ACTION=="Monitor") { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); - - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION príkaz poslaný pre Kanál $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } - echo "$ACTION príkaz poslaný pre Kanál $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; } } -} @@ -1720,153 +1482,151 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) # ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference ###################### if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) -{ + { $row=''; $rowx=''; $channel_live=1; $uniqueidSQL=''; if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) - { + { $channel_live=0; echo "Kanál $channel Nie je správny or exten $exten Nie je správny or filename: $filename Nie je správny, $ACTION príkaz nebol vložený\n"; - } + } else - { - - $VDvicidial_id=''; - - if ($ACTION=="MonitorConf") { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + $VDvicidial_id=''; - $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} - $RLaffected_rows = mysql_affected_rows($link); - if ($RLaffected_rows > 0) + if ($ACTION=="MonitorConf") { - $recording_id = mysql_insert_id($link); + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } } - if ($FROMvdc=='YES') + ##### StopMonitorConf steps ##### + else { - ##### get call type from vicidial_live_agents table - $VLA_inOUT='NONE'; - $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $VLA_inOUT_ct = mysql_num_rows($rslt); - if ($VLA_inOUT_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VLA_inOUT = $row[0]; - } - if ($VLA_inOUT == 'INBOUND') + if ($uniqueid=='IN') { $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - ##### look for the vicidial ID in the vicidial_closer_log table - $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } } else { - ##### look for the vicidial ID in the vicidial_log table - $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $VM_mancall_ct = mysql_num_rows($rslt); - if ($VM_mancall_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDvicidial_id = $row[0]; - - $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - } - - ##### StopMonitorConf steps ##### - else - { - if ($uniqueid=='IN') - { - $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); - - ### find the value to put in the vicidial_id field if this was an inbound call - $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_qm_ct = mysql_num_rows($rslt); - if ($VAC_qm_ct > 0) - { - $row=mysql_fetch_row($rslt); - $uniqueidSQL = ",vicidial_id='$row[0]'"; - } - } - else - { - if (strlen($uniqueid) > 8) - {$uniqueidSQL = ",vicidial_id='$uniqueid'";} - } - - $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $rec_count = mysql_num_rows($rslt); + $rec_count = mysql_num_rows($rslt); if ($rec_count>0) - { - $row=mysql_fetch_row($rslt); - $recording_id = $row[0]; - $start_time = $row[1]; - $length_in_sec = ($StarTtime - $start_time); - $length_in_min = ($length_in_sec / 60); - $length_in_min = sprintf("%8.2f", $length_in_min); + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); - $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } - # find and hang up all recordings going na in this conference # and extension = '$exten' - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} - # $rec_count = intval(mysql_num_rows($rslt) / 2); - $rec_count = mysql_num_rows($rslt); - $h=0; - while ($rec_count>$h) - { - $rowx=mysql_fetch_row($rslt); - $HUchannel[$h] = $rowx[0]; - $h++; - } - $i=0; - while ($h>$i) - { - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + # find and hang up all recordings going na in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} - $i++; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } } - + echo "$ACTION príkaz poslaný pre Kanál $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n NAHRÁVAŤ SA BUDE 60 MINÚT\n"; } - echo "$ACTION príkaz poslaný pre Kanál $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n NAHRÁVAŤ SA BUDE 60 MINÚT\n"; } -} @@ -1876,29 +1636,29 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) # ACTION=VolumeControl - raise or lower the volume of a meetme participant ###################### if ($ACTION=="VolumeControl") -{ + { if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) - { + { echo "Konferencia $exten, Stage $stage Nie je správny or queryCID $queryCID Nie je správny, Originate príkaz nebol vložený\n"; - } + } else - { - $participant_number='XXYYXXYYXXYYXX'; - if (eregi('UP',$stage)) {$vol_prefix='4';} - if (eregi('DOWN',$stage)) {$vol_prefix='3';} - if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} - if (eregi('MUTING',$stage)) {$vol_prefix='1';} - $local_DEF = 'Local/'; - $local_AMP = '@'; - $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} - echo "Volume príkaz poslaný pre Konferencia $exten, Stage $stage Kanál $channel na $server_ip\n"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume príkaz poslaný pre Konferencia $exten, Stage $stage Kanál $channel na $server_ip\n"; + } } -} @@ -1913,7 +1673,7 @@ if ($ACTION=="VolumeControl") $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n";} if ($format=='debug') {echo "\n\n\n";} exit; @@ -1921,23 +1681,23 @@ exit; ##### MySQL Error Logging ##### function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) -{ -$NOW_TIME = date("Y-m-d H:i:s"); -# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); -$errno=''; $error=''; -if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $errno = mysql_errno($link); - if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) { - $error = mysql_error($link); - $efp = fopen ("./vicidial_mysql_errors.txt", "a"); - fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); - fclose($efp); + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } } + $one_mysql_log=0; + return $errno; } -$one_mysql_log=0; -return $errno; -} ?> diff --git a/LANG_www/agc_sk/park_calls_display.php b/LANG_www/agc_sk/park_calls_display.php index 45134678..b7e1e7b3 100644 --- a/LANG_www/agc_sk/park_calls_display.php +++ b/LANG_www/agc_sk/park_calls_display.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to send the details on the parked calls on the server # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1208 - removed HTTP authentication in favor of user/pass vars # 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -116,7 +117,7 @@ echo " else { ##### print parked calls from the parked_channels table - $stmt="SELECT * from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $park_calls_count = mysql_num_rows($rslt); @@ -137,7 +138,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_sk/timeclock.php b/LANG_www/agc_sk/timeclock.php index 77570d86..e7a48c41 100644 --- a/LANG_www/agc_sk/timeclock.php +++ b/LANG_www/agc_sk/timeclock.php @@ -1,17 +1,18 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 80523-0134 - First Build # 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field # 80525-2351 - Added an audit log that is not to be editable # 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags # -$version = '2.0.5-4'; -$build = '80602-0641'; +$version = '2.2.0-5'; +$build = '90508-0727'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -122,7 +123,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) $VDdisplayMESSAGE = "Užívateľa a heslo, ktoré ste zadali, nie sú aktívne v systéme
Prosím, skúste to znova:"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -223,11 +224,11 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } if ( ($last_action_sec < 30) and ($status != 'SPUSTIŤ') ) { - ### You cannot log in or out within 30 sekúnd of your last login/logout + ### You cannot log in or out within 30sekúnd of your last login/logout $VDdisplayMESSAGE = "Nemôžete sa prihlásiť alebo sa do 30 sekúnd od vášho posledného prihlásenia alebo odhlásenie"; echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -342,7 +343,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) {$BACKlink = "SPÄŤ na úvodnú obrazovku";} echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -381,7 +382,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) } echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; @@ -420,7 +421,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) else { echo"\n"; - echo"VICIDIAL:Timeclock\n"; + echo"AgentTimeclock\n"; echo"\n"; echo"\n"; echo "\n"; diff --git a/LANG_www/agc_sk/vdc_db_query.php b/LANG_www/agc_sk/vdc_db_query.php index d2bdc814..854f496e 100644 --- a/LANG_www/agc_sk/vdc_db_query.php +++ b/LANG_www/agc_sk/vdc_db_query.php @@ -1,10 +1,9 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # -# This script is designed purely to send whether the meetme conference has live channels connected and which they are -# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# This script is designed to exchange information between vicidial.php and the database server for various actions # # required variables: # - $server_ip @@ -13,7 +12,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -83,6 +82,9 @@ # - $agent_dialed_number - ('1','') # - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) # - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) # # CHANGELOG: # 50629-1044 - First build of script @@ -192,12 +194,44 @@ # 90305-1041 - Added agent_dialed_number and type for user_call_log feature # 90307-1735 - Added Shift enforcement and manager override features # 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update # -$version = '2.0.5-104'; -$build = '90320-0306'; +$version = '2.2.0-136'; +$build = '100104-1509'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=194; +$mysql_log_count=290; $one_mysql_log=0; require("dbconnect.php"); @@ -363,8 +397,16 @@ if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_diale elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} - - +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -381,30 +423,35 @@ $agents='@agents'; ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $timeclock_end_of_day = $row[1]; - $i++; + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) -{ -$user=ereg_replace("[^0-9a-zA-Z]","",$user); -$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); -$length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); -$phone_code = ereg_replace("[^0-9]","",$phone_code); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -} + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + # default optional vars if not set if (!isset($format)) {$format="text";} @@ -427,48 +474,48 @@ else $auth=$row[0]; if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) - { - echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; - exit; - } - else - { - if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; exit; } else { - $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $SNauth=$row[0]; - if($SNauth==0) + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; exit; } - else + else { - # do nothing for now + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } } } } -} if ($format=='debug') -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "VICIDiaL Databázový dotaz-script"; -echo "\n"; -echo "\n"; -echo "\n"; -} + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Databázový dotaz-script"; + echo "\n"; + echo "\n"; + echo "\n"; + } @@ -619,8 +666,8 @@ if ($ACTION == 'LogiNCamPaigns') $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Prihlásiť:
\n"; - $VDdisplayMESSAGE.= "Manager Heslo:
\n"; + $VDdisplayMESSAGE.= "ManažérPrihlásiť:
\n"; + $VDdisplayMESSAGE.= "ManažérHeslo:
\n"; $VDdisplayMESSAGE.= "



\n"; echo "$VDdisplayMESSAGE"; exit; @@ -662,111 +709,291 @@ if ($ACTION == 'LogiNCamPaigns') ### inbound choices made upon login ################################################################################ if ($ACTION == 'regCLOSER') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) - { - $channel_live=0; - echo "Zmena skupiny $closer_choice Nie je správny\n"; - exit; - } + { + $channel_live=0; + echo "Zmena skupiny $closer_choice Nie je správny\n"; + exit; + } else - { - if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $row=mysql_fetch_row($rslt); - $closer_choice =$row[0]; - - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($closer_blended > 0) + {$vla_autodial = 'Y';} else - { - $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} - $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} - } - - $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} - - $in_groups_pre = preg_replace('/-$/','',$closer_choice); - $in_groups = explode(" ",$in_groups_pre); - $in_groups_ct = count($in_groups); - $k=1; - while ($k < $in_groups_ct) - { - if (strlen($in_groups[$k])>1) + if ($closer_choice == "MGRLOCK-") { - $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $viga_ct = mysql_num_rows($rslt); - if ($viga_ct > 0) - { $row=mysql_fetch_row($rslt); - $group_weight = $row[0]; - $calls_today = $row[1]; - } - else - { - $group_weight = 0; - $calls_today = 0; - } - $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} } - $k++; - } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } echo "Closer In Zmena skupiny $closer_choice bol zaregistrovaný pre užívateľa $user\n"; -} + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories Nie je správny\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories bol zaregistrovaný pre užívateľa $user\n"; + } + + + ################################################################################ -### manDiaLnextCALL - for manual VICIDiaL dialing this will grab the next lead +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead ### in the campaign, reserve it, send data back to client and ### place the call by inserting into vicidial_manager ################################################################################ if ($ACTION == 'manDiaLnextCaLL') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) - { - $channel_live=0; - echo "ZASOBNIK JE PRAZDNY\n"; - echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context Nie je správny\n"; - exit; - } + { + $channel_live=0; + echo "ZASOBNIK JE PRAZDNY\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context Nie je správny\n"; + exit; + } else { - ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -776,12 +1003,25 @@ if ($ACTION == 'manDiaLnextCaLL') if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + $calls_today = $row[0]; } else {$calls_today ='0';} $calls_today++; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) { @@ -904,12 +1144,472 @@ if ($ACTION == 'manDiaLnextCaLL') } else { - ### grab the next lead in the hopper for this campaign and reserve it for the user - $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; - if ($DB) {echo "$stmt\n";} + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST HOVOR TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST HOVOR TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } } } @@ -931,7 +1631,7 @@ if ($ACTION == 'manDiaLnextCaLL') } ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -969,6 +1669,8 @@ if ($ACTION == 'manDiaLnextCaLL') $security = trim("$row[28]"); $comments = stripslashes(trim("$row[29]")); $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } $called_count++; @@ -996,7 +1698,7 @@ if ($ACTION == 'manDiaLnextCaLL') # DATETIME|campaign|lead_id|phone_number|user|type # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID|\n"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); fclose($fp); } @@ -1078,6 +1780,22 @@ if ($ACTION == 'manDiaLnextCaLL') $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} $PADlead_id = sprintf("%09s", $lead_id); @@ -1116,7 +1834,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1142,8 +1860,7 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -1152,7 +1869,6 @@ if ($ACTION == 'manDiaLnextCaLL') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -1168,8 +1884,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # HOVOROUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1187,6 +1903,77 @@ if ($ACTION == 'manDiaLnextCaLL') } + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); @@ -1225,16 +2012,24 @@ if ($ACTION == 'manDiaLnextCaLL') $LeaD_InfO .= $phone_number . "\n"; $LeaD_InfO .= "MAIN\n"; $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; echo $LeaD_InfO; - - } + } else - { - echo "ZASOBNIK JE PRAZDNY\n"; + { + echo "ZASOBNIK JE PRAZDNY\n"; + } } } -} ################################################################################ @@ -1298,19 +2093,19 @@ if ($ACTION == 'AlertControl') ### previewed in the step above and puts it back in orig status ################################################################################ if ($ACTION == 'manDiaLskip') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo "LEAD NOT REVERTED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context Nie je správny\n"; exit; - } + } else - { + { $called_count = ($called_count - 1); ### flag the lead as called and change it's status to INCALL $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; @@ -1320,8 +2115,8 @@ if ($ACTION == 'manDiaLskip') echo "LEAD REVERTED\n"; + } } -} ################################################################################ @@ -1329,19 +2124,19 @@ if ($ACTION == 'manDiaLskip') ### previewed in the step above ################################################################################ if ($ACTION == 'manDiaLonly') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { + { $channel_live=0; echo " HOVOR NOT PLACED\n"; echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context Nie je správny\n"; exit; - } + } else - { + { ##### grab number of calls today in this campaign and increment $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); @@ -1369,6 +2164,37 @@ if ($ACTION == 'manDiaLonly') if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} $PADlead_id = sprintf("%09s", $lead_id); while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} @@ -1405,7 +2231,7 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1468,8 +2294,8 @@ if ($ACTION == 'manDiaLonly') if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - # ENTERQUEUE - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='ENTERQUEUE',data2='$phone_number',serverid='$queuemetrics_log_id';"; + # HOVOROUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} @@ -1485,8 +2311,8 @@ if ($ACTION == 'manDiaLonly') mysql_close($linkB); } + } } -} ################################################################################ @@ -1573,23 +2399,53 @@ if ($stage == "start") } else { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } if ($affected_rows > 0) { @@ -1769,7 +2625,7 @@ if ($stage == "end") if ($auto_dial_level > 0) { ### check to see if campaign has alt_dial enabled - $stmt="SELECT auto_alt_dial FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1777,7 +2633,9 @@ if ($stage == "end") if ($VAC_mancall_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_alt_dial =$row[0]; + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; } else {$auto_alt_dial = 'NONE';} if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) @@ -1785,6 +2643,23 @@ if ($stage == "end") ### check to see if lead should be alt_dialed if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) { $alt_dial_skip=0; @@ -1804,10 +2679,17 @@ if ($stage == "end") else {$alt_phone = '';} if (strlen($alt_phone)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1818,10 +2700,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1867,10 +2756,17 @@ if ($stage == "end") else {$address3 = '';} if (strlen($address3)>5) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1881,10 +2777,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -1967,10 +2870,17 @@ if ($stage == "end") if (ereg("Y",$VD_altdial_active)) { - if (ereg("Y",$use_internal_dnc)) + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_dnc_ct = mysql_num_rows($rslt); @@ -1981,10 +2891,17 @@ if ($stage == "end") } } else {$VD_alt_dnc_count=0;} - if (ereg("Y",$use_campaign_dnc)) + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) { - $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $VLAP_cdnc_ct = mysql_num_rows($rslt); @@ -2057,13 +2974,16 @@ if ($stage == "end") } - ### delete call record from vicidial_auto_calls - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2094,8 +3014,9 @@ if ($stage == "end") { if ($enable_queuemetrics_logging > 0) { + $CLqueue_position=1; ### check to see if lead should be alt_dialed - $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -2103,35 +3024,39 @@ if ($stage == "end") if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $auto_call_id = $row[0]; - $CLlead_id = $row[1]; - $CLphone_number = $row[2]; - $CLstatus = $row[3]; - $CLcampaign_id = $row[4]; - $CLphone_code = $row[5]; - $CLalt_dial = $row[6]; - $CLstage = $row[7]; - $CLcallerid = $row[8]; - $CLuniqueid = $row[9]; + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; } $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); if ($CLstage < 0.25) {$CLstage=0;} - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); } - # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; - $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } - $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';"; + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2188,33 +3113,45 @@ if ($stage == "end") } ### check to see if the vicidial_log record exists, if not, insert it - $stmt="SELECT count(*) from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00186',$user,$server_ip,$session_name,$one_mysql_log);} - $VAC_vld_ct = mysql_num_rows($rslt); - if ($VAC_vld_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) { $row=mysql_fetch_row($rslt); - $VLD_count = $row[0]; - if ($VLD_count < 1) - { - ##### insert log into vicidial_log for manual VICIDiaL call - $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); + $manualVLexists = $row[0]; + } - if ($affected_rows > 0) - { - echo "VICIDiaL_LOG Vložiť: $uniqueid|$channel|$NOW_TIME\n"; - echo "$StarTtime\n"; - } - else - { - echo "LOG NEBOL ZADANÝ\n"; - } + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Vložiť: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; } + else + { + echo "LOG NEBOL ZADANÝ\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); } ##### update the duration and end time in the vicidial_log table @@ -2240,16 +3177,17 @@ if ($stage == "end") if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) { - ### check to see if lead should be alt_dialed - $stmt="SELECT term_reason,closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} $VAC_qm_ct = mysql_num_rows($rslt); if ($VAC_qm_ct > 0) { $row=mysql_fetch_row($rslt); - $VDterm_reason = $row[0]; - $VDvicidial_id = $row[1]; + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; } if (ereg("CALLER",$VDterm_reason)) @@ -2289,7 +3227,23 @@ if ($stage == "end") } if ($agent_complete < 1) { - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='1',serverid='$queuemetrics_log_id';"; + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2477,8 +3431,10 @@ if ($stage == "end") $talk_sec=0; $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select talk_epoch,talk_sec,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2489,11 +3445,28 @@ if ($stage == "end") if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { $talk_epochSQL=",talk_epoch='$StarTtime'"; - $row[0]=$row[2]; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; } $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2507,40 +3480,40 @@ if ($stage == "end") ### calls to see if the channel has updated ################################################################################ if ($ACTION == 'VDADREcheckINCOMING') -{ + { $MT[0]=''; $row=''; $rowx=''; $channel_live=1; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Kampaň $campaign Nie je správny\n"; - echo "lead_id $lead_id Nie je správny\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + $channel_live=0; + echo "0\n"; + echo "Kampaň $campaign Nie je správny\n"; + echo "lead_id $lead_id Nie je správny\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } } } -} ################################################################################ @@ -2549,7 +3522,7 @@ if ($ACTION == 'VDADREcheckINCOMING') ### lookup the lead info and pass it back to vicidial.php ################################################################################ if ($ACTION == 'VDADcheckINCOMING') -{ + { $VDCL_ingroup_recording_override = ''; $VDCL_ingroup_rec_filename = ''; $Ctype = 'A'; @@ -2563,345 +3536,527 @@ if ($ACTION == 'VDADcheckINCOMING') $alt_phone_count=''; if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) - { - $channel_live=0; - echo "0\n"; - echo "Kampaň $campaign Nie je správny\n"; - exit; - } - else - { - ### grab the call and lead info from the vicidial_live_agents table - $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} - $queue_leadID_ct = mysql_num_rows($rslt); - - if ($queue_leadID_ct > 0) { - $row=mysql_fetch_row($rslt); - $lead_id =$row[0]; - $uniqueid =$row[1]; - $callerid =$row[2]; - $channel =$row[3]; - $call_server_ip =$row[4]; - $VLAcomments=$row[5]; - - if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} - echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - - ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + $channel_live=0; + echo "0\n"; + echo "Kampaň $campaign Nie je správny\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; if ($DB) {echo "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); - if ($vla_cc_ct > 0) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) { $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; - } - else - {$calls_today ='0';} - $calls_today++; + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; - ### update the agent status to INCALL in vicidial_live_agents - $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; - $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - - ##### grab the data from vicidial_list for the lead_id - $stmt="SELECT * FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $list_lead_ct = mysql_num_rows($rslt); - if ($list_lead_ct > 0) - { - $row=mysql_fetch_row($rslt); - # $lead_id = trim("$row[0]"); - $dispo = trim("$row[3]"); - $tsr = trim("$row[4]"); - $vendor_id = trim("$row[5]"); - $source_id = trim("$row[6]"); - $list_id = trim("$row[7]"); - $gmt_offset_now = trim("$row[8]"); - $phone_code = trim("$row[10]"); - $phone_number = trim("$row[11]"); - $title = trim("$row[12]"); - $first_name = trim("$row[13]"); - $middle_initial = trim("$row[14]"); - $last_name = trim("$row[15]"); - $address1 = trim("$row[16]"); - $address2 = trim("$row[17]"); - $address3 = trim("$row[18]"); - $city = trim("$row[19]"); - $state = trim("$row[20]"); - $province = trim("$row[21]"); - $postal_code = trim("$row[22]"); - $country_code = trim("$row[23]"); - $gender = trim("$row[24]"); - $date_of_birth = trim("$row[25]"); - $alt_phone = trim("$row[26]"); - $email = trim("$row[27]"); - $security = trim("$row[28]"); - $comments = stripslashes(trim("$row[29]")); - $called_count = trim("$row[30]"); - } - - ##### if lead is a callback, grab the callback comments - $CBentry_time = ''; - $CBcallback_time = ''; - $CBuser = ''; - $CBcomments = ''; - if (ereg("CALLBK",$dispo)) - { - $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $cb_record_ct = mysql_num_rows($rslt); - if ($cb_record_ct > 0) + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) { $row=mysql_fetch_row($rslt); - $CBentry_time = trim("$row[0]"); - $CBcallback_time = trim("$row[1]"); - $CBuser = trim("$row[2]"); - $CBcomments = trim("$row[3]"); - } - } - - ### update the lead status to INCALL - $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} - - ### update the log status to INCALL - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - - $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - $call_type =$row[3]; - } - else - { - $dialed_number = $phone_number; - $dialed_label = 'MAIN'; - if (preg_match('/^M|^V/',$callerid)) - { - $call_type = 'OUT'; - $VDADchannel_group = $campaign; + $calls_today =$row[0]; } else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) { - $call_type = 'IN'; - $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; - if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} - $VDCL_mvac_ct = mysql_num_rows($rslt); - if ($VDCL_mvac_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - } + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; } - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); - fclose($fp); - } - } - if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) - { - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_xfer_group = $row[6]; - if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00115',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } } else { $dialed_number = $phone_number; $dialed_label = 'MAIN'; - } - if (ereg('X',$dialed_label)) - { - if (ereg('LAST',$dialed_label)) + if (preg_match('/^M|^V/',$callerid)) { - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + $call_type = 'OUT'; + $VDADchannel_group = $campaign; } else { - $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); - $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; - } - - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} - $VLAP_ct = mysql_num_rows($rslt); - if ($VLAP_ct > 0) - { - $row=mysql_fetch_row($rslt); - $alt_phone_code = $row[0]; - $alt_phone_number = $row[1]; - $alt_phone_note = $row[2]; - $alt_phone_active = $row[3]; - $alt_phone_count = $row[4]; - } - } - } - else - { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} - $VDL_cid_ct = mysql_num_rows($rslt); - if ($VDL_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_front_VDlog =$row[0]; - } - - $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias from vicidial_inbound_groups where group_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_name = $row[0]; - $VDCL_group_color = $row[1]; - $VDCL_group_web = stripslashes($row[2]); - $VDCL_fronter_display = $row[3]; - $VDCL_ingroup_script = $row[4]; - $VDCL_get_call_launch = $row[5]; - $VDCL_xferconf_a_dtmf = $row[6]; - $VDCL_xferconf_a_number = $row[7]; - $VDCL_xferconf_b_dtmf = $row[8]; - $VDCL_xferconf_b_number = $row[9]; - $VDCL_default_xfer_group = $row[10]; - $VDCL_ingroup_recording_override = $row[11]; - $VDCL_ingroup_rec_filename = $row[12]; - $VDCL_default_group_alias = $row[13]; - - - $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidOR_ct = mysql_num_rows($rslt); - if ($VDIG_cidOR_ct > 0) - { - $row=mysql_fetch_row($rslt); - if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) - {$VDCL_ingroup_script = $row[0];} - if (strlen($VDCL_xferconf_a_dtmf) < 1) - {$VDCL_xferconf_a_dtmf = $row[1];} - if (strlen($VDCL_xferconf_a_number) < 1) - {$VDCL_xferconf_a_number = $row[2];} - if (strlen($VDCL_xferconf_b_dtmf) < 1) - {$VDCL_xferconf_b_dtmf = $row[3];} - if (strlen($VDCL_xferconf_b_number) < 1) - {$VDCL_xferconf_b_number = $row[4];} - if (strlen($VDCL_default_group_alias) < 1) - {$VDCL_default_group_alias = $row[5];} - } - - $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidgwv_ct = mysql_num_rows($rslt); - if ($VDIG_cidgwv_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; - } - - if (strlen($VDCL_group_web_vars) < 1) - { - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} $VDIG_cidogwv = mysql_num_rows($rslt); if ($VDIG_cidogwv > 0) { @@ -2910,182 +4065,318 @@ if ($ACTION == 'VDADcheckINCOMING') } } - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} - - $Ctype = 'I'; - } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias from vicidial_campaigns where campaign_id='$VDADchannel_group';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) { - $row=mysql_fetch_row($rslt); - $VDCL_ingroup_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - $VDCL_default_group_alias = $row[6]; + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } } - $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send na to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidogwv = mysql_num_rows($rslt); - if ($VDIG_cidogwv > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDCL_group_web_vars = $row[0]; + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; } + else {echo '|' . $tsr . "\n";} } - $VDCL_caller_id_number=''; - if (strlen($VDCL_default_group_alias)>1) - { - $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} - $VDIG_cidnum_ct = mysql_num_rows($rslt); - if ($VDIG_cidnum_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_caller_id_number = $row[0]; - } - } - - ### if web form is set then send na to vicidial.php for override of WEB_FORM address - if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|\n";} - - $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; - if ($DB) {echo "$stmt\n";} + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} - $VDU_cid_ct = mysql_num_rows($rslt); - if ($VDU_cid_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) { $row=mysql_fetch_row($rslt); - $fronter_full_name = $row[0]; - echo $fronter_full_name . '|' . $tsr . "\n"; + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } } - else {echo '|' . $tsr . "\n";} - } - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); - $LeaD_InfO = $callerid . "\n"; - $LeaD_InfO .= $lead_id . "\n"; - $LeaD_InfO .= $dispo . "\n"; - $LeaD_InfO .= $tsr . "\n"; - $LeaD_InfO .= $vendor_id . "\n"; - $LeaD_InfO .= $list_id . "\n"; - $LeaD_InfO .= $gmt_offset_now . "\n"; - $LeaD_InfO .= $phone_code . "\n"; - $LeaD_InfO .= $phone_number . "\n"; - $LeaD_InfO .= $title . "\n"; - $LeaD_InfO .= $first_name . "\n"; - $LeaD_InfO .= $middle_initial . "\n"; - $LeaD_InfO .= $last_name . "\n"; - $LeaD_InfO .= $address1 . "\n"; - $LeaD_InfO .= $address2 . "\n"; - $LeaD_InfO .= $address3 . "\n"; - $LeaD_InfO .= $city . "\n"; - $LeaD_InfO .= $state . "\n"; - $LeaD_InfO .= $province . "\n"; - $LeaD_InfO .= $postal_code . "\n"; - $LeaD_InfO .= $country_code . "\n"; - $LeaD_InfO .= $gender . "\n"; - $LeaD_InfO .= $date_of_birth . "\n"; - $LeaD_InfO .= $alt_phone . "\n"; - $LeaD_InfO .= $email . "\n"; - $LeaD_InfO .= $security . "\n"; - $LeaD_InfO .= $comments . "\n"; - $LeaD_InfO .= $called_count . "\n"; - $LeaD_InfO .= $CBentry_time . "\n"; - $LeaD_InfO .= $CBcallback_time . "\n"; - $LeaD_InfO .= $CBuser . "\n"; - $LeaD_InfO .= $CBcomments . "\n"; - $LeaD_InfO .= $dialed_number . "\n"; - $LeaD_InfO .= $dialed_label . "\n"; - $LeaD_InfO .= $source_id . "\n"; - $LeaD_InfO .= $alt_phone_code . "\n"; - $LeaD_InfO .= $alt_phone_number . "\n"; - $LeaD_InfO .= $alt_phone_note . "\n"; - $LeaD_InfO .= $alt_phone_active . "\n"; - $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; - echo $LeaD_InfO; + echo $LeaD_InfO; - $wait_sec=0; - $StarTtime = date("U"); - $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $wait_sec = (($StarTtime - $row[0]) + $row[1]); - } - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - - ### If HOVORBK, change vicidial_callback record to INACTIVE - if (eregi("CALLBK|CBHOLD", $dispo)) - { - $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} - ##### check if system is set to generate logfile for transfers - $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $enable_agc_xfer_log_ct = mysql_num_rows($rslt); - if ($enable_agc_xfer_log_ct > 0) + ### If HOVORBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else { - $row=mysql_fetch_row($rslt); - $enable_agc_xfer_log =$row[0]; + echo "0\n"; + # echo "No calls in QUEUE for $user na $server_ip\n"; + exit; } - - if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) - { - # DATETIME|campaign|lead_id|phone_number|user|type - # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A - $fp = fopen ("./xfer_log.txt", "a"); - fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid\n"); - fclose($fp); - } - - } - else - { - echo "0\n"; - # echo "No calls in QUEUE for $user na $server_ip\n"; - exit; } } -} ################################################################################ @@ -3093,17 +4384,17 @@ if ($ACTION == 'VDADcheckINCOMING') ### inserting into vicidial_user_log ################################################################################ if ($ACTION == 'userLOGout') -{ + { $MT[0]=''; $row=''; $rowx=''; -if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) - { - echo "NO\n"; - echo "campaign $campaign or conf_exten $conf_exten Nie je správny\n"; - exit; - } -else - { + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten Nie je správny\n"; + exit; + } + else + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3115,98 +4406,101 @@ else $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - ##### Insert a ODHLÁSIŤ record into the user log - $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ODHLÁSIŤ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} - $vul_insert = mysql_affected_rows($link); - - if ($no_delete_sessions < 1) - { - ##### Remove the reservation na the vicidial_conferences meetme room - $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + ##### Insert a ODHLÁSIŤ record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ODHLÁSIŤ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} - $vc_remove = mysql_affected_rows($link); - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); - ##### Delete the vicidial_live_agents record for this session - $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $vla_delete = mysql_affected_rows($link); + if ($no_delete_sessions < 1) + { + ##### Remove the reservation na the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } - ##### Delete the vicidial_live_inbound_agents records for this session - $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} - $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); - ##### Delete the web_client_sessions - $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} - $wcs_delete = mysql_affected_rows($link); - - ##### Hangup the client phone - $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} - if ($rslt) - { - $row=mysql_fetch_row($rslt); - $agent_channel = "$row[0]"; - if ($format=='debug') {echo "\n";} - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } - if ($LogouTKicKAlL > 0) - { - $local_DEF = 'Local/5555'; - $local_AMP = '@'; - $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; - $queryCID = "ULGH3458$StarTtime"; + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; - if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) - { - $row=mysql_fetch_row($rslt); - $pause_sec = (($StarTtime - $row[0]) + $row[1]); - - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } if ($vla_delete > 0) { @@ -3276,9 +4570,9 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } } -} ################################################################################ @@ -3286,86 +4580,268 @@ else ### call disposition for that leand ################################################################################ if ($ACTION == 'updateDISPO') -{ + { $MT[0]=''; $row=''; $rowx=''; + $MAN_vl_insert=0; if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) - { - echo "Dispo Choice $dispo or lead_id $lead_id Nie je správny\n"; - exit; - } - else - { - ### update the comments in vicidial_live_agents record - $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='' where user='$user' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - - $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - - $stmt = "select count(*) from vicidial_inbound_groups where group_id='$stage';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) { - $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Dispo Choice $dispo or lead_id $lead_id Nie je správny\n"; + exit; } else { - $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by uniqueid desc limit 1;"; + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} - } + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} - if ( ($use_internal_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - } - if ( ($use_campaign_dnc=='Y') and ($dispo_choice=='DNC') ) - { - $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); - $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } } - } $dispo_sec=0; $dispo_epochSQL=''; + $lead_id_commentsSQL=''; $StarTtime = date("U"); - $stmt = "select dispo_epoch,dispo_sec,talk_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} @@ -3373,38 +4849,71 @@ if ($ACTION == 'updateDISPO') if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) { - $dispo_epochSQL=",dispo_epoch='$StarTtime'"; + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; $row[0]=$row[2]; } $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } } - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL where agent_log_id='$agent_log_id';"; + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; if ($auto_dial_level < 1) { - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } ### HOVORBACK ENTRY @@ -3420,12 +4929,15 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} } - $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign';"; + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; - if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$row[0])) ) + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) { $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; if ($DB) {echo "$stmt\n";} @@ -3435,10 +4947,80 @@ if ($ACTION == 'updateDISPO') if ($row[0] > 0) { - $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; - if ($format=='debug') {echo "\n";} + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } } } else @@ -3449,6 +5031,394 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} } + ####### SPUSTIŤ Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Užívateľ $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Posledný Attempt, Date of Posledný Non-Contact, Date of Posledný Contact, Date of Posledný Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + ############################################# ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; @@ -3456,8 +5426,7 @@ if ($ACTION == 'updateDISPO') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $enable_queuemetrics_logging = $row[0]; @@ -3466,7 +5435,6 @@ if ($ACTION == 'updateDISPO') $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; - $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### ########################################### @@ -3487,111 +5455,288 @@ if ($ACTION == 'updateDISPO') mysql_close($linkB); } + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } echo 'Lead ' . $lead_id . ' bol zmenený pre ' . $dispo_choice . " Stav\nNext agent_log_id:\n" . $agent_log_id . "\n"; -} + } ################################################################################ ### updateLEAD - update the vicidial_list table to reflect the values that are ### in the agents screen at time of call hangup ################################################################################ if ($ACTION == 'updateLEAD') -{ + { $MT[0]=''; $row=''; $rowx=''; $DO_NOT_UPDATE=0; $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) - { - echo "phone_number $phone_number or lead_id $lead_id Nie je správny\n"; - exit; - } - else - { - - $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $dac_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $dac_conf_ct) { - $row=mysql_fetch_row($rslt); - $disable_alter_custdata = $row[0]; - $disable_alter_custphone = $row[1]; - $i++; + echo "phone_number $phone_number or lead_id $lead_id Nie je správny\n"; + exit; } - if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + else { - if (ereg('Y',$disable_alter_custdata)) - { - $DO_NOT_UPDATE=1; - $DO_NOT_UPDATE_text=' NOT'; - } - if (ereg('Y',$disable_alter_custphone)) - { - $DO_NOT_UPDATEphone=1; - } - $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} - $aco_conf_ct = mysql_num_rows($rslt); + $dac_conf_ct = mysql_num_rows($rslt); $i=0; - while ($i < $aco_conf_ct) + while ($i < $dac_conf_ct) { $row=mysql_fetch_row($rslt); - $alter_custdata_override = $row[0]; - $alter_custphone_override = $row[1]; + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; $i++; } - if (ereg('ALLOW_ALTER',$alter_custdata_override)) + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) { - $DO_NOT_UPDATE=0; - $DO_NOT_UPDATE_text=''; + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } } - if (ereg('ALLOW_ALTER',$alter_custphone_override)) + + if ($DO_NOT_UPDATE < 1) { - $DO_NOT_UPDATEphone=0; + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} } - } - if ($DO_NOT_UPDATE < 1) - { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - - $phoneSQL=''; - if ($DO_NOT_UPDATEphone < 1) - {$phoneSQL = ",phone_number='$phone_number'";} - - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } - - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } - echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; -} ################################################################################ @@ -3599,35 +5744,40 @@ if ($ACTION == 'updateLEAD') ### or ready now active and ready to take calls ################################################################################ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) -{ + { $MT[0]=''; $row=''; $rowx=''; if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) - { - echo "stage $stage Nie je správny\n"; - exit; - } + { + echo "stage $stage Nie je správny\n"; + exit; + } else - { - $random = (rand(1000000, 9999999) + 10000000); - $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} $retry_count=0; while ( ($errno > 0) and ($retry_count < 9) ) { @@ -3637,37 +5787,123 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $one_mysql_log=0; $retry_count++; } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - ############################################# - ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $i++; - } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ($enable_queuemetrics_logging > 0) - { - if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} - if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { $user_group=''; $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; $rslt=mysql_query($stmt, $link); @@ -3680,262 +5916,585 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $user_group = trim("$row[0]"); } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); - - mysql_close($linkB); - } - } - - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dispo_epoch = $row[4]; - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} - - } - if ($ACTION == 'VDADready') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - } - if ($ACTION == 'VDADpause') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); } - - $agent_log = 'NEW_ID'; } - - if ($wrapup == 'WRAPUP') - { - if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) - { - $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; - } - else - { - $dispo_sec = ($StarTtime - $dispo_epoch); - $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; - } - - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} - } - - if ($agent_log == 'NEW_ID') - { - $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } - - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); - } - } echo 'Agent ' . $user . ' je teraz v stave ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; -} + } ################################################################################ ### UpdatEFavoritEs - update the astguiclient favorites list for this extension ################################################################################ if ($ACTION == 'UpdatEFavoritEs') -{ + { $row=''; $rowx=''; $channel_live=1; if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) - { - echo "favorites list $favorites_list Nie je správny\n"; - exit; - } + { + echo "favorites list $favorites_list Nie je správny\n"; + exit; + } else - { - $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); - if ($row[0] > 0) - { - $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} - } - else - { - $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } } + echo "Favorites list has been updated to $favorites_list for $exten\n"; } - echo "Favorites list has been updated to $favorites_list for $exten\n"; -} ################################################################################ ### PauseCodeSubmit - Update vicidial_agent_log with pause code ################################################################################ if ($ACTION == 'PauseCodeSubmit') -{ + { $row=''; $rowx=''; if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) - { - echo "agent_log_id $agent_log_id or pause_code $status Nie je správny\n"; - exit; - } - else - { - $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) { - ############################################# - ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + echo "agent_log_id $agent_log_id or pause_code $status Nie je správny\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $qm_conf_ct = mysql_num_rows($rslt); - $i=0; - while ($i < $qm_conf_ct) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pauza Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo "
FAVORIZOVANÉ       upraviť
"; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Hovorov v zobrazení frontu Zakázané pre túto kampaň\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data na calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) { $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging = $row[0]; - $queuemetrics_server_ip = $row[1]; - $queuemetrics_dbname = $row[2]; - $queuemetrics_login = $row[3]; - $queuemetrics_pass = $row[4]; - $queuemetrics_log_id = $row[5]; - $allow_sipsak_messages = $row[6]; - $i++; + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; } - ##### END QUEUEMETRICS LOGGING LOOKUP ##### - ########################################### - if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) { - $SIPSAK_prefix = 'BK-'; - passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; } - if ($enable_queuemetrics_logging > 0) + $loop_count=0; + while ($calls_count > $loop_count) { - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } - $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($linkB); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - mysql_close($linkB); + ### Print call information and gather more info na the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           HOVOR GROUP     TYPE  
TAKE HOVOR     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Hovorov v zobrazení frontu Zakázané pre túto kampaň\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; } } } -echo " Pauza Code has been updated to $status for $agent_log_id\n"; -} ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKLisT') -{ -$stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD') order by callback_time;"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} -if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} -echo "$callbacks_count\n"; -$loop_count=0; - while ($callbacks_count>$loop_count) { - $row=mysql_fetch_row($rslt); - $callback_id[$loop_count] = $row[0]; - $lead_id[$loop_count] = $row[1]; - $campaign_id[$loop_count] = $row[2]; - $status[$loop_count] = $row[3]; - $entry_time[$loop_count] = $row[4]; - $callback_time[$loop_count] = $row[5]; - $comments[$loop_count] = $row[6]; - $loop_count++; - } -$loop_count=0; - while ($callbacks_count>$loop_count) - { - $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } - echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; - $loop_count++; } -} - ################################################################################ ### CalLBacKCounT - send the count of the USERONLY callbacks for an agent ################################################################################ if ($ACTION == 'CalLBacKCounT') -{ -$stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' and campaign_id='$campaign' and status NOT IN('INACTIVE','DEAD');"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} -$row=mysql_fetch_row($rslt); -$cbcount=$row[0]; + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; -echo "$cbcount"; -} + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } @@ -3944,7 +6503,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); -echo "\n"; +echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_sk/vdc_script_display.php b/LANG_www/agc_sk/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_sk/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_sk/vicidial.php b/LANG_www/agc_sk/vicidial.php index d9b95a83..41758510 100644 --- a/LANG_www/agc_sk/vicidial.php +++ b/LANG_www/agc_sk/vicidial.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # Other scripts that this application depends on: # - vdc_db_query.php: Updates information in the database # - manager_send.php: Sends manager actions to the DB for execution # - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables # # CHANGELOG # 50607-1426 - First Build of VICIDIAL web client basic login process finished @@ -35,7 +36,6 @@ # 50817-1113 - Fixes to auto_dialing call receipt # 50817-1234 - Added inbound call receipt capability # 50817-1541 - Added customer time display -# 50817-1541 - Added customer time display # 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option # 50818-1703 - Added pretty login section # 50825-1200 - Modified form field lengths, added double-click dispositions @@ -222,19 +222,69 @@ # 90304-1333 - Added user-specific web vars option # 90305-0917 - Added prefix-choice and group-alias options for calls coming from API # 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 # 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions # -$version = '2.0.5-202'; -$build = '90320-0309'; +$version = '2.2.0-247'; +$build = '100107-0108'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=60; +$mysql_log_count=64; $one_mysql_log=0; require("dbconnect.php"); if (isset($_GET["DB"])) {$DB=$_GET["DB"];} elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} @@ -249,43 +299,43 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} - if (!isset($phone_login)) - { - if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} - elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} - } - if (!isset($phone_pass)) - { - if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} - elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} - } - if (isset($VD_campaign)) - { - $VD_campaign = strtoupper($VD_campaign); - $VD_campaign = eregi_replace(" ",'',$VD_campaign); - } - if (!isset($flag_channels)) - { - $flag_channels=0; - $flag_string=''; - } +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } ### security strip all non-alphanumeric characters out of the variables ### - $DB=ereg_replace("[^0-9a-z]","",$DB); - $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); - $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); - $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); - $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); - $VD_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$VD_campaign); +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); $forever_stop=0; if ($force_logout) -{ + { echo "Práve ste sa odhlásili, Ďakujeme\n"; exit; -} + } $isdst = date("I"); $StarTtimE = date("U"); @@ -294,23 +344,22 @@ $tsNOW_TIME = date("YmdHis"); $FILE_TIME = date("Ymd-His"); $loginDATE = date("Ymd"); $CIDdate = date("ymdHis"); - $month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); - $past_month_date = date("Y-m-d H:i:s",$month_old); - $minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); - $past_minutes_date = date("Y-m-d H:i:s",$minutes_old); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -322,8 +371,8 @@ while ($i < $qm_conf_ct) $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; $outbound_autodial_active = $row[8]; - - $i++; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -342,12 +391,12 @@ $view_scripts = '1'; # set to 1 to show the SCRIPTS tab $dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo $callholdstatus = '1'; # set to 1 to show calls na hold count $agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count - $campagentstatctmax = '3'; # Number of sekúnd for campaign call and agent stats + $campagentstatctmax = '3'; # Number ofsekúnd for campaign call and agent stats $show_campname_pulldown = '1'; # set to 1 to show campaign name na login pulldown $webform_sessionname = '1'; # set to 1 to include the session_name in webform URL $local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server $clientDST = '1'; # set to 1 to check for DST na server for agent time -$no_delete_sessions = '0'; # set to 1 to not delete sessions at logout +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels $PreseT_DiaL_LinKs = '0'; # set to 1 to show a VOLAŤ link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups na campaigns for login @@ -361,10 +410,12 @@ $disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from t $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window $BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 $BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 $MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; # options now set in DB: #$alt_phone_dialing = '1'; # allow agents to call alt phone numbers @@ -372,32 +423,6 @@ $SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 # $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks #$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session -### SCREEN WIDTH AND HEIGHT CALCULATIONS ### -### DO NOT EDIT! ### -$MASTERwidth=($BROWSER_WIDTH - 340); -$MASTERheight=($BROWSER_HEIGHT - 200); -if ($MASTERwidth < 430) {$MASTERwidth = '430';} -if ($MASTERheight < 300) {$MASTERheight = '300';} - -$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) -$MNwidth = ($MASTERwidth + 330); # 760 - main frame -$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference -$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks -$AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links -$SCwidth = ($MASTERwidth + 230); # 670 - live call sekúnd counter -$SSwidth = ($MASTERwidth + 176); # 606 - scroll script -$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session -$HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button -$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer - -$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button -$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links -$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons -$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status -$SSheight = ($MASTERheight + 31); # 331 - script content -$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey -$BPheight = ($MASTERheight - 250); # 50 - bottom buffer - $US='_'; $CL=':'; @@ -416,182 +441,230 @@ else {$server_port = "$CL$server_port";} $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 echo "\n"; echo "\n"; echo "\n"; +echo "\n"; if ($campaign_login_list > 0) -{ -$camp_form_code = "\n"; + $camp_form_code .= "\n"; -$LOGallowed_campaignsSQL=''; -if ($relogin == 'YES') -{ - $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $LOGallowed_campaignsSQL=''; + if ($relogin == 'YES') + { + $stmt="SELECT user_group from vicidial_users where user='$VD_login' and pass='$VD_pass';"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group=$row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + } + + ### code for manager override of shift restrictions + if ($MGR_override > 0) + { + if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} + elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} + if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} + elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} + + $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $MGR_auth=$row[0]; + + if($MGR_auth>0) + { + $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} + echo "\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER prepísať OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01002',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $VU_user_group=$row[0]; + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); - $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01003',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + $o=0; + while ($camps_to_print > $o) { - $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); - $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); - $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; - } -} - -### code for manager override of shift restrictions -if ($MGR_override > 0) - { - if (isset($_GET["MGR_login$loginDATE"])) {$MGR_login=$_GET["MGR_login$loginDATE"];} - elseif (isset($_POST["MGR_login$loginDATE"])) {$MGR_login=$_POST["MGR_login$loginDATE"];} - if (isset($_GET["MGR_pass$loginDATE"])) {$MGR_pass=$_GET["MGR_pass$loginDATE"];} - elseif (isset($_POST["MGR_pass$loginDATE"])) {$MGR_pass=$_POST["MGR_pass$loginDATE"];} - - $stmt="SELECT count(*) from vicidial_users where user='$MGR_login' and pass='$MGR_pass' and manager_shift_enforcement_override='1' and active='Y';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01058',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $row=mysql_fetch_row($rslt); - $MGR_auth=$row[0]; - - if($MGR_auth>0) - { - $stmt="UPDATE vicidial_users SET shift_override_flag='1' where user='$VD_login' and pass='$VD_pass';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01059',$VD_login,$server_ip,$session_name,$one_mysql_log);} - print "\n"; - - ### Add a record to the vicidial_admin_log - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$MGR_login', ip_address='$ip', event_section='AGENT', event_type='OVERRIDE', record_id='$VD_login', event_code='MANAGER prepísať OF AGENT SHIFT ENFORCEMENT', event_sql=\"$SQL_log\", event_notes='user: $VD_login';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01060',$VD_login,$server_ip,$session_name,$one_mysql_log);} - } - } - - -$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; -if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} -$rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01004',$VD_login,$server_ip,$session_name,$one_mysql_log);} -$camps_to_print = mysql_num_rows($rslt); - -$o=0; -while ($camps_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - if ($show_campname_pulldown) - {$campname = " - $rowx[1]";} - else - {$campname = '';} - if ($VD_campaign) - { - if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) - {$camp_form_code .= "\n";} + $rowx=mysql_fetch_row($rslt); + if ($show_campname_pulldown) + {$campname = " - $rowx[1]";} + else + {$campname = '';} + if ($VD_campaign) + { + if ( (eregi("$VD_campaign",$rowx[0])) and (strlen($VD_campaign) == strlen($rowx[0])) ) + {$camp_form_code .= "\n";} + else + { + if (!ereg('login_allowable_campaigns',$camp_form_code)) + {$camp_form_code .= "\n";} + } + } else { if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} + {$camp_form_code .= "\n";} } + $o++; } - else - { - if (!ereg('login_allowable_campaigns',$camp_form_code)) - {$camp_form_code .= "\n";} - } - $o++; + $camp_form_code .= "\n"; } -$camp_form_code .= "\n"; -} else -{ -$camp_form_code = "\n"; -} + { + $camp_form_code = "\n"; + } if ($LogiNAJAX > 0) -{ -?> + { + ?> - + function browser_dimensions() + { + getInsideBrowse(); -= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + logincampaign_query = "&user=" + document.vicidial_form.VD_login.value + "&pass=" + document.vicidial_form.VD_pass.value + "&ACTION=LogiNCamPaigns&format=html"; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(logincampaign_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + Nactiveext = null; + Nactiveext = xmlhttp.responseText; + // alert(logincampaign_query); + // alert(xmlhttp.responseText); + document.getElementById("LogiNCamPaigns").innerHTML = Nactiveext; + document.getElementById("LogiNReseT").innerHTML = ""; + document.getElementById("VD_campaign").focus(); + } + } + delete xmlhttp; + } + } + // --> + + + + + + + web klient VICIDIAL: Znova prihlásiť\n"; +echo "Agent web client: Znova prihlásiť\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Slovensky
\n"; echo "
\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -621,15 +694,17 @@ if ($user_login_first == 1) { if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) { - echo "web klient VICIDIAL: Prihlásenie kampane\n"; + echo "Agent web client: Prihlásenie kampane\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Znova prihlásiť
\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Slovensky
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; #echo "\n"; #echo "\n"; echo "

Meno užívateľa

"; @@ -665,15 +740,17 @@ echo "
web klient VICIDIAL: Prihlásiť\n"; + echo "Agent web client: Prihlásiť\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Slovensky
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "


"; echo ""; echo ""; @@ -704,15 +781,17 @@ echo "
Prihlásiť web klient VICIDIAL: Prihlásenie telefónu\n"; +echo "Agent web client: Prihlásenie telefónu\n"; echo "\n"; -echo "\n"; +echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n";echo "
English Slovensky
\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "


"; echo ""; echo ""; @@ -755,7 +834,7 @@ $VDloginDISPLAY=0; $login=strtoupper($VD_login); $password=strtoupper($VD_pass); ##### grab the full name of the agent - $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -775,12 +854,21 @@ $VDloginDISPLAY=0; $VU_alert_enabled = $row[13]; $VU_agent_shift_enforcement_override = $row[14]; $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; - if ($VU_alert_enabled > 0) {$VU_alert_enabled = 'ON';} + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; ### Gather timeclock and shift enforcement restriction settings - $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); @@ -789,6 +877,16 @@ $VDloginDISPLAY=0; $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) @@ -840,7 +938,7 @@ $VDloginDISPLAY=0; $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} $shifts_to_print = mysql_num_rows($rslt); $o=0; @@ -898,8 +996,8 @@ $VDloginDISPLAY=0; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; $VDdisplayMESSAGE.= "\n"; - $VDdisplayMESSAGE.= "Manager Prihlásiť:
\n"; - $VDdisplayMESSAGE.= "Manager Heslo:
\n"; + $VDdisplayMESSAGE.= "ManažérPrihlásiť:
\n"; + $VDdisplayMESSAGE.= "ManažérHeslo:
\n"; $VDdisplayMESSAGE.= "\n"; } } @@ -907,10 +1005,6 @@ $VDloginDISPLAY=0; - - - - if ($WeBRooTWritablE > 0) { fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); @@ -928,9 +1022,9 @@ $VDloginDISPLAY=0; if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) { - echo "web klient VICIDIAL: VICIDIAL Prihlásenie kampane\n"; + echo "Agent web client: Prihlásenie kampane\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "
Prihlásenie telefónu
\n"; echo "\n"; @@ -938,6 +1032,8 @@ echo "
Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; echo "
\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Prihlásiť: \n
"; @@ -1034,56 +1130,133 @@ echo "
0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = stripslashes($row[2]); - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_sekúnd = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; - $campaign_allow_inbound = $row[29]; - $manual_dial_list_id = $row[30]; - $default_xfer_group = $row[31]; - $xfer_groups = $row[32]; - $disable_alter_custphone = $row[33]; - $display_queue_count = $row[34]; - $manual_dial_filter = $row[35]; - $CopY_tO_ClipboarD = $row[36]; - $use_campaign_dnc = $row[37]; - $three_way_call_cid = $row[38]; - $dial_method = $row[39]; - $three_way_dial_prefix = $row[40]; - $web_form_target = $row[41]; - $vtiger_screen_login = $row[42]; - $agent_allow_group_alias = $row[43]; - $default_group_alias = $row[44]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PZNOVU INCIALIZOVAŤ_1|PZNOVU INCIALIZOVAŤ_2|PZNOVU INCIALIZOVAŤ_3|PZNOVU INCIALIZOVAŤ_4|PZNOVU INCIALIZOVAŤ_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PZNOVU INCIALIZOVAŤ_1|PZNOVU INCIALIZOVAŤ_2|PZNOVU INCIALIZOVAŤ_3|PZNOVU INCIALIZOVAŤ_4|PZNOVU INCIALIZOVAŤ_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PZNOVU INCIALIZOVAŤ_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } $default_group_alias_cid=''; if (strlen($default_group_alias)>1) @@ -1100,7 +1273,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1114,7 +1287,7 @@ echo " 0) ) { $campaign_recording = $VU_vicidial_recording_override; - print "\n"; + echo "\n"; } if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) {$scheduled_callbacks='1';} @@ -1166,10 +1339,10 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1184,6 +1357,29 @@ echo " 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } ##### grab the allowable inbound groups to choose from for transfer options $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); @@ -1193,7 +1389,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1245,7 +1441,7 @@ echo "\n"; + echo "\n"; } else @@ -1267,15 +1463,17 @@ echo "web klient VICIDIAL: Prihlásenie kampane\n"; + echo "Agent web client: Prihlásenie kampane\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Slovensky
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "

$VDdisplayMESSAGE

"; @@ -1300,6 +1498,8 @@ echo "
2) ) else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} $authphone=0; -$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1355,15 +1556,17 @@ $row=mysql_fetch_row($rslt); $authphone=$row[0]; if (!$authphone) { - echo "web klient VICIDIAL: Prihlásenie telefónu Error\n"; + echo "Agent web client: Prihlásenie telefónu Error\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; echo "\n";echo "\n"; echo "
English Slovensky
\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1413,7 +1616,7 @@ else $row=mysql_fetch_row($rslt); ### find out whether the server is set to active - $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y';"; + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1441,8 +1644,8 @@ else } echo "\n"; } - echo "web klient VICIDIAL\n"; - $stmt="SELECT * from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -1510,6 +1713,11 @@ else $outbound_cid=$row[65]; $enable_sipsak_messages=$row[66]; + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } if ($TelefónSComPIP == '1') { if (strlen($computer_ip) < 4) @@ -1555,35 +1763,48 @@ else { $VICIDiaL_park_on_extension = "$park_ext"; $VICIDiaL_park_on_filename = "$park_file_name"; - print "\n"; + echo "\n"; } - print "\n"; + echo "\n"; # If a web form address is not set, use the default one if (strlen($web_form_address)>0) { $VICIDiaL_web_form_address = "$web_form_address"; - print "\n"; + echo "\n"; } else { $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; print "\n"; $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); - } $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + # If closers are allowed na this campaign if ($allow_closers=="Y") { $VICIDiaL_allow_closers = 1; - print "\n"; + echo "\n"; } else { $VICIDiaL_allow_closers = 0; - print "\n"; + echo "\n"; } @@ -1607,7 +1828,7 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1629,7 +1850,7 @@ else $i++; } if ($prev_login_ct > 0) - {print "\n";} + {echo "\n";} else { ##### grab the next available vicidial_conference room and reserve it @@ -1645,14 +1866,14 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$user') );"; + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} $row=mysql_fetch_row($rslt); $session_id = $row[0]; } - print "\n"; + echo "\n"; } ### mark leads that were not dispositioned during previous calls as ERI @@ -1661,30 +1882,30 @@ else $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; - # print "You have logged in as user: $VD_login na phone: $SIP_user do kampane: $VD_campaign
\n"; + # echo "You have logged in as user: $VD_login na phone: $SIP_user do kampane: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; ### set the callerID for manager middleware-app to connect the phone to the user @@ -1715,54 +1936,56 @@ else if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) { $SIPSAK_prefix = 'LIN-'; - print "\n"; + echo "\n"; passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; } ### insert a NOVÁ record to the vicidial_manager table to be processed - $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; + + ##### grab the campaign_weight and number of calls today na that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } if ($auto_dial_level > 0) { - print "\n"; + echo "\n"; + - ##### grab the campaign_weight and number of calls today na that campaign for the agent - $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $vca_ct = mysql_num_rows($rslt); - if ($vca_ct > 0) - { - $row=mysql_fetch_row($rslt); - $campaign_weight = $row[0]; - $calls_today = $row[1]; - $i++; - } - else - { - $campaign_weight = '0'; - $calls_today = '0'; - $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - print "\n"; - } $closer_chooser_string=''; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1774,21 +1997,21 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); } - if ($campaign_allow_inbound == 'Y') + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) { print "\n"; } @@ -1797,12 +2020,12 @@ else { print "\n"; - $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level');"; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); - print "\n"; + echo "\n"; if ($enable_queuemetrics_logging > 0) { @@ -1814,14 +2037,14 @@ else $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($linkB); - print "\n"; + echo "\n"; mysql_close($linkB); mysql_select_db("$VARDB_database", $link); @@ -1830,9 +2053,9 @@ else } else { - echo "web klient VICIDIAL: VICIDIAL Prihlásenie kampane\n"; + echo "Agent web client: Prihlásenie kampane\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1840,6 +2063,8 @@ echo "
Prepáčte, ale nie sú záznamy v zásobníku pre túto kamaň\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Prihlásiť: \n
"; @@ -1854,9 +2079,9 @@ echo "
web klient VICIDIAL: VICIDIAL Prihlásenie kampane\n"; + echo "Agent web client: Prihlásenie kampane\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "Timeclock
\n"; echo "\n"; echo "\n"; @@ -1864,6 +2089,8 @@ echo "
Sorry, there are no available sessions\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "Prihlásiť: \n
"; @@ -1880,12 +2107,12 @@ echo "
\n"; + echo "\n"; } else { $useIE=0; - print "\n"; + echo "\n"; } $StarTtimE = date("U"); @@ -1897,7 +2124,38 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} $affected_rows = mysql_affected_rows($link); $agent_log_id = mysql_insert_id($link); - print "\n"; + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; if ($DB) {echo "$stmt\n";} @@ -1918,7 +2176,7 @@ echo " 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1929,19 +2187,64 @@ echo " 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsekúnd counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + ################################################################ ### BEGIN - build the callback calendar (12 months) ### ################################################################ @@ -2033,7 +2336,7 @@ for( $Ccount=0;$Ccount<(6*7);$Ccount++) $CDCLR="#ffffff"; if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) { - $CDCLR="#CCCCCC"; + $CDCLR="$MAIN_COLOR"; $CBL = ''; $CEL = ''; } @@ -2074,10 +2377,10 @@ $CCAL_OUT .= "
"; ?> @@ -7964,7 +10383,8 @@ else -\n"; @@ -7996,24 +10416,25 @@ echo "\n"; - MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT>
- +     - 0) {echo "GROUPS     \n";} ?> -ODHLÁSIŤ\n"; ?> + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +ODHLÁSIŤ\n"; ?>
- height=30> +
height=30> - + - +
VICIDIALMAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     ID relácie:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Živý hovor
@@ -8021,27 +10442,27 @@ echo "\n"; - height=>

VICIDIAL
+ height=>

Agent Screen
- + RUČNÉ VOLANIE       RÝCHLE VOLANIE
- + X AKTÍVNE PREPLÁNOVANÉ HOVORY
- +
- sekúnd: +sekúnd:     - - px;top:px;z-index:22;" id="AgentMuteANDPreseTDiaL"> + D1 - VOLAŤ\n"; @@ -8050,12 +10471,11 @@ echo "\n"; } else {echo "
\n";} ?> -

-
+

 
- - height=460>
PREPLÁNOVANÉ HOVORY PRE AGENTA :
Kliknite na preplánovanie hovoru na volanie zákaznikovi znova. Ak kliknete na záznam nižšie budete ho volať a bude odstránený zo zoznamu. + + height=460>
PREPLÁNOVANÉ HOVORY PRE AGENTA :
Kliknite na preplánovanie hovoru na volanie zákaznikovi znova. Ak kliknete na záznam nižšie budete ho volať a bude odstránený zo zoznamu.

  @@ -8065,16 +10485,16 @@ echo "\n";
- - height=460>
NOVÉ manuálne vytáčanie pre zoznam kontaktov :

Zadajte nižšie uvedené informácie pre nový zoznam kontaktov, ktorý chcete volať. + + height=460>
NOVÉ manuálne vytáčanie pre zoznam kontaktov :

Zadajte nižšie uvedené informácie pre nový zoznam kontaktov, ktorý chcete volať.
- \n"; } ?> - Note: all new manual dial leads will go into list

+ Note: all new manual dial leads will go into list

@@ -8109,46 +10529,88 @@ echo "\n"; -
+
- + Váš stav:
Calls Dialing:
- -
Volať kód:   (To je obvykle 1 v USA-Kanada)
> -
+ + > + + @@ -8156,32 +10618,68 @@ Váš stav:
Calls Dialing: px;z-index:23;" id="HotKeyActionBox"> -
- Presmerovanie - Konferencia            
+ Presmerovanie - Konferencia            
+ + + + + + - LOKALNE ROZSIRENIE - Zložiť Xfer linku - Zložiť obe linky + + + + + -
- - Číslo na volanie   + + + + + -
+ + + + +
+ + LOKALNE ROZSIRENIE     + + Zložiť Xfer linku +
+ seconds +   + channel + + PORADNÝ   + + Zložiť obe linky +
+ Číslo na volanie +   +   - PREPISAT VOLANIE   - PONECHAT 3 CESTNE VOLANIE - Volať slepé presmerovanie - D1 - D2 + + PREPISAT VOLANIE + + PONECHAT 3 CESTNE VOLANIE +
+ Volať slepé presmerovanie +   + Volanie so zákazníkom +   + Zaparkovať hovor so zákazníkom +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
- sekúnd   - channel - Volanie so zákazníkom - Zaparkovať hovor so zákazníkom - Blind Transfer VMail Message
height=70> + +
 Hovorov vo fronte:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Skryť žiada, aby vo fronte\n";} + else + {echo "Zobraziť žiada, aby vo fronte\n";} + } +?> + + + +
  +Ostatné zástupcovia Stav:  
 
+ +
+Dostupných prostriedkov Transfer:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70>
Kontakty pripravené ako:

-
- - height=70> + +
height=70>
Rozloženie horúcich kláves: Keď je aktívne, jednoducho stlačte na klávesnici tlačidlo pre požadovanú dispozíciu pre tento hovor. Hovor bude potom ukončený automaticky:
- + - + - +
- - height=70> + +
height=70> @@ -8197,8 +10695,8 @@ Váš stav:
Calls Dialing: px;z-index:26;" id="EAcommentsBox"> -
Predchádzajúca informácia o preplánovaní hovoru: close
height=70> + +
height=70> @@ -8214,67 +10712,72 @@ Váš stav:
Calls Dialing: px;z-index:27;" id="EAcommentsMinBox"> +
Rozšírená Alt Telefón Informácie: minimalizovať
maximalizovať
Alt Telefón Info
- - height=500>
Nikto nie je vo Vašej relácii:
+ + height=500>
Nikto nie je vo Vašej relácii:
Vrátiť späť

Volať agenta znova
- - height=500>
Zákazník položil:
+ + height=500>
Zákazník položil:
Vrátiť späť

Ukončenie a umiestnenie hovoru -
- - height=550>
Volanie Wrapup: sekúnd zostávajúcich na wrapup

- + + height=550>
Volanie Wrapup: sekúnd zostávajúcich na wrapup

+

Dokončiť Wrapup a presunúť na -
- - height=500>
Vaša relácia bola ukončená
ODHLÁSIŤ

Vrátiť späť + +
+


+ Zavrieť správu +
+
+ + + height=500>
Vaša relácia bola ukončená
ODHLÁSIŤ

Vrátiť späť
- - height=500>
Je synchronizácia času problém s vašim systémom, povedzte to, prosím, správcu systému


Vrátiť späť + + height=500>
Je synchronizácia času problém s vašim systémom, povedzte to, prosím, správcu systému


Vrátiť späť
- - height=500>

ODHLÁSIŤ
+ + height=500>

ODHLÁSIŤ
- +
- +
 
- - height=47>
Všetky zmeny vykonané v informáciách o zákazníkovi teraz , budú vykonané, musíte zmeniť informácie o zákazníkovi pred ukončením hovoru.
+ + height=47>
Všetky zmeny vykonané v informáciách o zákazníkovi teraz , budú vykonané, musíte zmeniť informácie o zákazníkovi pred ukončením hovoru.
- - height=460>
VYKONANIE HOVORU :       Položte znova       minimalizovať
+ + height=460>
VYKONANIE HOVORU :       Položte znova       minimalizovať
Ukončenie hovoru vybranej dispozície
PAUZA VOLAJUCEHO AGENTA
@@ -8286,27 +10789,27 @@ Váš stav:
Calls Dialing: - height=460>
VYBRAŤ KÓD PAUZY :
+ + height=460>
VYBRAŤ KÓD PAUZY :
Pauza Code Selection

 
- - height=460>
VYBER GROUP ALIAS :
+ + height=460>
VYBER GROUP ALIAS :
Skupina Alias Výber

 
- + - - height=460>
Vyberte dátum preplánovania hovoru :
+ + height=460>
Vyberte dátum preplánovania hovoru :
Vyberte dátum nižšie   @@ -8346,28 +10849,28 @@ Váš stav:
Calls Dialing: LEN MOJE PREPLÁNOVANÉ HOVORY
";} ?> Poznámky CB:

POTVRDIŤ

- +

 
- - height=460>
Užší výber prichádzajúce skupiny
+ + height=460>
Užší výber prichádzajúce skupiny
Užší výber prichádzajúce skupiny
- 0) and ($disable_blended_checkbox < 1) ) + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) { ?> ZMIESANE VOLANIE(Odchádzaúce volanie aktivované)
- ZNOVU INCIALIZOVAŤ | @@ -8376,37 +10879,53 @@ Váš stav:
Calls Dialing: + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ ZNOVU INCIALIZOVAŤ | + POTVRDIŤ +



  +
+
+ + Kanál Kanál - LEN MOJE PREPLÁNOVANÉ HOVORY
";} - if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) {echo " ZMIESANE VOLANIE
";} ?>
- - height=>
VICIDIAL SCRIPT
+ + height=>
AGENT SCRIPT
+
+ + +refresh - 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> -NEAKTÍVNE RÝCHLE TLAČIDLÁ - + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +NEAKTÍVNE RÝCHLE TLAČIDLÁ + - ->
verzia web klient VICIDIAL:     POSTAVENÉ:               Server:              
-Ukázať informáciu o konferenčnom kanále

 
+ +>
Agent web-client version:     POSTAVENÉ:               Server:              
+ +Ukázať informáciu o konferenčnom kanále +

 
- 0) ) {echo "Alert is ON";} else @@ -8415,7 +10934,7 @@ else
- +
@@ -8424,7 +10943,7 @@ else - id="MainTable"> +
id="MainTable"> - - @@ -8572,7 +11111,7 @@ else - - - - - - diff --git a/LANG_www/agc_sk/voicemail_check.php b/LANG_www/agc_sk/voicemail_check.php index 98f22051..71705ac9 100644 --- a/LANG_www/agc_sk/voicemail_check.php +++ b/LANG_www/agc_sk/voicemail_check.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # This script is designed purely to check whether the voicemail box on the server defined has new and old messages # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -22,6 +22,7 @@ # 50711-1201 - removed HTTP authentication in favor of user/pass vars # 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags # require("dbconnect.php"); @@ -131,7 +132,7 @@ if ($format=='debug') { $ENDtime = date("U"); $RUNtime = ($ENDtime - $StarTtime); - echo "\n"; + echo "\n"; echo "\n\n\n"; } diff --git a/LANG_www/agc_tw/active_list_refresh.php b/LANG_www/agc_tw/active_list_refresh.php new file mode 100644 index 00000000..ac16bc42 --- /dev/null +++ b/LANG_www/agc_tw/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 50711-1209 - removed HTTP authentication in favor of user/pass vars +# 60421-1155 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["field_name"];} + elseif (isset($_POST["field_name"])) {$field_name=$_POST["field_name"];} + +### security strip all non-alphanumeric characters out of the variables ### + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $ADD=ereg_replace("[^0-9]","",$ADD); + $order=ereg_replace("[^0-9a-zA-Z]","",$order); + $format=ereg_replace("[^0-9a-zA-Z]","",$format); + $bgcolor=ereg_replace("[^\#0-9a-zA-Z]","",$bgcolor); + $txtcolor=ereg_replace("[^\#0-9a-zA-Z]","",$txtcolor); + $txtsize=ereg_replace("[^0-9a-zA-Z]","",$txtsize); + $selectsize=ereg_replace("[^0-9a-zA-Z]","",$selectsize); + $selectfontsize=ereg_replace("[^0-9a-zA-Z]","",$selectfontsize); + $selectedext=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$selectedext); + $selectedtrunk=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$selectedtrunk); + $selectedlocal=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$selectedlocal); + $textareaheight=ereg_replace("[^0-9a-zA-Z]","",$textareaheight); + $textareawidth=ereg_replace("[^0-9a-zA-Z]","",$textareawidth); + $field_name=ereg_replace("[^ \#\*\:\/\@\.\-\_0-9a-zA-Z]","",$field_name); + +# default optional vars if not set +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "清單顯示: "; +if ($ADD==1) {echo "進線分機";} +if ($ADD==2) {echo "忙線分機";} +if ($ADD==3) {echo "外線";} +if ($ADD==4) {echo "區域分機";} +if ($ADD==5) {echo "會議";} +if ($ADD==99999) {echo "協助";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "
STAV:
@@ -8434,7 +10953,7 @@ else ALTER. ČÍSLO TELEFÓNU
-Spustiť nahrávanie
+Spustiť nahrávanie

Web formulár
+ 0) + {echo "\"Web
\n";} +?>
-Zaparkovaný hovor
-Presmerovanie - Konferencia
+Zaparkovaný hovor
+Presmerovanie - Konferencia
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + +
Zložiť zákazníka

-
Poslať DTMF

+
Poslať DTMF

align=left valign=top> + align=left valign=top> + + @@ -8510,8 +11049,8 @@ ID NAHRÁVKY:
Telefón: -                     "; echo ""; @@ -8536,7 +11075,7 @@ else Poznámky: -\n";} else @@ -8554,7 +11093,7 @@ else
> +
>  
 
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/LANG_www/agc_tw/astguiclient.php b/LANG_www/agc_tw/astguiclient.php new file mode 100644 index 00000000..62e2fc72 --- /dev/null +++ b/LANG_www/agc_tw/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 60421-1357 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1103 - Added variable filters to close security holes for login form +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### security strip all non-alphanumeric characters out of the variables ### + $DB=ereg_replace("[^0-9a-z]","",$DB); + $phone_login=ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + + +if ($force_logout) + { + if( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "您已成功登出系統\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "astGUIclient web client: 登入\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入
 
使用者登入:
使用者密碼:
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "astGUIclient web client: 登入分機\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English 中文繁體
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
登入分機
 
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "astGUIclient web client: 登入分機\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入分機
 
抱歉,分機所輸入的帳號密碼於系統中尚未啟用,請再試一次:
 
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "astGUIclient web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +登出
\n"; ?> +
主控台現行線路控制台電話會議控制台檢視語音信箱通話中電話
+
+ + +

Logout
+
+ + +
TRUNK 掛斷

+ Active Trunks Menu
+ 掛斷 Trunk   |   + 介入 Trunk   |   + 監聽 Trunk   |   + 更新   |   + 回主畫面 +
+
+ + +
LOCAL 掛斷

+ 啟用Local畫面
+ 掛斷 Local   |   + 介入 Local   |   + 監聽 Local   |   + 更新   |   + 回主畫面 +
+
+ + + + + + + +
來電轉接
通話已被轉接: 渠道
分機:
分機表
+
+ 傳送給所選分機

+ 傳送給所選語音信箱

+ 傳送至該號碼:


+ 更新


+ 回主畫面

+
會議:
(點選號碼以送出會議邀請n)
傳送我的CHANNEL
電話會議功能
+
+ + + + + +
撥給LOCAL分機
電話來源: 渠道
分機:
分機表
+
+ 撥打所選分機

+ 撥打所選語音信箱

+ 更新


+ 回主畫面

+
+
+ + +
駐留ED 撥號S:
+ 回主畫面

+
+
+ + + + + + + + + + + + + + + +
  +
語音信箱     新:     舊:             人工撥號       DIAL
駐留ED 撥號S: 0                LOCAL撥打分機
外撥電話:
進線電話:
astGUIclient web-client版本: 版次:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
我的最愛       編輯
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
我的最愛

 
確認送出我的最愛變更 - 需要登出
回到主視窗 - 忽略變更
+
+ +
+ + + + + + + + + + + + + +
+停止 | 開始     更新比例: 1000 ms 較快速 | 較慢速

+
起始中..
+
使用中分機
+更新 | +次序 | +
外線
+更新 | +次序 | +
區域分機
+更新 | +次序 | +
+ 資料至此

+
+ 資料至此

Trunk 活動 +
+ 資料至此

Local 活動 +
+
+ + + + +
+ + +電話會議列表 + + + +
+點選會議室左方可瀏覽相關資訊 +
+ + + +
+ + + + + + + + + + + + + + diff --git a/LANG_www/agc_tw/call_log_display.php b/LANG_www/agc_tw/call_log_display.php new file mode 100644 index 00000000..dc5e60d9 --- /dev/null +++ b/LANG_www/agc_tw/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 60323-1550 - added option for showing different number dialed in log +# 60421-1401 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "通話記錄顯示"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten 是無效的 或協定 $protocol 是無效的\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/LANG_www/agc_tw/conf_exten_check.php b/LANG_www/agc_tw/conf_exten_check.php new file mode 100644 index 00000000..d64467c4 --- /dev/null +++ b/LANG_www/agc_tw/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 60410-1424 - Added ability to grab calls-being-placed and agent status +# 60421-1405 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "確認會議中分機"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten 是無效的\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is on is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "佇列中等待電話: $RingCalls";} + else {$RingCalls = "佇列中等待電話: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|開始",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_登出';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|狀態: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $渠道A[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $渠道A[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$渠道A[$counter] ~"; + # echo "$渠道A[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten 是無效的 or Exten $exten 是無效的\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "會議 $conf_exten 被註冊至 $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/LANG_www/agc_tw/dbconnect.php b/LANG_www/agc_tw/dbconnect.php new file mode 100644 index 00000000..723d3c59 --- /dev/null +++ b/LANG_www/agc_tw/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/LANG_www/agc_tw/inbound_popup.php b/LANG_www/agc_tw/inbound_popup.php new file mode 100644 index 00000000..d7148261 --- /dev/null +++ b/LANG_www/agc_tw/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 50711-1203 - removed HTTP authentication in favor of user/pass vars +# 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["local_web_callerID_URL_enc"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL = rawurldecode($local_web_callerID_URL_enc);} + else {$local_web_callerID_URL = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +進線通話"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

進線通話

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid 是無效的\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
渠道: $row[1]
CallerID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_渠道=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "CUSTOM - \n"; + + echo "
已撥號碼: $row[8]
注意: $row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "掛斷 - \n"; + echo "傳送至我的語音信箱\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/LANG_www/agc_tw/live_exten_check.php b/LANG_www/agc_tw/live_exten_check.php new file mode 100644 index 00000000..21fa156e --- /dev/null +++ b/LANG_www/agc_tw/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 60421-1359 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1203 - Added variable filters to close security holes for login form +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "使用中分機確認"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten 是無效的 或協定 $protocol 是無效的\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/LANG_www/agc_tw/manager_send.php b/LANG_www/agc_tw/manager_send.php new file mode 100644 index 00000000..d887f1c1 --- /dev/null +++ b/LANG_www/agc_tw/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 60310-2022 - Fixed NEXTAVAILABLE bug in leave-3way-call redirect function +# 60421-1413 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "管理者發送: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "協助";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten 是無效的 or queryCID $queryCID 是無效的, Originate 指令未插入\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate 指令發送 Exten $exten 渠道 $channel on $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nOriginateName Action 未送出\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nOriginateNameVmail Action 未送出\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten 是無效的 or queryCID $queryCID 是無效的, Originate 指令未插入\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR 你不能撥入其他代理商會議 $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate 指令發送 Exten $exten 渠道 $channel on $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten 是無效的 or ext_context $ext_context or queryCID $queryCID 是無效的, Hangup 指令未插入\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "渠道 $channel 是無效的 or queryCID $queryCID 是無效的, Hangup 指令未插入\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel 非可用 on $call_server_ip, Checking Live 渠道...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "渠道 $channel 非可用 on $call_server_ip, Hangup 指令未插入 $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "渠道 $channel in use by another agent on $call_server_ip, Hangup 指令未插入 $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup 指令發送 渠道 $channel on $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "auto_dial_level $auto_dial_level 需被設定\n"; + echo "campaign $campaign 需被設定\n"; + echo "uniqueid $uniqueid 需被設定\n"; + echo "lead_id $lead_id 需被設定\n"; + echo "\nRedirectVD Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "extenName $extenName 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "parkedby $parkedby 需被設定\n"; + echo "\nRedirectToPark Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirectFromPark Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirectName Action 未送出\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirectNameVmail Action 未送出\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "Extra渠道 $extrachannel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirect Action 未送出\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference on $server_ip, Redirect 指令未插入\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "找不到空會議 on $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "渠道 $channel 非可用 on $call_server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "渠道 $channel 非可用 on $server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX 指令發送 渠道 $channel on $call_server_ip and \nHungup $extrachannel on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel on $call_server_ip, Hungup $extrachannel on $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel on $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "Extra渠道 $extrachannel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "session_id $session_id 需被設定\n"; + echo "\nRedirect Action 未送出\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference on $server_ip, Redirect 指令未插入\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "找不到空會議 on $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "渠道 $channel 非可用 on $call_server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "渠道 $channel 非可用 on $server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra 指令發送 渠道 $channel and \nExtra渠道 $extrachannel\n to $exten on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten on $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra 指令發送 渠道 $channel on $call_server_ip and \nExtra渠道 $extrachannel\n to $exten on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirect Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "渠道 $channel 非可用 on $server_ip, Redirect 指令未插入\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect 指令發送 渠道 $channel on $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "渠道 $channel 是無效的 or queryCID $queryCID 是無效的 or filename: $filename 是無效的, $ACTION 指令未插入\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "渠道 $channel 非可用 on $server_ip, $ACTION 指令未插入\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION 指令發送 渠道 $channel on $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "渠道 $channel 是無效的 or exten $exten 是無效的 or filename: $filename 是無效的, $ACTION 指令未插入\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going on in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION 指令發送 渠道 $channel on $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n 錄音長達60分鐘\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "會議 $exten, Stage $stage 是無效的 or queryCID $queryCID 是無效的, Originate 指令未插入\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume 指令發送 會議 $exten, Stage $stage 渠道 $channel on $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/LANG_www/agc_tw/park_calls_display.php b/LANG_www/agc_tw/park_calls_display.php new file mode 100644 index 00000000..9cd1aa07 --- /dev/null +++ b/LANG_www/agc_tw/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 50711-1208 - removed HTTP authentication in favor of user/pass vars +# 60421-1111 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "顯示Parked Call"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten 是無效的 或協定 $protocol 是無效的\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/LANG_www/agc_tw/timeclock.php b/LANG_www/agc_tw/timeclock.php new file mode 100644 index 00000000..74ad9a95 --- /dev/null +++ b/LANG_www/agc_tw/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### security strip all non-alphanumeric characters out of the variables ### + $DB=ereg_replace("[^0-9a-z]","",$DB); + $phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); + $phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); + $VD_login=ereg_replace("[^0-9a-zA-Z]","",$VD_login); + $VD_pass=ereg_replace("[^0-9a-zA-Z]","",$VD_pass); + $VD_campaign=ereg_replace("[^0-9a-zA-Z_]","",$VD_campaign); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "您所輸入的帳號和密碼並未在系統中被啟動
請重試:"; + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
使用者登入:
使用者密碼:
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='開始', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='開始'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != '開始') ) + { + ### You cannot log in or out within 30秒 of your last login/logout + $VDdisplayMESSAGE = "您不能在前次登出或登入後30秒內再次登出或登入"; + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
使用者登入:
使用者密碼:
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTO登出') or ($status=='開始') or ($status=='登出') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "您目前已登出"; + $LOGtimeMESSAGE = "您登出在$NOW_TIME
您登入的時間(多久時間): $totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='登出', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='登出', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='登出', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTO登出') or ($status=='開始') or ($status=='登出') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERROR: timeclock log entry already made: $status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "回到值機員登入畫面";} + if ($referrer=='admin') + {$BACKlink = "回到系統管理";} + if ($referrer=='welcome') + {$BACKlink = "回到歡迎畫面";} + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTO登出') or ($status=='開始') or ($status=='登出') ) + { + $VDdisplayMESSAGE = "自從您上次登入已經有(多久時間): $totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "您上次登出在: $last_action_date

點選下方登入進行登入"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "您已經登入的時間(多久時間): $totTIME_HMS"; + $log_action = 'logout'; + $button_name = '登出'; + $LOGtimeMESSAGE = "您登入在: $last_action_date
您已經登入的時間(多久時間): $totTIME_HMS

點選下方登出進行登出"; + } + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
使用者登入:
使用者密碼:
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/LANG_www/agc_tw/vdc_db_query.php b/LANG_www/agc_tw/vdc_db_query.php new file mode 100644 index 00000000..8d3f596f --- /dev/null +++ b/LANG_www/agc_tw/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} + elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} +if (isset($_GET["use_internal_dnc"])) {$use_internal_dnc=$_GET["use_internal_dnc"];} + elseif (isset($_POST["use_internal_dnc"])) {$use_internal_dnc=$_POST["use_internal_dnc"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL 資料查詢語法"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('登出',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("開始|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("開始|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "經理登入:
\n"; + $VDdisplayMESSAGE.= "經理密碼:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "群組選項 $closer_choice 是無效的\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In 群組選項 $closer_choice 被註冊至使用者 $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories 是無效的\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories 被註冊至使用者 $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "HOPPER EMPTY\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context 是無效的\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC 號碼\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC 號碼\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "號碼 NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST 撥號 TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST 撥號 TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # 撥號OUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "HOPPER EMPTY\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "其他電話 號碼 狀態 NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count 是無效的\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "其他電話 號碼 狀態 CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage 是無效的\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context 是無效的\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " 撥號 NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context 是無效的\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # 撥號OUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID 是無效的\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG未輸入\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign 是無效的\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG 已插入: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG未輸入\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG 已插入: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG未輸入\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG未輸入\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id 是無效的\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG 已插入: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG未輸入\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG未輸入\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_停止|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|錄音_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "活動 $campaign 是無效的\n"; + echo "lead_id $lead_id 是無效的\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "活動 $campaign 是無效的\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send on to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If 撥號BK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user on $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten 是無效的\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a 登出 record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','登出','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation on the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id 是無效的\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### 撥號BACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### 開始 Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL 使用者 $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of 姓 Attempt, Date of 姓 Non-Contact, Date of 姓 Contact, Date of 姓 Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' 已被修改為 ' . $dispo_choice . " 狀態\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id 是無效的\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage 是無效的\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' 目前狀態為 ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list 是無效的\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status 是無效的\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " 暫停 Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "呼籲隊列查看停用此活動\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data on calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info on the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           撥號 GROUP     TYPE  
TAKE 撥號     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: 呼籲隊列查看停用此活動\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/LANG_www/agc_tw/vdc_script_display.php b/LANG_www/agc_tw/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/LANG_www/agc_tw/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $length_in_sec = ereg_replace("[^0-9]","",$length_in_sec); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/LANG_www/agc_tw/vicidial.php b/LANG_www/agc_tw/vicidial.php new file mode 100644 index 00000000..21ad04e7 --- /dev/null +++ b/LANG_www/agc_tw/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 60609-1123 - Added add-number-to-DNC-list function and manual dial check DNC +# 60619-1047 - Added variable filters to close security holes for login form +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### security strip all non-alphanumeric characters out of the variables ### +$DB=ereg_replace("[^0-9a-z]","",$DB); +$phone_login=ereg_replace("[^\,0-9a-zA-Z]","",$phone_login); +$phone_pass=ereg_replace("[^0-9a-zA-Z]","",$phone_pass); +$VD_login=ereg_replace("[^-_0-9a-zA-Z]","",$VD_login); +$VD_pass=ereg_replace("[^-_0-9a-zA-Z]","",$VD_pass); +$VD_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$VD_campaign); + + +$forever_stop=0; + +if ($force_logout) + { + echo "您已成功登出系統\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls on hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number of秒 for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name on login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST on server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a WÄHLEN link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups on campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon 掛斷客戶電話 +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$電話SComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT WÄHLEN by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: 重新登入\n"; +echo "\n"; +echo "\n"; +echo " Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English 中文繁體
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
重新登入
 
登入分機:
分機密碼:
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; +echo "

版本: $version       版次: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

使用者登入

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
專案活動登入
 
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; + echo "

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: 登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入
 
登入分機:
分機密碼:
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; + echo "

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: 登入分機\n"; +echo "\n"; +echo "\n"; +echo " Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English 中文繁體
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
登入分機
 
登入分機:
分機密碼:
  \n"; +echo "

版本: $version       版次: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('登出',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "您必須先登入TIMECLOCK
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("開始|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("開始|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "經理登入:
\n"; + $VDdisplayMESSAGE.= "經理密碼:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "登入: \n
"; + echo "密碼:
\n"; + echo "活動: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|P重置_1|P重置_2|P重置_3|P重置_4|P重置_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/P重置_1|P重置_2|P重置_3|P重置_4|P重置_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/P重置_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/P重置_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/P重置_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/P重置_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/P重置_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "專案活動未啟用,請再試一次
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "登入失敗,請重試
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
專案活動登入
 
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; + echo "

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: 登入分機 Error\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入 Error
 
抱歉,分機所輸入的帳號密碼於系統中尚未啟用,請再試一次:
 
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($電話SComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($電話SComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed on this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login on phone: $SIP_user to campaign: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### 開始 SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a 新 record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today on that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "抱歉,本專案活動已無名單\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "登入: \n
"; + echo "密碼:
\n"; + echo "活動: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "登入: \n
"; + echo "密碼:
\n"; + echo "活動: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live call秒 counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('一月','February','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +登出\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    通話中電話
+
+ + + + + height=>

Agent Screen
+
+ + +人工撥號       快速撥號
+
+ + +X 生效的回撥電話
+
+ + +
+
+ +秒: +     + + + + D1 - WÄHLEN\n"; + echo "
\n"; + echo "D2 - WÄHLEN\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
值機員的回撥電話 :
點選以下回撥紀錄進行客戶回撥,如果點選紀錄進行撥號,該筆紀錄將會從名單內移除. +
+
+
  + 更新 +                 + 回上一頁 +
+
+ + + height=460>
新的人工撥號紀錄給 :

請輸入下面的資訊給您想要外撥的新紀錄. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Dial Code:   (This is usually a 1 in the USA-Canada)
電話 Number: +   (12 digits max - digits only) +
搜尋存在的紀錄:   (本選項勾選時,在增加新的紀錄時會尋找系統中的電話號碼)
+

+     +
+

If you want to dial a number and have it NOT be added as a new lead, enter in the exact dialstring that you want to call in the Dial Override field below. To hangup this call you will have to open the 撥號S IN THIS SESSION link at the bottom of the screen and hang it up by clicking on its channel link there.
 
Dial Override:   (限數字碼輸入) +
+
+ 立即撥號 +                 + 預覽電話 +                 + 回上一頁 +
+
+ + + +
+
+ + + + +您目前的狀態:
Calls Dialing: +
+ + + + + > + + +
+
+ + 轉接 - 電話會議            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOCAL CLOSER     + + 掛斷轉接線 +
+ seconds +   + channel + + 協商   + + 全部掛斷 +
+ 撥打號碼 +   +   + + + 重撥 + + 離開三方通話 +
+ Dial Blind Transfer +   + Dial With Customer +   + Park Customer Dial +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 呼籲在隊列:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "隱藏呼籲在隊列\n";} + else + {echo "查看呼籲在隊列\n";} + } +?> + + + +
  +其他代理狀態:  
 
+ +
+可用代理轉讓:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
設定結束碼為:

+ -
+
+
+ + + height=70> + + + + +
結束碼快捷鍵: + 啟用時,只需點選結束碼對應之快捷鍵,系統即會自動下結束碼與掛斷電話:
+ + + + + +
+
+ + + height=70> + + + + + + +
過去的回撥資訊: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
擴充的其他電話資訊: 最小
+
+
+
+
+ +
+
+ + + + + +
最大
Alt 電話 Info
+
+ + + height=500>
無人在你主持的會議中:
+ 回上一頁 +

+ 再次呼叫值機員 +
+
+ + + height=500>
客戶已掛斷電話:
+ 回上一頁 +

+ 結束通話並註記結束碼 +
+
+ + + height=550>
電話文書: 文書狀態尚餘秒數

+ +

+ 結束文書並繼續 +
+
+ + +
+


+ 關閉消息 +
+
+ + + height=500>
Your session has been disabled
登出

回上一頁 +
+
+ + + height=500>
系統中有時間同步問題,請洽系統管理者


回上一頁 +
+
+ + + height=500>

登出
+
+ + +
+
+ + +
 
+
+ + + height=47>
你必須先更改客戶資料,再掛斷電話。否則所做變更將不會生效!.
+
+ + + height=460>
通話結束 :       再次掛斷       最小
+ 結束碼選擇 +
+ 暫停值機員撥號
+ 清除表單 | + 確認送出 +

+ WEB FORM 確認送出 +

  +
+
+ + + height=460>
選擇暫停原因代碼 :
+ 暫停 Code Selection + +

  +
+
+ + + height=460>
選擇群組代名 :
+ 群組代名選擇 + +

  +
+
+ + + + + + height=460>
選擇回撥日期 :
+ + + 選擇日期小於   +     + Hour: +   + Minutes: +   + +  
+ 只有個人回撥
";} + ?> + CB 備註:

+ + 確認送出

+ +

  +
+
+ + + height=460>
CLOSER INBOUND GROUP SELECTION
+ Closer Inbound Group Selection +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + INBOUND/OUTBOUND BLENDING(啟動外撥)
+ + 重置 | + 確認送出 +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ 重置 | + 確認送出 +



  +
+
+ + + + 渠道 + 渠道 + 只有個人回撥
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " INBOUND/OUTBOUND BLENDING
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +關閉快捷鍵 + + + + +> + + + + +
Agent web-client version:     版次:               主機:              
+ +顯示電話會議中的來電通道資訊 +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
狀態:
+
+撥下一個號碼
+ LEAD PREVIEW
+ 撥打其他電話
+ + +錄音檔:
+
+
+音檔編號:
+
+ +啟動錄音
+
+表格
+ 0) + {echo "\"表格
\n";} +?> +
+Park Call
+轉接 - 電話會議
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+掛斷客戶電話
+
+
傳送 DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   渠道:
客戶資訊:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
職銜:   名:   MI:  姓:
地址1:
地址2: 地址3:
市: 州: 郵遞區號:
省: Vendor ID: 性別:
電話: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +DialCode: 其他電話:
展現: 電郵:
備註: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/LANG_www/agc_tw/voicemail_check.php b/LANG_www/agc_tw/voicemail_check.php new file mode 100644 index 00000000..527645fc --- /dev/null +++ b/LANG_www/agc_tw/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 50711-1201 - removed HTTP authentication in favor of user/pass vars +# 60421-1147 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "檢視語音信箱"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "語音信箱 $vmail_box 是無效的\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/LANG_www/vicidial_de/AST_CLOSER_service_level.php b/LANG_www/vicidial_de/AST_CLOSER_service_level.php index ddd60707..beba62c5 100644 --- a/LANG_www/vicidial_de/AST_CLOSER_service_level.php +++ b/LANG_www/vicidial_de/AST_CLOSER_service_level.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -10,6 +10,8 @@ # 80519-0413 - rewrote time intervals code and stats gathering code # 80528-2320 - fixed small calculation bugs and display bugs, added more shifts # 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown # require("dbconnect.php"); @@ -59,7 +61,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -74,7 +76,7 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -82,7 +84,8 @@ $i=0; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; $i++; } ?> @@ -97,13 +100,13 @@ while ($i < $groups_to_print) --> -\n"; -echo "VICIDIAL: VDAD Closer Service Level Stats\n"; +echo "Inbound Service Level Report\n"; - $short_header=1; +$short_header=1; - require("admin_header.php"); +require("admin_header.php"); echo "
"; @@ -112,11 +115,11 @@ echo "\n"; echo "\n"; echo "\n"; echo "Inbound Gruppen: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -265,7 +272,7 @@ $query_date_END = "$end_date $time_END"; -echo "VICIDIAL: Automobil-Vorwahlknopf Genauerer Notfall: $group_string $NOW_TIME\n"; +echo "Inbound Call Stats: $group_string $NOW_TIME\n"; @@ -951,33 +958,9 @@ while ($i < $statuses_to_print) {$STATUSrate = ($STATUScount / ($TOTALsec / 3600) );} $STATUSrate = sprintf("%.2f", $STATUSrate); - $STATUShours_H = ($row[2] / 3600); - $STATUShours_H_int = round($STATUShours_H, 2); - $STATUShours_H_int = intval("$STATUShours_H_int"); - $STATUShours_M = ($STATUShours_H - $STATUShours_H_int); - $STATUShours_M = ($STATUShours_M * 60); - $STATUShours_M_int = round($STATUShours_M, 2); - $STATUShours_M_int = intval("$STATUShours_M_int"); - $STATUShours_S = ($STATUShours_M - $STATUShours_M_int); - $STATUShours_S = ($STATUShours_S * 60); - $STATUShours_S = round($STATUShours_S, 0); - if ($STATUShours_S < 10) {$STATUShours_S = "0$STATUShours_S";} - if ($STATUShours_M_int < 10) {$STATUShours_M_int = "0$STATUShours_M_int";} - $STATUShours = "$STATUShours_H_int:$STATUShours_M_int:$STATUShours_S"; - - $STATUSavg_H = (($row[2] / 3600) / $STATUScount); - $STATUSavg_H_int = round($STATUSavg_H, 2); - $STATUSavg_H_int = intval("$STATUSavg_H_int"); - $STATUSavg_M = ($STATUSavg_H - $STATUSavg_H_int); - $STATUSavg_M = ($STATUSavg_M * 60); - $STATUSavg_M_int = round($STATUSavg_M, 2); - $STATUSavg_M_int = intval("$STATUSavg_M_int"); - $STATUSavg_S = ($STATUSavg_M - $STATUSavg_M_int); - $STATUSavg_S = ($STATUSavg_S * 60); - $STATUSavg_S = round($STATUSavg_S, 0); - if ($STATUSavg_S < 10) {$STATUSavg_S = "0$STATUSavg_S";} - if ($STATUSavg_M_int < 10) {$STATUSavg_M_int = "0$STATUSavg_M_int";} - $STATUSavg = "$STATUSavg_H_int:$STATUSavg_M_int:$STATUSavg_S"; + $STATUShours = sec_convert($row[2],'H'); + $STATUSavg_sec = ($row[2] / $STATUScount); + $STATUSavg = sec_convert($STATUSavg_sec,'H'); $STATUScount = sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);} $status = sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);} @@ -1020,33 +1003,9 @@ else {$TOTALrate = ($TOTALcalls / ($TOTALsec / 3600) );} $TOTALrate = sprintf("%.2f", $TOTALrate); - $TOTALhours_H = ($TOTALsec / 3600); - $TOTALhours_H_int = round($TOTALhours_H, 2); - $TOTALhours_H_int = intval("$TOTALhours_H_int"); - $TOTALhours_M = ($TOTALhours_H - $TOTALhours_H_int); - $TOTALhours_M = ($TOTALhours_M * 60); - $TOTALhours_M_int = round($TOTALhours_M, 2); - $TOTALhours_M_int = intval("$TOTALhours_M_int"); - $TOTALhours_S = ($TOTALhours_M - $TOTALhours_M_int); - $TOTALhours_S = ($TOTALhours_S * 60); - $TOTALhours_S = round($TOTALhours_S, 0); - if ($TOTALhours_S < 10) {$TOTALhours_S = "0$TOTALhours_S";} - if ($TOTALhours_M_int < 10) {$TOTALhours_M_int = "0$TOTALhours_M_int";} - $TOTALhours = "$TOTALhours_H_int:$TOTALhours_M_int:$TOTALhours_S"; - - $TOTALavg_H = (($TOTALsec / 3600) / $TOTALcalls); - $TOTALavg_H_int = round($TOTALavg_H, 2); - $TOTALavg_H_int = intval("$TOTALavg_H_int"); - $TOTALavg_M = ($TOTALavg_H - $TOTALavg_H_int); - $TOTALavg_M = ($TOTALavg_M * 60); - $TOTALavg_M_int = round($TOTALavg_M, 2); - $TOTALavg_M_int = intval("$TOTALavg_M_int"); - $TOTALavg_S = ($TOTALavg_M - $TOTALavg_M_int); - $TOTALavg_S = ($TOTALavg_S * 60); - $TOTALavg_S = round($TOTALavg_S, 0); - if ($TOTALavg_S < 10) {$TOTALavg_S = "0$TOTALavg_S";} - if ($TOTALavg_M_int < 10) {$TOTALavg_M_int = "0$TOTALavg_M_int";} - $TOTALavg = "$TOTALavg_H_int:$TOTALavg_M_int:$TOTALavg_S"; + $TOTALhours = sec_convert($TOTALsec,'H'); + $TOTALavg_sec = ($TOTALsec / $TOTALcalls); + $TOTALavg = sec_convert($TOTALavg_sec,'H'); } $TOTALcalls = sprintf("%10s", $TOTALcalls); $TOTALhours = sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);} @@ -1091,6 +1050,67 @@ echo "| TOTAL | $TOTCATcalls |\n"; echo "+----------------------+------------+\n"; +############################## +######### CALL INITIAL QUEUE POSITION BREAKDOWN + +$TOTALcalls = 0; + +echo "\n"; +echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; +echo "| 1 2 3 4 5 6 7 8 9 10 15 20 25 +25 | TOTAL |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + +$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) group by queue_position;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$positions_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $positions_to_print) + { + $row=mysql_fetch_row($rslt); + + $TOTALcalls = ($TOTALcalls + $row[0]); + + if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);} + if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);} + if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);} + if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);} + if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);} + if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);} + if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);} + if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);} + if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);} + if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);} + if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);} + if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);} + if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);} + if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);} + $i++; + } + +$qp_1 = sprintf("%5s", $qp_1); +$qp_2 = sprintf("%5s", $qp_2); +$qp_3= sprintf("%5s", $qp_3); +$qp_4 = sprintf("%5s", $qp_4); +$qp_5 = sprintf("%5s", $qp_5); +$qp_6 = sprintf("%5s", $qp_6); +$qp_7 = sprintf("%5s", $qp_7); +$qp_8 = sprintf("%5s", $qp_8); +$qp_9 = sprintf("%5s", $qp_9); +$qp10 = sprintf("%5s", $qp10); +$qp15 = sprintf("%5s", $qp15); +$qp20 = sprintf("%5s", $qp20); +$qp25 = sprintf("%5s", $qp25); +$qp99 = sprintf("%5s", $qp99); + +$TOTALcalls = sprintf("%10s", $TOTALcalls); + +echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + + + ############################## ######### USER STATS @@ -1101,9 +1121,9 @@ $TOTavg=0; echo "\n"; echo "---------- MITTELSTATS\n"; -echo "+--------------------------+------------+----------+--------+\n"; -echo "| MITTEL | CALLS | TIME M | AVRG M |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| MITTEL | CALLS | TIME H:M:S |AVERAGE |\n"; +echo "+--------------------------+------------+------------+--------+\n"; $stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;"; $rslt=mysql_query($stmt, $link); @@ -1118,34 +1138,25 @@ while ($i < $users_to_print) $TOTtime = ($TOTtime + $row[3]); $user = sprintf("%-6s", $row[0]); - $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + if ($non_latin < 1) + { + $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + } + else + { + $full_name = sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');} + } $USERcalls = sprintf("%10s", $row[2]); $USERtotTALK = $row[3]; $USERavgTALK = $row[4]; - $USERtotTALK_M = ($USERtotTALK / 60); - $USERtotTALK_M_int = round($USERtotTALK_M, 2); - $USERtotTALK_M_int = intval("$USERtotTALK_M_int"); - $USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int); - $USERtotTALK_S = ($USERtotTALK_S * 60); - $USERtotTALK_S = round($USERtotTALK_S, 0); - if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";} - $USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S"; - $USERtotTALK_MS = eregi_replace('-','',$USERtotTALK_MS); - $USERtotTALK_MS = sprintf("%8s", $USERtotTALK_MS); + $USERtotTALK_MS = sec_convert($USERtotTALK,'H'); + $USERavgTALK_MS = sec_convert($USERavgTALK,'H'); - $USERavgTALK_M = ($USERavgTALK / 60); - $USERavgTALK_M_int = round($USERavgTALK_M, 2); - $USERavgTALK_M_int = intval("$USERavgTALK_M_int"); - $USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int); - $USERavgTALK_S = ($USERavgTALK_S * 60); - $USERavgTALK_S = round($USERavgTALK_S, 0); - if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";} - $USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S"; - $USERavgTALK_MS = eregi_replace('-','',$USERavgTALK_MS); - $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); + $USERtotTALK_MS = sprintf("%9s", $USERtotTALK_MS); + $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); - echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; + echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; $i++; } @@ -1154,36 +1165,21 @@ if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;} else { $TOTavg = ($TOTtime / $TOTcalls); - $TOTavg = round($TOTavg, 0); - $TOTavg_M = ($TOTavg / 60); - $TOTavg_M_int = round($TOTavg_M, 2); - $TOTavg_M_int = intval("$TOTavg_M_int"); - $TOTavg_S = ($TOTavg_M - $TOTavg_M_int); - $TOTavg_S = ($TOTavg_S * 60); - $TOTavg_S = round($TOTavg_S, 0); - if ($TOTavg_S < 10) {$TOTavg_S = "0$TOTavg_S";} - $TOTavg_MS = "$TOTavg_M_int:$TOTavg_S"; + $TOTavg_MS = sec_convert($TOTavg,'H'); $TOTavg = sprintf("%6s", $TOTavg_MS); } -$TOTtime_M = ($TOTtime / 60); -$TOTtime_M_int = round($TOTtime_M, 2); -$TOTtime_M_int = intval("$TOTtime_M_int"); -$TOTtime_S = ($TOTtime_M - $TOTtime_M_int); -$TOTtime_S = ($TOTtime_S * 60); -$TOTtime_S = round($TOTtime_S, 0); -if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";} -$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S"; -$TOTtime = sprintf("%6s", $TOTtime_MS); +$TOTtime_MS = sec_convert($TOTtime,'H'); +$TOTtime = sprintf("%10s", $TOTtime_MS); $TOTagents = sprintf("%10s", $i); $TOTcalls = sprintf("%10s", $TOTcalls); $TOTtime = sprintf("%8s", $TOTtime); $TOTavg = sprintf("%6s", $TOTavg); -echo "+--------------------------+------------+----------+--------+\n"; -echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| TOTAL Bevollmächtigte: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; +echo "+--------------------------+------------+------------+--------+\n"; ############################## diff --git a/LANG_www/vicidial_de/AST_CLOSERsummary_hourly.php b/LANG_www/vicidial_de/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/LANG_www/vicidial_de/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_de/AST_IVRfilter.php b/LANG_www/vicidial_de/AST_IVRfilter.php index 74b96767..2acddc97 100644 --- a/LANG_www/vicidial_de/AST_IVRfilter.php +++ b/LANG_www/vicidial_de/AST_IVRfilter.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # # 81030-0432 - First build # 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -81,7 +82,7 @@ $i=0; --> -\n"; echo "VICIDIAL: VDL IVR Filter Stats\n"; diff --git a/LANG_www/vicidial_de/AST_IVRstats.php b/LANG_www/vicidial_de/AST_IVRstats.php index 6005c22c..9a398631 100644 --- a/LANG_www/vicidial_de/AST_IVRstats.php +++ b/LANG_www/vicidial_de/AST_IVRstats.php @@ -1,15 +1,16 @@ - LICENSE: AGPLv2 # # CHANGES -# # 81026-2026 - First build # 81107-0341 - Added time range and option and 15-minute increment graph # 81107-1148 - Added average times and totals # 81108-0922 - Added no-callerID and unique caller counts # 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list # require("dbconnect.php"); @@ -61,7 +62,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -76,18 +77,23 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; - $LISTgroups[$i]='---NONE---'; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; $i++; $groups_to_print++; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $LISTgroups[$i] =$row[0]; + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; $i++; } @@ -139,7 +145,7 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: IVR Stats\n"; +echo "IVR Stats Report\n"; $short_header=1; @@ -203,14 +209,14 @@ echo "
\n"; echo "Inbound Gruppen: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -248,434 +254,427 @@ echo "
\n\n";
 
 
 if ($groups_to_print < 1)
-{
-echo "\n\n";
-echo "Wählen Sie eine IM-Gruppe und Zeitraum oberhalb und klicken Sie auf Senden\n";
-}
+	{
+	echo "\n\n";
+	echo "Wählen Sie eine IM-Gruppe und Zeitraum oberhalb und klicken Sie auf Senden\n";
+	}
 
 else
-{
-
-
-echo "VICIDIAL: IVR Stats: $group_string          $NOW_TIME\n";
-
-
-
-
-
-
-$TOTALcalls=0;
-$NOCALLERIDcalls=0;
-$UNIQUEcallers=0;
-$totFLOWivr_time=0;
-$totFLOWtotal_time=0;
-
-##### Grab all records for the IVR for the specified time period
-$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$logs_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $logs_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-	$uniqueid[$p] =		$row[0];
-	$extension[$p] =	$row[1];
-	$start_time[$p] =	$row[2];
-	$comment_a[$p] =	$row[3];
-	$comment_b[$p] =	$row[4];
-	$comment_d[$p] =	$row[5];
-	$epoch[$p] =		$row[6];
-	$phone_ext[$p] =	$row[7];
-	$p++;
-	}
-
-### create the call flow of all calls by uniqueid
-$last_uniqueid='';
-$first_epoch='';
-$last_epoch='';
-$p=0;
-$r=-1;
-while ($p < $logs_to_print)
-	{
-	if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
-	if ($last_uniqueid === "$uniqueid[$p]")
-		{
-		$unique_calls[$r] .= "----------$comment_b[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		$last_epoch[$r]=$epoch[$p];
-		}
-	else
-		{
-		$r++;
-		$caller_id[$r]=$phone_ext[$p];
-		if (strlen($phone_ext[$p])<2)
-			{$NOCALLERIDcalls++;}
-		else
-			{
-			if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
-				{
-				$unique_callerIDs .= "_$phone_ext[$p]_";
-				$UNIQUEcallers++;
-				}
-			}
-		$first_epoch[$r]=$epoch[$p];
-		$last_epoch[$r]=$epoch[$p];
-		$unique_calls[$r] = $comment_b[$p];
-		$FLOWuniqueid[$r] = "$uniqueid[$p]";
-		$last_uniqueid = "$uniqueid[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		}
-	$p++;
-	}
-
-### sort call flows for counting
-$RAWunique_calls = $unique_calls;
-if ($logs_to_print > 0)
-	{sort($unique_calls);}
-
-
-### count each unique call flow
-$last_Suniqueid='';
-$p=-1;
-$s=0;
-while ($s <= $r)
-	{
-	if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
-	if ($last_Suniqueid === "$unique_calls[$s]")
-		{
-		$STunique_calls_count[$p]++;
-		}
-	else
-		{
-		$p++;
-		$STunique_calls[$p] = $unique_calls[$s];
-		$last_Suniqueid = "$unique_calls[$s]";
-		$STunique_calls_count[$p]=1;
-		}
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$TOTALcalls=0;
-$s=0;
-while ($s <= $p)
-	{
-	$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
-	$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
-	$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
-	$s++;
-	}
-
-#### PRINT TOTAL CALLS INTO THIS IVR
-echo "\n";
-echo "Calls taken into this IVR:   $TOTALcalls\n";
-echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
-echo "Unique Callers:              $UNIQUEcallers\n";
-echo "\n";
-
-### sort call flows for counting
-if ($p > 0)
-	{rsort($FLOWunique_calls);}
-
-
-### put call flows and counts together for sorting again
-$RUC_ct = count($RAWunique_calls);
-$s=0;
-while ($s <= $p)
-	{
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$t=0;
-	while ($t < $RUC_ct)
-		{
-		if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
-			{
-			$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
-			if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
-			else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
-			$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
-			}
-		$t++;
-		}
-
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$s=0;
-
-echo "+--------+--------+--------+--------+------+------+\n";
-echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
-echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
-echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
-echo "+--------+--------+--------+--------+------+------+------------\n";
-
-while ($s <= $p)
-	{
-	$vcl_statuses = $MT;
-	$FLOWdrop[$s]=0;
-	$FLOWtotal[$s]=0;
-	$FLOWdropPCT[$s]=0;
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
 
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
 
 	##### Grab all records for the IVR for the specified time period
-	$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
 	$rslt=mysql_query($stmt, $link);
 	if ($DB) {echo "$stmt\n";}
-	$vcl_statuses_to_print = mysql_num_rows($rslt);
-	$w=0;
-	while ($w < $vcl_statuses_to_print)
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
 		{
 		$row=mysql_fetch_row($rslt);
-		$vcl_statuses[$w] =		$row[0];
-		if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
-			{$FLOWdrop[$s]++;}
-		$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
-		$FLOWtotal[$s]++;
-		$w++;
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
 		}
-	if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
 		{
-		$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
-		$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
-		}
-	$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
-	$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
-	$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
-	$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
-	$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
-	$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
-
-	$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
-	$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
-	$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
-	$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
-	$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
-	$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
-
-	$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
-	$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
-	$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
-	$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
-
-	echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
-
-	$s++;
-	}
-$TOTALcalls = sprintf("%6s", $TOTALcalls);
-$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
-$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
-if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
-$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
-$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
-if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
-$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
-$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
-if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
-	{$totFLOWdropPCT = '0';}
-else
-	{
-	$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
-	$totFLOWdropPCT = round($totFLOWdropPCT, 0);
-	}
-$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
-
-echo "+--------+--------+--------+--------+------+------+------------\n";
-echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
-echo "+--------+--------+--------+--------+------+------+\n";
-
-
-
-
-
-
-
-
-
-
-
-
-
-##############################
-#########  TIME STATS
-
-echo "\n";
-echo "---------- TIME STATS\n";
-
-echo "\n";
-
-$hi_hour_count=0;
-$last_full_record=0;
-$i=0;
-$h=0;
-while ($i <= 96)
-	{
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-	$h++;
-	}
-
-if ($hi_hour_count < 1)
-	{$hour_multiplier = 0;}
-else
-	{
-	$hour_multiplier = (100 / $hi_hour_count);
-	#$hour_multiplier = round($hour_multiplier, 0);
-	}
-
-echo "\n";
-echo "DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN VON GESAMTANRUFEN TAKEN INTO THIS IVR\n";
-
-$k=1;
-$Mk=0;
-$call_scale = '0';
-while ($k <= 102) 
-	{
-	if ($Mk >= 5) 
-		{
-		$Mk=0;
-		if ( ($k < 1) or ($hour_multiplier <= 0) )
-			{$scale_num = 100;}
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
 		else
 			{
-			$scale_num=($k / $hour_multiplier);
-			$scale_num = round($scale_num, 0);
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
 			}
-		$LENscale_num = (strlen($scale_num));
-		$k = ($k + $LENscale_num);
-		$call_scale .= "$scale_num";
+		$p++;
 		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT GESAMTANRUFEINTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
 	else
 		{
-		$call_scale .= " ";
-		$k++;   $Mk++;
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
 		}
-	}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
-echo "| HOUR |$call_scale| TOTAL |\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
 
-$ZZ = '00';
-$i=0;
-$h=4;
-$hour= -1;
-$no_lines_yet=1;
 
-while ($i <= 96)
-	{
-	$char_counter=0;
-	$time = '      ';
-	if ($h >= 4) 
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- TIME STATS\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
 		{
-		$hour++;
-		$h=0;
-		if ($hour < 10) {$hour = "0$hour";}
-		$time = "+$hour$ZZ+";
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
 		}
-	if ($h == 1) {$time = "   15 ";}
-	if ($h == 2) {$time = "   30 ";}
-	if ($h == 3) {$time = "   45 ";}
-	$Ghour_count = $hour_count[$i];
-	if ($Ghour_count < 1) 
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
 		{
-		if ( ($no_lines_yet) or ($i > $last_full_record) )
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN VON GESAMTANRUFEN TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
 			{
-			$do_nothing=1;
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
 			}
 		else
 			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
-			echo "|$time|";
-			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
 			echo "| $hour_count[$i] |\n";
 			}
+		
+		
+		$i++;
+		$h++;
 		}
-	else
-		{
-		$no_lines_yet=0;
-		$Xhour_count = ($Ghour_count * $hour_multiplier);
-		$Yhour_count = (99 - $Xhour_count);
 
-		$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 
-		echo "|$time|";
-		$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-		echo "*X";   $char_counter++;
-		$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-			while ($char_counter <= 101) {echo " ";   $char_counter++;}
-		echo "| $hour_count[$i] |\n";
-		}
-	
-	
-	$i++;
-	$h++;
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
 	}
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
-
-
-
-
-
-
-
-
-
-
-$ENDtime = date("U");
-$RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds\n";
-}
-
-
 
 ?>
 
diff --git a/LANG_www/vicidial_de/AST_OUTBOUNDsummary_interval.php b/LANG_www/vicidial_de/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/LANG_www/vicidial_de/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_de/AST_VDADstats.php b/LANG_www/vicidial_de/AST_VDADstats.php index b948defc..51c35cc8 100644 --- a/LANG_www/vicidial_de/AST_VDADstats.php +++ b/LANG_www/vicidial_de/AST_VDADstats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -17,17 +17,36 @@ # 81109-2341 - Added Productivity Rating # 90225-1140 - Changed to multi-campaign capability # 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; -if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} - elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} @@ -47,6 +66,10 @@ $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -54,16 +77,25 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} @@ -71,8 +103,7 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -87,7 +118,16 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select campaign_id from vicidial_campaigns;"; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); @@ -95,10 +135,14 @@ $i=0; while ($i < $campaigns_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} $i++; } +$rollover_groups_count=0; $i=0; $group_string='|'; $group_ct = count($group); @@ -107,15 +151,41 @@ while($i < $group_ct) $group_string .= "$group[$i]|"; $group_SQL .= "'$group[$i]',"; $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + $i++; } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) - {$group_SQL = "";} + { + $group_SQL = ""; + $group_drop_SQL = ""; + } else { $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; $group_SQLand = "and campaign_id IN($group_SQL)"; $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; } $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; @@ -131,6 +201,35 @@ while ($i < $statcats_to_print) $vsc_count[$i] = 0; $i++; } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + ?> @@ -144,9 +243,9 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: VDAD Stats\n"; +echo "Outbound Stats\n"; $short_header=1; @@ -158,6 +257,9 @@ echo "
\n"; echo "
Termine:
"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "
to
\n"; echo "
Kampagnen:
"; @@ -168,13 +270,35 @@ else {echo "\n";} $o=0; while ($campaigns_to_print > $o) -{ - if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} - else {echo "\n";} + { + if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} + else {echo "\n";} $o++; -} + } echo "\n"; -echo "
Shift:
"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; echo "
- \ No newline at end of file + diff --git a/LANG_www/vicidial_de/AST_VICIDIAL_hopperlist.php b/LANG_www/vicidial_de/AST_VICIDIAL_hopperlist.php index d492bd3d..041fd060 100644 --- a/LANG_www/vicidial_de/AST_VICIDIAL_hopperlist.php +++ b/LANG_www/vicidial_de/AST_VICIDIAL_hopperlist.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -10,6 +10,8 @@ # 70115-1614 - Added ALT field for vicidial_hopper alt_dial column # 71029-0852 - Added list_id to the output # 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY # require("dbconnect.php"); @@ -73,19 +75,19 @@ while ($i < $campaigns_to_print) --> -\n"; -echo "VICIDIAL: Zufuhrbehälter-Liste\n"; +echo "Zufuhrbehälter-Liste Report\n"; echo "\n"; #echo "\n"; #echo "\n"; echo "\n"; echo "\n"; @@ -96,74 +98,70 @@ echo "
\n\n";
 
 
 if (!$group)
-{
-echo "\n\n";
-echo "WÄHLEN Sie BITTE Eine KAMPAGNE OBEN Vor UND KLICKEN REICHT Ein\n";
-}
-
-else
-{
-
-
-echo "VICIDIAL: Gegenwärtige Zufuhrbehälter-Lebhaftliste                      $NOW_TIME\n";
-
-echo "\n";
-echo "---------- TOTALS\n";
-
-$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$TOTALcalls =	sprintf("%10s", $row[0]);
-
-echo "Gesamtleitungen im Zufuhrbehälter im Augenblick:       $TOTALcalls\n";
-
-
-##############################
-#########  LEAD STATS
-
-echo "\n";
-echo "---------- LEADS IN HOPPER\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-echo "|ORDER |PRIORITY| LEAD ID   | LISTE IDENTIFIKATION    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-
-$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$users_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $users_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-
-	$FMT_i =		sprintf("%-4s", $i);
-	$lead_id =		sprintf("%-9s", $row[0]);
-	$phone_number =	sprintf("%-10s", $row[1]);
-	$state =		sprintf("%-5s", $row[2]);
-	$status =		sprintf("%-6s", $row[3]);
-	$count =		sprintf("%-5s", $row[4]);
-	$gmt =			sprintf("%-6s", $row[5]);
-	$hopper_id =	sprintf("%-6s", $row[6]);
-	$alt_dial =		sprintf("%-5s", $row[7]);
-	$list_id =		sprintf("%-10s", $row[8]);
-	$priority =		sprintf("%-6s", $row[9]);
-
-if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
-else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
-
-	$i++;
+	echo "\n\n";
+	echo "WÄHLEN Sie BITTE Eine KAMPAGNE OBEN Vor UND KLICKEN REICHT Ein\n";
 	}
 
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+else
+	{
+	echo "Gegenwärtige Zufuhrbehälter-Lebhaftliste                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Gesamtleitungen im Zufuhrbehälter im Augenblick:       $TOTALcalls\n";
 
 
-}
+	##############################
+	#########  LEAD STATS
 
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORITY| LEAD ID   | LISTE IDENTIFIKATION    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
 
 
 ?>
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_de/AST_agent_days_detail.php b/LANG_www/vicidial_de/AST_agent_days_detail.php index 270eb9a3..aaa22cb5 100644 --- a/LANG_www/vicidial_de/AST_agent_days_detail.php +++ b/LANG_www/vicidial_de/AST_agent_days_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-2202 - First build # 90225-1051 - Added CSV download option # 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags # @@ -157,10 +158,10 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Tage Status\n"; + echo "Agent Tage Status Report\n"; echo ""; $short_header=1; @@ -208,14 +209,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Days Detail: $user $NOW_TIME\n"; + echo "Agent Tage Status Report: $user $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- MITTELDetails -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Days Detail: $user $NOW_TIME\n"; + $file_output .= "Agent Tage Status Report: $user $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } diff --git a/LANG_www/vicidial_de/AST_agent_performance.php b/LANG_www/vicidial_de/AST_agent_performance.php index edfeb075..28dca6fa 100644 --- a/LANG_www/vicidial_de/AST_agent_performance.php +++ b/LANG_www/vicidial_de/AST_agent_performance.php @@ -1,13 +1,14 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60619-1711 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $campaigns_to_print) --> -\n"; echo "VICIDIAL: Agent Performance\n"; echo "\n"; diff --git a/LANG_www/vicidial_de/AST_agent_performance_detail.php b/LANG_www/vicidial_de/AST_agent_performance_detail.php index 9312a72f..cb08d70d 100644 --- a/LANG_www/vicidial_de/AST_agent_performance_detail.php +++ b/LANG_www/vicidial_de/AST_agent_performance_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -16,9 +16,14 @@ # 81108-0716 - fixed user same-name bug # 81110-0056 - fixed pause code display bug # 90310-2039 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90523-0935 - Rewrite of seconds to minutes and hours conversion +# 90717-1500 - Changed to be multi-campaign, multi-user-group select +# 90908-1058 - Added DEAD time statistics # require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -111,6 +116,44 @@ while ($i < $user_groups_to_print) $user_groups[$i] =$row[0]; $i++; } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} ?> @@ -124,9 +167,9 @@ while ($i < $user_groups_to_print) --> -\n"; -echo "VICIDIAL: Agent Performance\n"; +echo "Agent Performance Detail\n"; $short_header=1; @@ -135,39 +178,58 @@ echo "VICIDIAL: Agent Performance
"; echo "\n"; +echo "
Termine:
"; echo "\n"; echo "\n"; -echo " to \n"; -echo "\n"; +echo "
Kampagnen:
"; +echo "\n"; +echo "
Benutzer-Gruppen:
"; +echo "\n"; -echo "\n"; +echo "
Shift:
"; echo "\n"; +echo "

\n"; echo "\n"; -echo "           ÄNDERN Sie | REPORTS \n"; +echo "
        "; + +echo "          \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + echo "\n\n"; + echo "
\n";
 
 
@@ -205,7 +267,7 @@ $query_date_END = "$end_date $time_END";
 if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
 else {$ugSQL='';}
 
-echo "VICIDIAL: Agent Performance Detail                        $NOW_TIME\n";
+echo "Agent Performance Detail                        $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENTS Details -------------\n\n";
@@ -225,7 +287,7 @@ $usersARY[0]='';
 $user_namesARY[0]='';
 $k=0;
 
-$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000 $ugSQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $rows_to_print = mysql_num_rows($rslt);
@@ -243,6 +305,7 @@ while ($i < $rows_to_print)
 	$wait_sec[$i] =		$row[5];
 	$dispo_sec[$i] =	$row[6];
 	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
 	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
 		{
 		$statusesTXT = sprintf("%8s", $status[$i]);
@@ -264,9 +327,9 @@ while ($i < $rows_to_print)
 	}
 
 echo "CALL STATS BREAKDOWN:\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "| USER NAME       | ID       | CALLS  | TIME    | PAUSE  | PAUSAVG| WAIT   | WAITAVG| TALK   | TALKAVG| DISPO  | DISPAVG|$statusesHTML\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -281,6 +344,7 @@ while ($m < $k)
 	$Spause_sec=0;
 	$Swait_sec=0;
 	$Sdispo_sec=0;
+	$Sdead_sec=0;
 	$SstatusesHTML='';
 
 	### BEGIN loop through each status ###
@@ -300,6 +364,7 @@ while ($m < $k)
 				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
 				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
 				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
 				$SstatusTXT = sprintf("%8s", $calls[$i]);
 				$SstatusesHTML .= " $SstatusTXT |";
 				$status_found++;
@@ -321,6 +386,7 @@ while ($m < $k)
 	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
 	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
 	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
 	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
 	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
 		else {$Stalk_avg=0;}
@@ -330,6 +396,8 @@ while ($m < $k)
 		else {$Swait_avg=0;}
 	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
 		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
 
 	$RAWuser = $Suser;
 	$RAWcalls = $Scalls;
@@ -337,112 +405,45 @@ while ($m < $k)
 
 	if ($non_latin < 1)
 		{
-		 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
-			while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
-		 $Suser =		sprintf("%-8s", $Suser);
-			while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
 		}
 	else
 		{	
-			$Sfull_name=	sprintf("%-45s", $Sfull_name); 
-		 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
-			$Suser =	sprintf("%-24s", $Suser);
-		 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
 
-	$USERtime_M = ($Stime / 60);
-	$USERtime_M_int = round($USERtime_M, 2);
-	$USERtime_M_int = intval("$USERtime_M_int");
-	$USERtime_S = ($USERtime_M - $USERtime_M_int);
-	$USERtime_S = ($USERtime_S * 60);
-	$USERtime_S = round($USERtime_S, 0);
-	if ($USERtime_S < 10) {$USERtime_S = "0$USERtime_S";}
-	$USERtime_MS = "$USERtime_M_int:$USERtime_S";
-	$pfUSERtime_MS =		sprintf("%7s", $USERtime_MS);
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
 
-	$USERtotTALK_M = ($Stalk_sec / 60);
-	$USERtotTALK_M_int = round($USERtotTALK_M, 2);
-	$USERtotTALK_M_int = intval("$USERtotTALK_M_int");
-	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
-	$USERtotTALK_S = ($USERtotTALK_S * 60);
-	$USERtotTALK_S = round($USERtotTALK_S, 0);
-	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
-	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
-	$pfUSERtotTALK_MS =		sprintf("%6s", $USERtotTALK_MS);
-
-	$USERavgTALK_M = ($Stalk_avg / 60);
-	$USERavgTALK_M_int = round($USERavgTALK_M, 2);
-	$USERavgTALK_M_int = intval("$USERavgTALK_M_int");
-	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
-	$USERavgTALK_S = ($USERavgTALK_S * 60);
-	$USERavgTALK_S = round($USERavgTALK_S, 0);
-	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
-	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
-	$pfUSERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
-
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
 	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
 
-	$USERavgPAUSE_M = ($Spause_avg / 60);
-	$USERavgPAUSE_M_int = round($USERavgPAUSE_M, 2);
-	$USERavgPAUSE_M_int = intval("$USERavgPAUSE_M_int");
-	$USERavgPAUSE_S = ($USERavgPAUSE_M - $USERavgPAUSE_M_int);
-	$USERavgPAUSE_S = ($USERavgPAUSE_S * 60);
-	$USERavgPAUSE_S = round($USERavgPAUSE_S, 0);
-	if ($USERavgPAUSE_S < 10) {$USERavgPAUSE_S = "0$USERavgPAUSE_S";}
-	$USERavgPAUSE_MS = "$USERavgPAUSE_M_int:$USERavgPAUSE_S";
-	$pfUSERavgPAUSE_MS =		sprintf("%6s", $USERavgPAUSE_MS);
-
-	$USERtotWAIT_M = ($Swait_sec / 60);
-	$USERtotWAIT_M_int = round($USERtotWAIT_M, 2);
-	$USERtotWAIT_M_int = intval("$USERtotWAIT_M_int");
-	$USERtotWAIT_S = ($USERtotWAIT_M - $USERtotWAIT_M_int);
-	$USERtotWAIT_S = ($USERtotWAIT_S * 60);
-	$USERtotWAIT_S = round($USERtotWAIT_S, 0);
-	if ($USERtotWAIT_S < 10) {$USERtotWAIT_S = "0$USERtotWAIT_S";}
-	$USERtotWAIT_MS = "$USERtotWAIT_M_int:$USERtotWAIT_S";
-	$pfUSERtotWAIT_MS =		sprintf("%6s", $USERtotWAIT_MS);
-
-	$USERavgWAIT_M = ($Swait_avg / 60);
-	$USERavgWAIT_M_int = round($USERavgWAIT_M, 2);
-	$USERavgWAIT_M_int = intval("$USERavgWAIT_M_int");
-	$USERavgWAIT_S = ($USERavgWAIT_M - $USERavgWAIT_M_int);
-	$USERavgWAIT_S = ($USERavgWAIT_S * 60);
-	$USERavgWAIT_S = round($USERavgWAIT_S, 0);
-	if ($USERavgWAIT_S < 10) {$USERavgWAIT_S = "0$USERavgWAIT_S";}
-	$USERavgWAIT_MS = "$USERavgWAIT_M_int:$USERavgWAIT_S";
-	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
-	
-	$USERtotDISPO_M = ($Sdispo_sec / 60);
-	$USERtotDISPO_M_int = round($USERtotDISPO_M, 2);
-	$USERtotDISPO_M_int = intval("$USERtotDISPO_M_int");
-	$USERtotDISPO_S = ($USERtotDISPO_M - $USERtotDISPO_M_int);
-	$USERtotDISPO_S = ($USERtotDISPO_S * 60);
-	$USERtotDISPO_S = round($USERtotDISPO_S, 0);
-	if ($USERtotDISPO_S < 10) {$USERtotDISPO_S = "0$USERtotDISPO_S";}
-	$USERtotDISPO_MS = "$USERtotDISPO_M_int:$USERtotDISPO_S";
-	$pfUSERtotDISPO_MS =		sprintf("%6s", $USERtotDISPO_MS);
-
-	$USERavgDISPO_M = ($Sdispo_avg / 60);
-	$USERavgDISPO_M_int = round($USERavgDISPO_M, 2);
-	$USERavgDISPO_M_int = intval("$USERavgDISPO_M_int");
-	$USERavgDISPO_S = ($USERavgDISPO_M - $USERavgDISPO_M_int);
-	$USERavgDISPO_S = ($USERavgDISPO_S * 60);
-	$USERavgDISPO_S = round($USERavgDISPO_S, 0);
-	if ($USERavgDISPO_S < 10) {$USERavgDISPO_S = "0$USERavgDISPO_S";}
-	$USERavgDISPO_MS = "$USERavgDISPO_M_int:$USERavgDISPO_S";
-	$pfUSERavgDISPO_MS =		sprintf("%6s", $USERavgDISPO_MS);
-
-	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS |$SstatusesHTML\n";
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
 
 	$TOPsorted_output[$m] = $Toutput;
 
@@ -517,120 +518,60 @@ while ($n < $j)
 	}
 ### END loop through each status ###
 
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTcalls =	sprintf("%7s", $TOTcalls);
-	$TOT_AGENTS = sprintf("%-4s", $m);
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
 
-	$TOTtime_M = ($TOTtime / 60);
-	$TOTtime_M_int = round($TOTtime_M, 2);
-	$TOTtime_M_int = intval("$TOTtime_M_int");
-	$TOTtime_S = ($TOTtime_M - $TOTtime_M_int);
-	$TOTtime_S = ($TOTtime_S * 60);
-	$TOTtime_S = round($TOTtime_S, 0);
-	if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";}
-	$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S";
-	$TOTtime_MS =		sprintf("%8s", $TOTtime_MS);
-		while(strlen($TOTtime_MS)>8) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
 
-	$TOTtotTALK_M = ($TOTtotTALK / 60);
-	$TOTtotTALK_M_int = round($TOTtotTALK_M, 2);
-	$TOTtotTALK_M_int = intval("$TOTtotTALK_M_int");
-	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
-	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
-	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
-	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
-	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
-	$TOTtotTALK_MS =		sprintf("%8s", $TOTtotTALK_MS);
-		while(strlen($TOTtotTALK_MS)>8) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
 
-	if ($TOTtotDISPO < 1) {$TOTtotDISPO_M = '0';}
-	else {$TOTtotDISPO_M = ($TOTtotDISPO / 60);}
-	$TOTtotDISPO_M_int = round($TOTtotDISPO_M, 2);
-	$TOTtotDISPO_M_int = intval("$TOTtotDISPO_M_int");
-	$TOTtotDISPO_S = ($TOTtotDISPO_M - $TOTtotDISPO_M_int);
-	$TOTtotDISPO_S = ($TOTtotDISPO_S * 60);
-	$TOTtotDISPO_S = round($TOTtotDISPO_S, 0);
-	if ($TOTtotDISPO_S < 10) {$TOTtotDISPO_S = "0$TOTtotDISPO_S";}
-	$TOTtotDISPO_MS = "$TOTtotDISPO_M_int:$TOTtotDISPO_S";
-	$TOTtotDISPO_MS =		sprintf("%8s", $TOTtotDISPO_MS);
-		while(strlen($TOTtotDISPO_MS)>8) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTtotPAUSE_M = '0';}
-	else {$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);}
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTtotWAIT_M = '0';}
-	else {$TOTtotWAIT_M = ($TOTtotWAIT / 60);}
-	$TOTtotWAIT_M_int = round($TOTtotWAIT_M, 2);
-	$TOTtotWAIT_M_int = intval("$TOTtotWAIT_M_int");
-	$TOTtotWAIT_S = ($TOTtotWAIT_M - $TOTtotWAIT_M_int);
-	$TOTtotWAIT_S = ($TOTtotWAIT_S * 60);
-	$TOTtotWAIT_S = round($TOTtotWAIT_S, 0);
-	if ($TOTtotWAIT_S < 10) {$TOTtotWAIT_S = "0$TOTtotWAIT_S";}
-	$TOTtotWAIT_MS = "$TOTtotWAIT_M_int:$TOTtotWAIT_S";
-	$TOTtotWAIT_MS =		sprintf("%8s", $TOTtotWAIT_MS);
-		while(strlen($TOTtotWAIT_MS)>8) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
-
-	if ($TOTtotTALK < 1) {$TOTavgTALK_M = '0';}
-	else {$TOTavgTALK_M = ( ($TOTtotTALK / $TOTcalls) / 60);}
-	$TOTavgTALK_M_int = round($TOTavgTALK_M, 2);
-	$TOTavgTALK_M_int = intval("$TOTavgTALK_M_int");
-	$TOTavgTALK_S = ($TOTavgTALK_M - $TOTavgTALK_M_int);
-	$TOTavgTALK_S = ($TOTavgTALK_S * 60);
-	$TOTavgTALK_S = round($TOTavgTALK_S, 0);
-	if ($TOTavgTALK_S < 10) {$TOTavgTALK_S = "0$TOTavgTALK_S";}
-	$TOTavgTALK_MS = "$TOTavgTALK_M_int:$TOTavgTALK_S";
-	$TOTavgTALK_MS =		sprintf("%6s", $TOTavgTALK_MS);
-		while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
-
-	if ($TOTtotDISPO < 1) {$TOTavgDISPO_M = '0';}
-	else {$TOTavgDISPO_M = ( ($TOTtotDISPO / $TOTcalls) / 60);}
-	$TOTavgDISPO_M_int = round($TOTavgDISPO_M, 2);
-	$TOTavgDISPO_M_int = intval("$TOTavgDISPO_M_int");
-	$TOTavgDISPO_S = ($TOTavgDISPO_M - $TOTavgDISPO_M_int);
-	$TOTavgDISPO_S = ($TOTavgDISPO_S * 60);
-	$TOTavgDISPO_S = round($TOTavgDISPO_S, 0);
-	if ($TOTavgDISPO_S < 10) {$TOTavgDISPO_S = "0$TOTavgDISPO_S";}
-	$TOTavgDISPO_MS = "$TOTavgDISPO_M_int:$TOTavgDISPO_S";
-	$TOTavgDISPO_MS =		sprintf("%6s", $TOTavgDISPO_MS);
-		while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTavgPAUSE_M = '0';}
-	else {$TOTavgPAUSE_M = ( ($TOTtotPAUSE / $TOTcalls) / 60);}
-	$TOTavgPAUSE_M_int = round($TOTavgPAUSE_M, 2);
-	$TOTavgPAUSE_M_int = intval("$TOTavgPAUSE_M_int");
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_M - $TOTavgPAUSE_M_int);
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_S * 60);
-	$TOTavgPAUSE_S = round($TOTavgPAUSE_S, 0);
-	if ($TOTavgPAUSE_S < 10) {$TOTavgPAUSE_S = "0$TOTavgPAUSE_S";}
-	$TOTavgPAUSE_MS = "$TOTavgPAUSE_M_int:$TOTavgPAUSE_S";
-	$TOTavgPAUSE_MS =		sprintf("%6s", $TOTavgPAUSE_MS);
-		while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTavgWAIT_M = '0';}
-	else {$TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60);}
-	$TOTavgWAIT_M_int = round($TOTavgWAIT_M, 2);
-	$TOTavgWAIT_M_int = intval("$TOTavgWAIT_M_int");
-	$TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int);
-	$TOTavgWAIT_S = ($TOTavgWAIT_S * 60);
-	$TOTavgWAIT_S = round($TOTavgWAIT_S, 0);
-	if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";}
-	$TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S";
-	$TOTavgWAIT_MS =		sprintf("%6s", $TOTavgWAIT_MS);
-		while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
 
 
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 echo "\n\n";
 
@@ -658,7 +599,7 @@ $PCusers='-';
 $PCusersARY=$MT;
 $PCuser_namesARY=$MT;
 $k=0;
-$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 $ugSQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $subs_to_print = mysql_num_rows($rslt);
@@ -695,9 +636,9 @@ while ($i < $subs_to_print)
 	}
 
 echo "PAUSE CODE BREAKDOWN:\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
-echo "| USER NAME       | ID       | TOTAL  |NONPAUSE| PAUSE  |  |$sub_statusesHTML\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -738,15 +679,8 @@ while ($m < $k)
 				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
 				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
 
-				$USERcodePAUSE_M = ($PCpause_sec[$i] / 60);
-				$USERcodePAUSE_M_int = round($USERcodePAUSE_M, 2);
-				$USERcodePAUSE_M_int = intval("$USERcodePAUSE_M_int");
-				$USERcodePAUSE_S = ($USERcodePAUSE_M - $USERcodePAUSE_M_int);
-				$USERcodePAUSE_S = ($USERcodePAUSE_S * 60);
-				$USERcodePAUSE_S = round($USERcodePAUSE_S, 0);
-				if ($USERcodePAUSE_S < 10) {$USERcodePAUSE_S = "0$USERcodePAUSE_S";}
-				$USERcodePAUSE_MS = "$USERcodePAUSE_M_int:$USERcodePAUSE_S";
-				$pfUSERcodePAUSE_MS =		sprintf("%6s", $USERcodePAUSE_MS);
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
 
 				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
 				$SstatusesHTML .= " $SstatusTXT |";
@@ -775,7 +709,6 @@ while ($m < $k)
 		{
 		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
 		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
 		$Suser =	sprintf("%-24s", $Suser);
 		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
@@ -783,44 +716,19 @@ while ($m < $k)
 	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
 	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
 
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
 
-	$USERtotNONPAUSE_M = ($Snon_pause_sec / 60);
-	$USERtotNONPAUSE_M_int = round($USERtotNONPAUSE_M, 2);
-	$USERtotNONPAUSE_M_int = intval("$USERtotNONPAUSE_M_int");
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_M - $USERtotNONPAUSE_M_int);
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_S * 60);
-	$USERtotNONPAUSE_S = round($USERtotNONPAUSE_S, 0);
-	if ($USERtotNONPAUSE_S < 10) {$USERtotNONPAUSE_S = "0$USERtotNONPAUSE_S";}
-	$USERtotNONPAUSE_MS = "$USERtotNONPAUSE_M_int:$USERtotNONPAUSE_S";
-	$pfUSERtotNONPAUSE_MS =		sprintf("%6s", $USERtotNONPAUSE_MS);
-
-	$USERtotTOTAL_M = ($Stotal_sec / 60);
-	$USERtotTOTAL_M_int = round($USERtotTOTAL_M, 2);
-	$USERtotTOTAL_M_int = intval("$USERtotTOTAL_M_int");
-	$USERtotTOTAL_S = ($USERtotTOTAL_M - $USERtotTOTAL_M_int);
-	$USERtotTOTAL_S = ($USERtotTOTAL_S * 60);
-	$USERtotTOTAL_S = round($USERtotTOTAL_S, 0);
-	if ($USERtotTOTAL_S < 10) {$USERtotTOTAL_S = "0$USERtotTOTAL_S";}
-	$USERtotTOTAL_MS = "$USERtotTOTAL_M_int:$USERtotTOTAL_S";
-	$pfUSERtotTOTAL_MS =		sprintf("%6s", $USERtotTOTAL_MS);
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
 
 	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
 
 	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
 
-#	if (!ereg("ID|TIME|CALLS",$stage))
-#		{
-		echo "$BOTTOMoutput";
-#		}
+	echo "$BOTTOMoutput";
 
 	$m++;
 	}
@@ -873,15 +781,8 @@ while ($n < $j)
 		{
 		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
 
-		$USERsumstatPAUSE_M = ($Scalls / 60);
-		$USERsumstatPAUSE_M_int = round($USERsumstatPAUSE_M, 2);
-		$USERsumstatPAUSE_M_int = intval("$USERsumstatPAUSE_M_int");
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_M - $USERsumstatPAUSE_M_int);
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_S * 60);
-		$USERsumstatPAUSE_S = round($USERsumstatPAUSE_S, 0);
-		if ($USERsumstatPAUSE_S < 10) {$USERsumstatPAUSE_S = "0$USERsumstatPAUSE_S";}
-		$USERsumstatPAUSE_MS = "$USERsumstatPAUSE_M_int:$USERsumstatPAUSE_S";
-		$pfUSERsumstatPAUSE_MS =		sprintf("%6s", $USERsumstatPAUSE_MS);
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
 
 		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
 		$SUMstatusesHTML .= " $SUMstatusTXT |";
@@ -892,44 +793,22 @@ while ($n < $j)
 
 	$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
 
-	$TOTtotNONPAUSE_M = ($TOTtotNONPAUSE / 60);
-	$TOTtotNONPAUSE_M_int = round($TOTtotNONPAUSE_M, 2);
-	$TOTtotNONPAUSE_M_int = intval("$TOTtotNONPAUSE_M_int");
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_M - $TOTtotNONPAUSE_M_int);
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_S * 60);
-	$TOTtotNONPAUSE_S = round($TOTtotNONPAUSE_S, 0);
-	if ($TOTtotNONPAUSE_S < 10) {$TOTtotNONPAUSE_S = "0$TOTtotNONPAUSE_S";}
-	$TOTtotNONPAUSE_MS = "$TOTtotNONPAUSE_M_int:$TOTtotNONPAUSE_S";
-	$TOTtotNONPAUSE_MS =		sprintf("%8s", $TOTtotNONPAUSE_MS);
-		while(strlen($TOTtotNONPAUSE_MS)>8) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
 
-	$TOTtotTOTAL_M = ($TOTtotTOTAL / 60);
-	$TOTtotTOTAL_M_int = round($TOTtotTOTAL_M, 2);
-	$TOTtotTOTAL_M_int = intval("$TOTtotTOTAL_M_int");
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_M - $TOTtotTOTAL_M_int);
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_S * 60);
-	$TOTtotTOTAL_S = round($TOTtotTOTAL_S, 0);
-	if ($TOTtotTOTAL_S < 10) {$TOTtotTOTAL_S = "0$TOTtotTOTAL_S";}
-	$TOTtotTOTAL_MS = "$TOTtotTOTAL_M_int:$TOTtotTOTAL_S";
-	$TOTtotTOTAL_MS =		sprintf("%8s", $TOTtotTOTAL_MS);
-		while(strlen($TOTtotTOTAL_MS)>8) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
 
 
-
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 echo "\n\n";
 
@@ -940,4 +819,4 @@ echo "\n\n";
 
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_de/AST_agent_status_detail.php b/LANG_www/vicidial_de/AST_agent_status_detail.php index 1d9cd3da..0febd0b6 100644 --- a/LANG_www/vicidial_de/AST_agent_status_detail.php +++ b/LANG_www/vicidial_de/AST_agent_status_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-1554 - First build # 90225-2252 - Added CSV download option # 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags # @@ -202,9 +203,9 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Tage Status\n"; + echo "Agent Status Detail Report\n"; echo ""; $short_header=1; @@ -252,14 +253,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Status Detail $NOW_TIME\n"; + echo "Agent Status Detail Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- MITTELDetails -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Status Detail $NOW_TIME\n"; + $file_output .= "Agent Status Detail Report $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } @@ -284,7 +285,7 @@ else { $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) and (strlen($row[3]) > 0) ) + if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3]))) { $calls[$i] = $row[0]; $full_name[$i] = $row[1]; diff --git a/LANG_www/vicidial_de/AST_agent_time_detail.php b/LANG_www/vicidial_de/AST_agent_time_detail.php new file mode 100644 index 00000000..a98137e5 --- /dev/null +++ b/LANG_www/vicidial_de/AST_agent_time_detail.php @@ -0,0 +1,867 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 90522-0723 - First build +# 90908-1103 - Added DEAD time stats +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($stage)<2) {$stage='NAME';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + $TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL); + $TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/LANG_www/vicidial_de/AST_agent_time_sheet.php b/LANG_www/vicidial_de/AST_agent_time_sheet.php
index 785bfde1..da1bdc80 100644
--- a/LANG_www/vicidial_de/AST_agent_time_sheet.php
+++ b/LANG_www/vicidial_de/AST_agent_time_sheet.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -9,9 +9,28 @@
 #            - Added required user/pass to gain access to this page
 # 80624-0132 - Added vicidial_timeclock entries
 # 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
 #
 
 require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
 
 $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
 $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
@@ -32,11 +51,12 @@ $user=$agent;
 $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
 $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
 
-	$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
-	if ($DB) {echo "|$stmt|\n";}
-	$rslt=mysql_query($stmt, $link);
-	$row=mysql_fetch_row($rslt);
-	$auth=$row[0];
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
 
   if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
 	{
@@ -64,9 +84,9 @@ if (!isset($query_date)) {$query_date = $NOW_DATE;}
 -->
  
 
-\n";
-echo "VICIDIAL: Agent Time Sheet";
+echo "<TITLE>Agent Time Sheet";
 
 
 ##### BEGIN Set variables to make header show properly #####
@@ -122,7 +142,7 @@ if ($DB) {echo "$stmt\n";}
 $row=mysql_fetch_row($rslt);
 $full_name = $row[0];
 
-echo "VICIDIAL: AgentTime Sheet                            $NOW_TIME\n";
+echo "AgentTime Sheet                            $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- MITTELTIME SHEET: $agent - $full_name -------------\n\n";
@@ -136,120 +156,25 @@ if ($calls_summary)
 
 	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
 
-		$TOTAL_TIME_H = ($TOTAL_TIME / 3600);
-		$TOTAL_TIME_H = round($TOTAL_TIME_H, 2);
-		$TOTAL_TIME_H_int = intval("$TOTAL_TIME_H");
-		$TOTAL_TIME_M = ($TOTAL_TIME_H - $TOTAL_TIME_H_int);
-		$TOTAL_TIME_M = ($TOTAL_TIME_M * 60);
-		$TOTAL_TIME_M = round($TOTAL_TIME_M, 2);
-		$TOTAL_TIME_M_int = intval("$TOTAL_TIME_M");
-		$TOTAL_TIME_S = ($TOTAL_TIME_M - $TOTAL_TIME_M_int);
-		$TOTAL_TIME_S = ($TOTAL_TIME_S * 60);
-		$TOTAL_TIME_S = round($TOTAL_TIME_S, 0);
-		if ($TOTAL_TIME_S < 10) {$TOTAL_TIME_S = "0$TOTAL_TIME_S";}
-		if ($TOTAL_TIME_M_int < 10) {$TOTAL_TIME_M_int = "0$TOTAL_TIME_M_int";}
-		$TOTAL_TIME_HMS = "$TOTAL_TIME_H_int:$TOTAL_TIME_M_int:$TOTAL_TIME_S";
-		$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
 
-		$TALK_TIME_H = ($row[1] / 3600);
-		$TALK_TIME_H = round($TALK_TIME_H, 2);
-		$TALK_TIME_H_int = intval("$TALK_TIME_H");
-		$TALK_TIME_M = ($TALK_TIME_H - $TALK_TIME_H_int);
-		$TALK_TIME_M = ($TALK_TIME_M * 60);
-		$TALK_TIME_M = round($TALK_TIME_M, 2);
-		$TALK_TIME_M_int = intval("$TALK_TIME_M");
-		$TALK_TIME_S = ($TALK_TIME_M - $TALK_TIME_M_int);
-		$TALK_TIME_S = ($TALK_TIME_S * 60);
-		$TALK_TIME_S = round($TALK_TIME_S, 0);
-		if ($TALK_TIME_S < 10) {$TALK_TIME_S = "0$TALK_TIME_S";}
-		if ($TALK_TIME_M_int < 10) {$TALK_TIME_M_int = "0$TALK_TIME_M_int";}
-		$TALK_TIME_HMS = "$TALK_TIME_H_int:$TALK_TIME_M_int:$TALK_TIME_S";
-		$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
-
-		$PAUSE_TIME_H = ($row[3] / 3600);
-		$PAUSE_TIME_H = round($PAUSE_TIME_H, 2);
-		$PAUSE_TIME_H_int = intval("$PAUSE_TIME_H");
-		$PAUSE_TIME_M = ($PAUSE_TIME_H - $PAUSE_TIME_H_int);
-		$PAUSE_TIME_M = ($PAUSE_TIME_M * 60);
-		$PAUSE_TIME_M = round($PAUSE_TIME_M, 2);
-		$PAUSE_TIME_M_int = intval("$PAUSE_TIME_M");
-		$PAUSE_TIME_S = ($PAUSE_TIME_M - $PAUSE_TIME_M_int);
-		$PAUSE_TIME_S = ($PAUSE_TIME_S * 60);
-		$PAUSE_TIME_S = round($PAUSE_TIME_S, 0);
-		if ($PAUSE_TIME_S < 10) {$PAUSE_TIME_S = "0$PAUSE_TIME_S";}
-		if ($PAUSE_TIME_M_int < 10) {$PAUSE_TIME_M_int = "0$PAUSE_TIME_M_int";}
-		$PAUSE_TIME_HMS = "$PAUSE_TIME_H_int:$PAUSE_TIME_M_int:$PAUSE_TIME_S";
-		$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
-
-		$WAIT_TIME_H = ($row[5] / 3600);
-		$WAIT_TIME_H = round($WAIT_TIME_H, 2);
-		$WAIT_TIME_H_int = intval("$WAIT_TIME_H");
-		$WAIT_TIME_M = ($WAIT_TIME_H - $WAIT_TIME_H_int);
-		$WAIT_TIME_M = ($WAIT_TIME_M * 60);
-		$WAIT_TIME_M = round($WAIT_TIME_M, 2);
-		$WAIT_TIME_M_int = intval("$WAIT_TIME_M");
-		$WAIT_TIME_S = ($WAIT_TIME_M - $WAIT_TIME_M_int);
-		$WAIT_TIME_S = ($WAIT_TIME_S * 60);
-		$WAIT_TIME_S = round($WAIT_TIME_S, 0);
-		if ($WAIT_TIME_S < 10) {$WAIT_TIME_S = "0$WAIT_TIME_S";}
-		if ($WAIT_TIME_M_int < 10) {$WAIT_TIME_M_int = "0$WAIT_TIME_M_int";}
-		$WAIT_TIME_HMS = "$WAIT_TIME_H_int:$WAIT_TIME_M_int:$WAIT_TIME_S";
-		$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
-
-		$WRAPUP_TIME_H = ($row[7] / 3600);
-		$WRAPUP_TIME_H = round($WRAPUP_TIME_H, 2);
-		$WRAPUP_TIME_H_int = intval("$WRAPUP_TIME_H");
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_H - $WRAPUP_TIME_H_int);
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_M * 60);
-		$WRAPUP_TIME_M = round($WRAPUP_TIME_M, 2);
-		$WRAPUP_TIME_M_int = intval("$WRAPUP_TIME_M");
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_M - $WRAPUP_TIME_M_int);
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_S * 60);
-		$WRAPUP_TIME_S = round($WRAPUP_TIME_S, 0);
-		if ($WRAPUP_TIME_S < 10) {$WRAPUP_TIME_S = "0$WRAPUP_TIME_S";}
-		if ($WRAPUP_TIME_M_int < 10) {$WRAPUP_TIME_M_int = "0$WRAPUP_TIME_M_int";}
-		$WRAPUP_TIME_HMS = "$WRAPUP_TIME_H_int:$WRAPUP_TIME_M_int:$WRAPUP_TIME_S";
-		$pfWRAPUP_TIME_HMS =		sprintf("%8s", $WRAPUP_TIME_HMS);
-
-		$TALK_AVG_M = ($row[2] / 60);
-		$TALK_AVG_M = round($TALK_AVG_M, 2);
-		$TALK_AVG_M_int = intval("$TALK_AVG_M");
-		$TALK_AVG_S = ($TALK_AVG_M - $TALK_AVG_M_int);
-		$TALK_AVG_S = ($TALK_AVG_S * 60);
-		$TALK_AVG_S = round($TALK_AVG_S, 0);
-		if ($TALK_AVG_S < 10) {$TALK_AVG_S = "0$TALK_AVG_S";}
-		$TALK_AVG_MS = "$TALK_AVG_M_int:$TALK_AVG_S";
-		$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
-
-		$PAUSE_AVG_M = ($row[4] / 60);
-		$PAUSE_AVG_M = round($PAUSE_AVG_M, 2);
-		$PAUSE_AVG_M_int = intval("$PAUSE_AVG_M");
-		$PAUSE_AVG_S = ($PAUSE_AVG_M - $PAUSE_AVG_M_int);
-		$PAUSE_AVG_S = ($PAUSE_AVG_S * 60);
-		$PAUSE_AVG_S = round($PAUSE_AVG_S, 0);
-		if ($PAUSE_AVG_S < 10) {$PAUSE_AVG_S = "0$PAUSE_AVG_S";}
-		$PAUSE_AVG_MS = "$PAUSE_AVG_M_int:$PAUSE_AVG_S";
-		$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
-
-		$WAIT_AVG_M = ($row[6] / 60);
-		$WAIT_AVG_M = round($WAIT_AVG_M, 2);
-		$WAIT_AVG_M_int = intval("$WAIT_AVG_M");
-		$WAIT_AVG_S = ($WAIT_AVG_M - $WAIT_AVG_M_int);
-		$WAIT_AVG_S = ($WAIT_AVG_S * 60);
-		$WAIT_AVG_S = round($WAIT_AVG_S, 0);
-		if ($WAIT_AVG_S < 10) {$WAIT_AVG_S = "0$WAIT_AVG_S";}
-		$WAIT_AVG_MS = "$WAIT_AVG_M_int:$WAIT_AVG_S";
-		$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
-
-		$WRAPUP_AVG_M = ($row[8] / 60);
-		$WRAPUP_AVG_M = round($WRAPUP_AVG_M, 2);
-		$WRAPUP_AVG_M_int = intval("$WRAPUP_AVG_M");
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_M - $WRAPUP_AVG_M_int);
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_S * 60);
-		$WRAPUP_AVG_S = round($WRAPUP_AVG_S, 0);
-		if ($WRAPUP_AVG_S < 10) {$WRAPUP_AVG_S = "0$WRAPUP_AVG_S";}
-		$WRAPUP_AVG_MS = "$WRAPUP_AVG_M_int:$WRAPUP_AVG_S";
-		$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
 
 	echo "GESAMTANRUFETAKEN: $row[0]\n";
 	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
@@ -284,23 +209,11 @@ echo "LAST LOG ACTIVITY:    $row[0]\n";
 $end = $row[1];
 
 $login_time = ($end - $start);
-	$LOGIN_TIME_H = ($login_time / 3600);
-	$LOGIN_TIME_H = round($LOGIN_TIME_H, 2);
-	$LOGIN_TIME_H_int = intval("$LOGIN_TIME_H");
-	$LOGIN_TIME_M = ($LOGIN_TIME_H - $LOGIN_TIME_H_int);
-	$LOGIN_TIME_M = ($LOGIN_TIME_M * 60);
-	$LOGIN_TIME_M = round($LOGIN_TIME_M, 2);
-	$LOGIN_TIME_M_int = intval("$LOGIN_TIME_M");
-	$LOGIN_TIME_S = ($LOGIN_TIME_M - $LOGIN_TIME_M_int);
-	$LOGIN_TIME_S = ($LOGIN_TIME_S * 60);
-	$LOGIN_TIME_S = round($LOGIN_TIME_S, 0);
-	if ($LOGIN_TIME_S < 10) {$LOGIN_TIME_S = "0$LOGIN_TIME_S";}
-	if ($LOGIN_TIME_M_int < 10) {$LOGIN_TIME_M_int = "0$LOGIN_TIME_M_int";}
-	$LOGIN_TIME_HMS = "$LOGIN_TIME_H_int:$LOGIN_TIME_M_int:$LOGIN_TIME_S";
-	$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
 
 echo "-----------------------------------------\n";
-echo "TOTAL LOGGED-IN TIME:    $pfLOGIN_TIME_HMS\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
 
 
 ### timeclock records
@@ -354,20 +267,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f
 			{
 			$login_sec = $row[3];
 			$total_login_time = ($total_login_time + $login_sec);
-			$event_hours = ($login_sec / 3600);
-			$event_hours_int = round($event_hours, 2);
-			$event_hours_int = intval("$event_hours_int");
-			$event_minutes = ($event_hours - $event_hours_int);
-			$event_minutes = ($event_minutes * 60);
-			$event_minutes_int = round($event_minutes, 0);
-			if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";}
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
 			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
 			echo "<td align=right><font size=2>$manager_edit</td>";
 			echo "<td align=right><font size=2>$row[0]</td>";
 			echo "<td align=right><font size=2> $TC_log_date</td>\n";
 			echo "<td align=right><font size=2> $row[4]</td>\n";
 			echo "<td align=right><font size=2> $row[2]</td>\n";
-			echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int";
+			echo "<td align=right><font size=2> $event_hours_minutes";
 			if ($DB) {echo " - $total_login_time - $login_sec";}
 			echo "</td></tr>\n";
 			}
@@ -379,13 +287,7 @@ if (strlen($login_sec)<1)
 	$total_login_time = ($total_login_time + $login_sec);
 		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
 	}
-$total_login_hours = ($total_login_time / 3600);
-$total_login_hours_int = round($total_login_hours, 2);
-$total_login_hours_int = intval("$total_login_hours_int");
-$total_login_minutes = ($total_login_hours - $total_login_hours_int);
-$total_login_minutes = ($total_login_minutes * 60);
-$total_login_minutes_int = round($total_login_minutes, 0);
-if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
 
 	if ($DB) {echo " - $total_login_time - $login_sec";}
 
@@ -393,8 +295,8 @@ echo "<tr><td align=right><font size=2> </td>";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
-echo "<td align=right><font size=2><font size=2>TOTAL </td>\n";
-echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int  </td></tr>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
 
 echo "</TABLE>\n";
 
@@ -406,4 +308,4 @@ echo "</TABLE>\n";
 
 ?>
 
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
diff --git a/LANG_www/vicidial_de/AST_agent_timeclock_detail.php b/LANG_www/vicidial_de/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/LANG_www/vicidial_de/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
+$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
+
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
+	{
+    Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\"");
+    Header("HTTP/1.0 401 Unauthorized");
+    echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/LANG_www/vicidial_de/AST_inboundEXTstats.php b/LANG_www/vicidial_de/AST_inboundEXTstats.php index bdcc19db..550b42a7 100644 --- a/LANG_www/vicidial_de/AST_inboundEXTstats.php +++ b/LANG_www/vicidial_de/AST_inboundEXTstats.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # 60421-1450 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60620-1322 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $inbound_to_print) --> -\n"; #echo"\n"; echo "ASTERISK: Inbound Anruf-Notfall\n"; diff --git a/LANG_www/vicidial_de/AST_server_performance.php b/LANG_www/vicidial_de/AST_server_performance.php index cf90e55b..8ea9fdf7 100644 --- a/LANG_www/vicidial_de/AST_server_performance.php +++ b/LANG_www/vicidial_de/AST_server_performance.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # - Fixed vertical scaling issues # 80118-1508 - Fixed horizontal scale marking issues # 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -24,6 +25,8 @@ if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"]; elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} @@ -82,9 +85,9 @@ while ($i < $servers_to_print) --> -\n"; -echo "VICIDIAL: Server Performance\n"; +echo "Server Performance Report\n"; $short_header=1; @@ -125,7 +128,7 @@ $query_date_BEGIN = $begin_query_time; $query_date_END = $end_query_time; -echo "VICIDIAL: Server Performance $NOW_TIME\n"; +echo "Server Performance Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- TOTALS, PEAKS and AVERAGES\n"; diff --git a/LANG_www/vicidial_de/AST_timeonVDAD.php b/LANG_www/vicidial_de/AST_timeonVDAD.php index 87dc08c5..4e89abe6 100644 --- a/LANG_www/vicidial_de/AST_timeonVDAD.php +++ b/LANG_www/vicidial_de/AST_timeonVDAD.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -13,6 +13,7 @@ # 80422-0305 - Added phone login to display, lower font size to 2 # 81013-2227 - Fixed Remote Agent display bug # 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -77,7 +78,7 @@ if ($reset_counter > 7) -\n"; echo " -\n"; echo"\n"; -echo "VICIDIAL: Time On VDAD\n"; +echo "Server-Specific Real-Time Report\n"; $short_header=1; @@ -143,7 +144,7 @@ echo "SERVER: $server_ip\n"; if ($closer_display>0) {$closer_display_reverse=0; $closer_reverse_link='DEFAULT';} else {$closer_display_reverse=1; $closer_reverse_link='CLOSER';} -echo "VICIDIAL: Agents Time On Calls $NOW_TIME $closer_reverse_link | REPORTS\n\n"; +echo "Bevollmächtigte Time On Calls $NOW_TIME $closer_reverse_link | REPORTS\n\n"; if ($closer_display>0) { @@ -364,7 +365,7 @@ $talking_to_print = mysql_num_rows($rslt); #echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Time On VDAD TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; +echo "Server-Specific Real-Time Report TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; echo "| CHANNEL | STATUS | CAMPAIGN | PHONE NUMBER | CALLTIME | MINUTES |\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; diff --git a/LANG_www/vicidial_de/AST_timeonVDADall.php b/LANG_www/vicidial_de/AST_timeonVDADall.php index c2bd505a..cc7a4410 100644 --- a/LANG_www/vicidial_de/AST_timeonVDADall.php +++ b/LANG_www/vicidial_de/AST_timeonVDADall.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -45,14 +45,29 @@ # 90105-1153 - Changed monitor links to use 0 prefix instead of 6 # 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option # 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended # -$version = '2.0.5-36'; -$build = '90310-0906'; + +$version = '2.2.0-49'; +$build = '91204-1548'; header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -97,6 +112,11 @@ if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdispl elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -115,13 +135,14 @@ while ($i < $qm_conf_ct) ##### END SETTINGS LOOKUP ##### ########################################### +if (!isset($DB)) {$DB=0;} if (!isset($RR)) {$RR=40;} if (!isset($group)) {$group='';} if (!isset($usergroup)) {$usergroup='';} if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes -if (!isset($UidORname)) {$UidORname=0;} # 0=id, 1=name +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name if (!isset($orderby)) {$orderby='timeup';} -if (!isset($SERVdisplay)) {$SERVdisplay=1;} # 0=no, 1=yes +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes @@ -138,50 +159,66 @@ $ingroup_detail=''; if (strlen($group)>1) {$groups[0] = $group; $RR=40;} else {$group = $groups[0];} -function get_server_load($windows = false) { -$os = strtolower(PHP_OS); -if(strpos($os, "win") === false) { -if(file_exists("/proc/loadavg")) { -$load = file_get_contents("/proc/loadavg"); -$load = explode(' ', $load); -return $load[0]; -} -elseif(function_exists("shell_exec")) { -$load = explode(' ', `uptime`); -return $load[count($load)-1]; -} -else { -return false; -} -} -elseif($windows) { -if(class_exists("COM")) { -$wmi = new COM("WinMgmts:\\\\."); -$cpus = $wmi->InstancesOf("Win32_Processor"); +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); -$cpuload = 0; -$i = 0; -while ($cpu = $cpus->Next()) { -$cpuload += $cpu->LoadPercentage; -$i++; -} + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } -$cpuload = round($cpuload / $i, 2); -return "$cpuload%"; -} -else { -return false; -} -} -} + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } $load_ave = get_server_load(true); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); @@ -195,17 +232,18 @@ $auth=$row[0]; echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - -$NOW_TIME = date("Y-m-d H:i:s"); -$NOW_DAY = date("Y-m-d"); -$NOW_HOUR = date("H:i:s"); -$STARTtime = date("U"); -$epochSIXhoursAGO = ($STARTtime - 21600); -$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } $stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; $rslt=mysql_query($stmt, $link); -if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; @@ -230,21 +268,32 @@ while($i < $group_ct) $groupQS .= "&groups[]=$groups[$i]"; $i++; } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) { + $all_active = 0; $group_SQL = "''"; -# $group_SQL = "group_id IN('')"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; } else { - $group_SQL = eregi_replace(",$",'',$group_SQL); -# $group_SQL = "group_id IN($group_SQL)"; + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; } -#if ( (eregi('ALL-ACTIVE',$group_string)) and ($with_inbound=='O') and ($outbound_autodial_active > 0) ) -# {$with_inbound='N';} -$stmt="select * from vicidial_user_groups;"; +$stmt="select user_group from vicidial_user_groups;"; $rslt=mysql_query($stmt, $link); if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} @@ -265,14 +314,14 @@ $F=''; $FG=''; $B=''; $BG=''; $select_list = ""; $select_list .= "
Select Kampagnen:
"; $select_list .= ""; $select_list .= "
(Um mehr als 1 Kampagne, halten Sie die Strg-Taste gedrückt und klicken Sie auf)"; @@ -284,12 +333,12 @@ if ($UGdisplay > 0) $select_list .= "Select Benutzer-Gruppe:
"; $select_list .= "

"; } @@ -306,6 +355,26 @@ $select_list .= "
"; @@ -323,18 +392,229 @@ $open_list = "< \n"; -$stmt = "select count(*) from vicidial_campaigns where campaign_id IN($group_SQL) and campaign_allow_inbound='Y';"; +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $campaign_allow_inbound = $row[0]; echo "\n"; -echo"\n"; -echo "VICIDIAL: Time On VDAD Kampagne: $group\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; $short_header=1; @@ -397,9 +678,11 @@ echo "VICIDIAL: Time On VDAD Kampagne: $group
"; -echo "
\n"; +echo "\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -411,15 +694,18 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL Real-Time                                                                          \n"; -echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; echo "
\n"; echo "Wählen Sie Report anzeigen Optionen"; echo "
\n"; echo "
\n"; -echo "STOP | "; -echo "SLOW | "; -echo "GO"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; if (eregi('ALL-ACTIVE',$group_string)) { echo "       ÄNDERN Sie | \n"; @@ -436,14 +722,30 @@ if (!$group) {echo "

please select a campaign from the pulldown above $c) { - $multi_drop++; - $stmt = "select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); $ccamps_to_print = mysql_num_rows($rslt); + $c=0; while ($ccamps_to_print > $c) { $row=mysql_fetch_row($rslt); @@ -453,8 +755,19 @@ if (ereg('O',$with_inbound)) $closer_campaignsSQL .= "'$closer_campaigns',"; $c++; } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; if ($adastats>1) { @@ -569,16 +882,19 @@ if (ereg('O',$with_inbound)) } - $stmt="select agent_pause_codes_active from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; if (eregi('ALL-ACTIVE',$group_string)) { - $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats;"; + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; } - $stmtC="select agent_non_pause_sec from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} @@ -696,10 +1012,13 @@ else { if (eregi('ALL-ACTIVE',$group_string)) { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} $multi_drop++; - $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns;"; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; - $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats;"; + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; } else { @@ -708,29 +1027,15 @@ else if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) { $multi_drop++; - $stmt = "select distinct closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} - $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; } else { - $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; } @@ -758,16 +1063,11 @@ else $CALLtime = $row[16]; $DIALtimeout = $row[17]; $DIALstatuses = $row[18]; - $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); - $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; - $stmt="select count(*) from vicidial_hopper where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select count(*) from vicidial_hopper;"; - } + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $VDhop = $row[0]; @@ -809,15 +1109,29 @@ else } else {$diffpctONEMIN = '0.00';} - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats;"; - } + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $balanceSHORT = $row[0]; + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "US-Mix: $row[0]"; + $DIALorder = "US-Mix: $row[0]"; + } + } + echo "
"; echo ""; echo ""; @@ -890,59 +1204,59 @@ echo "$ingroup_detail"; if ($adastats<2) { - echo "+ VIEW MORE"; + echo "+ VIEW MORE"; } else { - echo "+ VIEW LESS"; + echo "+ VIEW LESS"; } if ($UGdisplay>0) { - echo "       Verberge User Group"; + echo "       Verberge User Group"; } else { - echo "       VIEW User Group"; + echo "       VIEW User Group"; } if ($UidORname>0) { - echo "       Zeige MITTELID"; + echo "       Zeige MITTELID"; } else { - echo "       Zeige MITTELNAME"; + echo "       Zeige MITTELNAME"; } if ($SERVdisplay>0) { - echo "       Verberge BEDIENERINFO"; + echo "       Verberge BEDIENERINFO"; } else { - echo "       Zeige BEDIENERINFO"; + echo "       Zeige BEDIENERINFO"; } if ($CALLSdisplay>0) { - echo "       Verberge WAITING CALLS"; + echo "       Verberge WAITING CALLS"; } else { - echo "       Zeige WAITING CALLS"; + echo "       Zeige WAITING CALLS"; } if ($PHONEdisplay>0) { - echo "       Verberge PHONES"; + echo "       Verberge PHONES"; } else { - echo "       Zeige PHONES"; + echo "       Zeige PHONES"; } if ($CUSTPHONEdisplay>0) { - echo "       Verberge CUSTPHONES"; + echo "       Verberge CUSTPHONES"; } else { - echo "       Zeige CUSTPHONES"; + echo "       Zeige CUSTPHONES"; } echo ""; echo ""; @@ -955,34 +1269,15 @@ echo "\n\n"; ################################################################################### if ($campaign_allow_inbound > 0) { - $stmt="select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - $closer_campaignsSQL=''; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (campaign_id IN($group_SQL) and call_type IN('OUT','OUTBALANCE')) ) order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; } else { - if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} - else {$UgroupSQL = " and campaign_id IN($group_SQL)";} - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $UgroupSQL order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; } if ($CALLSdisplay > 0) { - $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority"; + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; } else { @@ -991,6 +1286,7 @@ else $k=0; +$agentonlycount=0; $stmt = "$stmtA $stmtB"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} @@ -1019,6 +1315,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1037,6 +1335,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1089,11 +1389,13 @@ $parked_to_print = mysql_num_rows($rslt); ################################################################################### ###### CALLS WAITING ################################################################################### - +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} $Cecho = ''; $Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; -$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITY |\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITY | $agentonlyheader\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; $p=0; @@ -1105,24 +1407,23 @@ while($p<$k) $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); - $Ccall_time_M = ($Ccall_time_S / 60); - $Ccall_time_M = round($Ccall_time_M, 2); - $Ccall_time_M_int = intval("$Ccall_time_M"); - $Ccall_time_SEC = ($Ccall_time_M - $Ccall_time_M_int); - $Ccall_time_SEC = ($Ccall_time_SEC * 60); - $Ccall_time_SEC = round($Ccall_time_SEC, 0); - if ($Ccall_time_SEC < 10) {$Ccall_time_SEC = "0$Ccall_time_SEC";} - $Ccall_time_MS = "$Ccall_time_M_int:$Ccall_time_SEC"; + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); $G = ''; $EG = ''; if ($CDcall_type[$p] == 'IN') { - $G=""; $EG=''; + $G=""; $EG=''; } - $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG |\n"; + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; $p++; } @@ -1159,39 +1460,41 @@ if ($campaignord=='campaignup') {$campaignord='campaigndown';} else {$campaignord='campaignup';} $Aecho = ''; -$Aecho .= "VICIDIAL: Agents Time On Calls Kampagne: $group_string $NOW_TIME\n"; +$Aecho .= "VICIDIAL: Bevollmächtigte Time On Calls Kampagne: $group_string $NOW_TIME\n"; $HDbegin = "+"; $HTbegin = "|"; -$HDstation = "------------+"; -$HTstation = " STATION |"; -$HDphone = "------------+"; -$HTphone = " PHONE |"; -$HDuser = "--------------------+"; -$HTuser = " USER |"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; $HDusergroup = "--------------+"; -$HTusergroup = " User Group |"; +$HTusergroup = " User Group |"; $HDsessionid = "------------------+"; $HTsessionid = " SESSIONID |"; $HDbarge = "-------+"; $HTbarge = " BARGE |"; $HDstatus = "----------+"; $HTstatus = " STATUS |"; -$HDcustphone = "------------+"; -$HTcustphone = " CUST PHONE |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; $HDserver_ip = "-----------------+"; $HTserver_ip = " BEDIENERIP |"; $HDcall_server_ip = "-----------------+"; $HTcall_server_ip = " CALL BEDIENERIP |"; $HDtime = "---------+"; -$HTtime = " MM:SS |"; +$HTtime = " MM:SS |"; $HDcampaign = "------------+"; -$HTcampaign = " CAMPAIGN |"; +$HTcampaign = " CAMPAIGN |"; $HDcalls = "-------+"; $HTcalls = " CALLS |"; $HDpause = ''; $HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; if (!ereg("N",$agent_pause_codes_active)) { @@ -1215,12 +1518,12 @@ if ($UGdisplay < 1) $HDusergroup = ''; $HTusergroup = ''; } -if ( ($SIPmonitorLINK<1) && ($IAXmonitorLINK<1) ) +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) { $HDsessionid = "-----------+"; $HTsessionid = " SESSIONID |"; } -if ( ($SIPmonitorLINK<2) && ($IAXmonitorLINK<2) ) +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) { $HDbarge = ''; $HTbarge = ''; @@ -1235,8 +1538,8 @@ if ($SERVdisplay < 1) -$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls\n"; -$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls\n"; +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; $Aecho .= "$Aline"; $Aecho .= "$Bline"; $Aecho .= "$Aline"; @@ -1265,7 +1568,7 @@ else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} if (strlen($usergroup)<1) {$usergroupSQL = '';} else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} -$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); @@ -1291,6 +1594,7 @@ $talking_to_print = mysql_num_rows($rslt); $Acalls_today[$i] = $row[12]; $Acallerid[$i] = $row[13]; $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; $i++; } @@ -1352,6 +1656,12 @@ $calls_to_list = mysql_num_rows($rslt); $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); $exten = "extension='$dialplan'"; } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; $rslt=mysql_query($stmt, $link); @@ -1396,9 +1706,9 @@ $calls_to_list = mysql_num_rows($rslt); $phone_split = explode("-----",$Alogin[$j]); $i = $phone_split[1]; - if (eregi("READY|PAUSED",$Astatus[$i])) + if (eregi("READY|PAUSED",$Astatus[$i])) { - $Acall_time[$i]=$Acall_finish[$i]; + $Acall_time[$i]=$Astate_change[$i]; if ($Alead_id[$i] > 0) { @@ -1407,27 +1717,28 @@ $calls_to_list = mysql_num_rows($rslt); $status = ' DISPO'; } } - if ($non_latin < 1) + if ($non_latin < 1) { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-10s", $extension); - while(strlen($extension)>10) {$extension = substr("$extension", 0, -1);} + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} } - else + else { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-40s", $extension); - while(mb_strlen($extension, 'utf-8')>10) {$extension = mb_substr("$extension", 0, -1,'utf8');} + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} } - $phone = sprintf("%-10s", $phone_split[0]); - $custphone = sprintf("%-10s", $custphone); + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); $Luser = $Auser[$i]; - $user = sprintf("%-18s", $Auser[$i]); + $user = sprintf("%-20s", $Auser[$i]); $Lsessionid = $Asessionid[$i]; $sessionid = sprintf("%-9s", $Asessionid[$i]); $Lstatus = $Astatus[$i]; $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; $server_ip = sprintf("%-15s", $Aserver_ip[$i]); $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); @@ -1441,12 +1752,27 @@ $calls_to_list = mysql_num_rows($rslt); if (eregi("INCALL",$Lstatus)) { - ### temporarily deactivate DEAD calls display until bug is fixed - if (!ereg("$Acallerid[$i]\|",$callerids)) + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) { - $Astatus[$i] = 'DEAD'; - $Lstatus = 'DEAD'; - $status = ' DEAD '; + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } } if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) @@ -1463,12 +1789,12 @@ $calls_to_list = mysql_num_rows($rslt); if ($UGdisplay > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { $user_group = sprintf("%-12s", $Auser_group[$i]); while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} } - else + else { $user_group = sprintf("%-40s", $Auser_group[$i]); while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} @@ -1476,42 +1802,35 @@ $calls_to_list = mysql_num_rows($rslt); } if ($UidORname > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { - $user = sprintf("%-18s", $Afull_name[$i]); - while(strlen($user)>18) {$user = substr("$user", 0, -1);} + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} } - else + else { - $user = sprintf("%-40s", $Afull_name[$i]); - while(mb_strlen($user, 'utf-8')>18) {$user = mb_substr("$user", 0, -1,'utf8');} + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} } } - if (!eregi("INCALL|QUEUE",$Astatus[$i])) - {$call_time_S = ($STARTtime - $Acall_finish[$i]);} + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} else {$call_time_S = ($STARTtime - $Acall_time[$i]);} - $call_time_M = ($call_time_S / 60); - $call_time_M = round($call_time_M, 2); - $call_time_M_int = intval("$call_time_M"); - $call_time_SEC = ($call_time_M - $call_time_M_int); - $call_time_SEC = ($call_time_SEC * 60); - $call_time_SEC = round($call_time_SEC, 0); - if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} - $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sec_convert($call_time_S,'M'); $call_time_MS = sprintf("%7s", $call_time_MS); $G = ''; $EG = ''; - if ($Lstatus=='INCALL') + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) { if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} - # if ($call_time_M_int >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} } if ($Lstatus=='DEAD') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { @@ -1522,15 +1841,15 @@ $calls_to_list = mysql_num_rows($rslt); } if ($Lstatus=='DISPO') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } if ($Lstatus=='PAUSED') @@ -1546,27 +1865,27 @@ $calls_to_list = mysql_num_rows($rslt); else {$pausecode='';} - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } # if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) # {$G=''; $EG='';} - if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) { $G=''; $EG=''; - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } $L=''; @@ -1575,6 +1894,10 @@ $calls_to_list = mysql_num_rows($rslt); if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} if ($SIPmonitorLINK>1) {$R=" | BARGE";} if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} else {$CP = "";} @@ -1586,31 +1909,31 @@ $calls_to_list = mysql_num_rows($rslt); else {$SVD = "";} if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} - else {$phoneD = "";} + else {$phoneD = " ";} $vac_stage=''; $vac_campaign=''; $INGRP=''; if ($CM == 'I') { - $stmt="select campaign_id,stage from vicidial_auto_calls where callerid='$Acallerid[$i]' LIMIT 1;"; + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $ingrp_to_print = mysql_num_rows($rslt); if ($ingrp_to_print > 0) { $row=mysql_fetch_row($rslt); - $vac_campaign = sprintf("%-20s", $row[0]); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); $row[1] = eregi_replace(".*-",'',$row[1]); $vac_stage = sprintf("%-4s", $row[1]); } - $INGRP = " $G$vac_stage$EG $G$vac_campaign$EG "; + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; } $agentcount++; - $Aecho .= "| $G$extension$EG |$phoneD $G$user$EG |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG+ |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; $j++; } diff --git a/LANG_www/vicidial_de/AST_timeonVDADallSUMMARY.php b/LANG_www/vicidial_de/AST_timeonVDADallSUMMARY.php index b552873b..20136589 100644 --- a/LANG_www/vicidial_de/AST_timeonVDADallSUMMARY.php +++ b/LANG_www/vicidial_de/AST_timeonVDADallSUMMARY.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -15,6 +15,7 @@ # 71029-1900 - Changed CLOSER-type to not require campaign_id restriction # 80525-1040 - Added IVR status summary display for inbound calls # 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -103,10 +104,10 @@ if (!isset($RR)) {$RR=4;} --> -\n"; -echo "VICIDIAL: Realtime All Kampagnen Summary\n"; +echo "Real-Time All Kampagnen Summary\n"; $short_header=1; @@ -114,7 +115,7 @@ echo "VICIDIAL: Realtime All Kampagnen Summary
DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL    
"; -echo "VICIDIAL: Realtime All Kampagnen Summary           \n"; +echo "Real-Time All Kampagnen Summary           \n"; echo "STOP | "; echo "SLOW | "; echo "GO "; diff --git a/LANG_www/vicidial_de/AST_timeonpark.php b/LANG_www/vicidial_de/AST_timeonpark.php index adae33b1..7a049e62 100644 --- a/LANG_www/vicidial_de/AST_timeonpark.php +++ b/LANG_www/vicidial_de/AST_timeonpark.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60620-1042 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -83,7 +84,7 @@ if ($reset_counter > 7) --> -\n"; echo"\n"; echo "VICIDIAL: Time On Park\n"; @@ -154,7 +155,7 @@ $parked_to_print = mysql_num_rows($rslt); echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Agents Time On Inbound Calls $NOW_TIME\n\n"; +echo "VICIDIAL: Bevollmächtigte Time On Inbound Calls $NOW_TIME\n\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; echo "| STATION | USER | CHANNEL | GROUP | START TIME | MINUTES |\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; diff --git a/LANG_www/vicidial_de/admin.php b/LANG_www/vicidial_de/admin.php index 739d72ce..06129ac4 100644 --- a/LANG_www/vicidial_de/admin.php +++ b/LANG_www/vicidial_de/admin.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -38,6 +38,9 @@ $reports_color = '#99FF33'; $carriers_color = '#FF33FF'; $settings_color = '#FF33FF'; $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; $subcamp_color = '#FF9933'; $users_font = 'BLACK'; $campaigns_font = 'BLACK'; @@ -55,6 +58,9 @@ $reports_font = 'BLACK'; $server_font = 'BLACK'; $settings_font = 'BLACK'; $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; $subcamp_font = 'BLACK'; ### comment this section out for colorful section headings @@ -77,6 +83,9 @@ $reports_color = '#E6E6E6'; $carriers_color = '#C6C6C6'; $settings_color = '#C6C6C6'; $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; $subcamp_color = '#C6C6C6'; ### @@ -954,7 +963,208 @@ if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enfor elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} - +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -967,12 +1177,11 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -980,7 +1189,9 @@ while ($i < $qm_conf_ct) $SSenable_vtiger_integration = $row[2]; $SSqc_features_active = $row[3]; $SSoutbound_autodial_active = $row[4]; - $i++; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -992,476 +1203,601 @@ while ($i < $qm_conf_ct) ###################################################################################################### if ($non_latin < 1) -{ -### DIGITS ONLY ### -$adaptive_dropped_percentage = ereg_replace("[^0-9]","",$adaptive_dropped_percentage); -$adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); -$admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); -$admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); -$admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); -$AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); -$agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); -$agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); -$agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); -$AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); -$allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); -$alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); -$am_message_exten = ereg_replace("[^0-9]","",$am_message_exten); -$answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); -$ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); -$ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); -$attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); -$attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); -$auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); -$balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); -$call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); -$CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); -$campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); -$campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); -$campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); -$change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); -$closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); -$conf_exten = ereg_replace("[^0-9]","",$conf_exten); -$conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); -$conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); -$ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); -$ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); -$ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); -$ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); -$ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); -$ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); -$ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); -$ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); -$ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); -$ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); -$ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); -$ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); -$ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); -$ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); -$ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); -$ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); -$DBX_port = ereg_replace("[^0-9]","",$DBX_port); -$DBY_port = ereg_replace("[^0-9]","",$DBY_port); -$dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); -$delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); -$delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); -$delete_filters = ereg_replace("[^0-9]","",$delete_filters); -$delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); -$delete_lists = ereg_replace("[^0-9]","",$delete_lists); -$delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); -$delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); -$delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); -$delete_users = ereg_replace("[^0-9]","",$delete_users); -$dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); -$dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); -$drop_call_seconds = ereg_replace("[^0-9]","",$drop_call_seconds); -$enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); -$enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); -$fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); -$hopper_level = ereg_replace("[^0-9]","",$hopper_level); -$hotkey = ereg_replace("[^0-9]","",$hotkey); -$hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); -$list_id = ereg_replace("[^0-9]","",$list_id); -$load_leads = ereg_replace("[^0-9]","",$load_leads); -$max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); -$modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); -$modify_users = ereg_replace("[^0-9]","",$modify_users); -$modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); -$modify_lists = ereg_replace("[^0-9]","",$modify_lists); -$modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); -$modify_filters = ereg_replace("[^0-9]","",$modify_filters); -$modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); -$modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); -$modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); -$modify_servers = ereg_replace("[^0-9]","",$modify_servers); -$view_reports = ereg_replace("[^0-9]","",$view_reports); -$modify_leads = ereg_replace("[^0-9]","",$modify_leads); -$monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); -$number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); -$old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); -$outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); -$park_ext = ereg_replace("[^0-9]","",$park_ext); -$park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -$QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); -$recording_exten = ereg_replace("[^0-9]","",$recording_exten); -$remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); -$telnet_port = ereg_replace("[^0-9]","",$telnet_port); -$updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); -$user_level = ereg_replace("[^0-9]","",$user_level); -$user_start = ereg_replace("[^0-9]","",$user_start); -$user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); -$VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); -$VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); -$vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); -$vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); -$voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); -$voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); -$voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); -$voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); -$voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); -$wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); -$use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); -$webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); -$enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); -$enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); -$allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); -$mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); -$prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); -$agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); -$manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); -$qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); -$qc_pass = ereg_replace("[^0-9]","",$qc_pass); -$qc_finish = ereg_replace("[^0-9]","",$qc_finish); -$qc_commit = ereg_replace("[^0-9]","",$qc_commit); -$shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); -$timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); -$survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); -$add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); -$modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); -$delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); -$vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); -$vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); -$hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); -$hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); -$did_id = ereg_replace("[^0-9]","",$did_id); -$source_did = ereg_replace("[^0-9]","",$source_did); -$modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); -$delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); -$answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); -$answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); -$enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); -$qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); -$outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); -$download_lists = ereg_replace("[^0-9]","",$download_lists); -$caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); -$outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); -$manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); -$export_reports = ereg_replace("[^0-9]","",$export_reports); + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); -### DIGITS and COLONS -$shift_length = ereg_replace("[^\:0-9]","",$shift_length); + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); -### DIGITS and HASHES and STARS -$survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); -$survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); -### DIGITS and DASHES -$group_rank = ereg_replace("[^-0-9]","",$group_rank); -$campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); -$queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); -### DIGITS and NEWLINES -$phone_numbers = ereg_replace("[^\n0-9]","",$phone_numbers); + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); -### Y or N ONLY ### -$active = ereg_replace("[^NY]","",$active); -$allow_closers = ereg_replace("[^NY]","",$allow_closers); -$reset_hopper = ereg_replace("[^NY]","",$reset_hopper); -$amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); -$alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); -$selectable = ereg_replace("[^NY]","",$selectable); -$reset_list = ereg_replace("[^NY]","",$reset_list); -$fronter_display = ereg_replace("[^NY]","",$fronter_display); -$use_internal_dnc = ereg_replace("[^NY]","",$use_internal_dnc); -$use_campaign_dnc = ereg_replace("[^NY]","",$use_campaign_dnc); -$omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); -$available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); -$sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); -$vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); -$vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); -$campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); -$disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); -$no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); -$human_answered = ereg_replace("[^NY]","",$human_answered); -$tovdad_display = ereg_replace("[^NY]","",$tovdad_display); -$campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); -$disable_alter_custphone = ereg_replace("[^NY]","",$disable_alter_custphone); -$display_queue_count = ereg_replace("[^NY]","",$display_queue_count); -$qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); -$sale_category = ereg_replace("[^NY]","",$sale_category); -$dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); -$agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); -$play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); -$play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); -$no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); -$did_active = ereg_replace("[^NY]","",$did_active); -$active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); -$generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); -$rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); -$agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); -$qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + ### Y or N ONLY ### + $allow_closers = ereg_replace("[^NY]","",$allow_closers); + $reset_hopper = ereg_replace("[^NY]","",$reset_hopper); + $amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); + $alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); -### ALPHA-NUMERIC ONLY ### -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); -$submit = ereg_replace("[^0-9a-zA-Z]","",$submit); -$campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); -$get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); -$campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); -$ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); -$dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); -$state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); -$scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); -$concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); -$billable = ereg_replace("[^0-9a-zA-Z]","",$billable); -$pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); -$vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); -$ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); -$queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); -$after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); -$after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); -$qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); -$code = ereg_replace("[^0-9a-zA-Z]","",$code); -$survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); -$survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); -$qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); -$agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); -$three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); -$shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); -$agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); + $get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); + $campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); + $ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); + $dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); + $state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); -### DIGITS and Dots -$server_ip = ereg_replace("[^\.0-9]","",$server_ip); -$auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); -$adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); -$phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); -$old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); -$computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); -$queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); -$vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); -### ALPHA-NUMERIC and spaces and hash and star and comma -$xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); -$xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); -### ALPHACAPS-NUMERIC -$xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); -$xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); -### ALPHA-NUMERIC and underscore and dash -$agi_output = ereg_replace("[^-\_0-9a-zA-Z]","",$agi_output); -$ASTmgrSECRET = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrSECRET); -$ASTmgrUSERNAME = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAME); -$ASTmgrUSERNAMElisten = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); -$ASTmgrUSERNAMEsend = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); -$ASTmgrUSERNAMEupdate = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); -$call_time_id = ereg_replace("[^-\_0-9a-zA-Z]","",$call_time_id); -$campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); -$CoNfIrM = ereg_replace("[^-\_0-9a-zA-Z]","",$CoNfIrM); -$DBX_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_database); -$DBX_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_pass); -$DBX_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_user); -$DBY_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_database); -$DBY_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_pass); -$DBY_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_user); -$dial_method = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_method); -$dial_status_a = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_a); -$dial_status_b = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_b); -$dial_status_c = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_c); -$dial_status_d = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_d); -$dial_status_e = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_e); -$ext_context = ereg_replace("[^-\_0-9a-zA-Z]","",$ext_context); -$group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_id); -$lead_filter_id = ereg_replace("[^-\_0-9a-zA-Z]","",$lead_filter_id); -$local_call_time = ereg_replace("[^-\_0-9a-zA-Z]","",$local_call_time); -$login = ereg_replace("[^-\_0-9a-zA-Z]","",$login); -$login_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$login_campaign); -$login_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$login_pass); -$login_user = ereg_replace("[^-\_0-9a-zA-Z]","",$login_user); -$next_agent_call = ereg_replace("[^-\_0-9a-zA-Z]","",$next_agent_call); -$old_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_campaign_id); -$old_server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_server_id); -$OLDuser_group = ereg_replace("[^-\_0-9a-zA-Z]","",$OLDuser_group); -$park_file_name = ereg_replace("[^-\_0-9a-zA-Z]","",$park_file_name); -$pass = ereg_replace("[^-\_0-9a-zA-Z]","",$pass); -$phone_login = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_login); -$phone_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_pass); -$PHP_AUTH_PW = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_PW); -$PHP_AUTH_USER = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_USER); -$protocol = ereg_replace("[^-\_0-9a-zA-Z]","",$protocol); -$server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$server_id); -$stage = ereg_replace("[^-\_0-9a-zA-Z]","",$stage); -$state_rule = ereg_replace("[^-\_0-9a-zA-Z]","",$state_rule); -$status = ereg_replace("[^-\_0-9a-zA-Z]","",$status); -$trunk_restriction = ereg_replace("[^-\_0-9a-zA-Z]","",$trunk_restriction); -$user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); -$user_group = ereg_replace("[^-\_0-9a-zA-Z]","",$user_group); -$VICIDIAL_park_on_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); -$auto_alt_dial = ereg_replace("[^-\_0-9a-zA-Z]","",$auto_alt_dial); -$dial_status = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status); -$queuemetrics_eq_prepend = ereg_replace("[^-\_0-9a-zA-Z]","",$queuemetrics_eq_prepend); -$vicidial_agent_disable = ereg_replace("[^-\_0-9a-zA-Z]","",$vicidial_agent_disable); -$alter_custdata_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custdata_override); -$list_order_mix = ereg_replace("[^-\_0-9a-zA-Z]","",$list_order_mix); -$vcl_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vcl_id); -$mix_method = ereg_replace("[^-\_0-9a-zA-Z]","",$mix_method); -$category = ereg_replace("[^-\_0-9a-zA-Z]","",$category); -$vsc_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vsc_id); -$moh_context = ereg_replace("[^-\_0-9a-zA-Z]","",$moh_context); -$agent_alert_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_alert_exten); -$source_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_campaign_id); -$source_user_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_user_id); -$source_group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_group_id); -$default_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$default_xfer_group); -$drop_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_exten); -$safe_harbor_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$safe_harbor_exten); -$drop_action = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_action); -$drop_inbound_group = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_inbound_group); -$afterhours_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$afterhours_xfer_group); -$after_hours_action = ereg_replace("[^-\_0-9a-zA-Z]","",$after_hours_action); -$alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$alias_id); -$shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$shift_id); -$qc_shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$qc_shift_id); -$survey_first_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_first_audio_file); -$survey_opt_in_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_opt_in_audio_file); -$survey_ni_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_ni_audio_file); -$survey_method = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_method); -$alter_custphone_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custphone_override); -$manual_dial_filter = ereg_replace("[^-\_0-9a-zA-Z]","",$manual_dial_filter); -$agent_clipboard_copy = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_clipboard_copy); -$hold_time_option = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option); -$hold_time_option_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_xfer_group); -$hold_recall_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_recall_xfer_group); -$play_welcome_message = ereg_replace("[^-\_0-9a-zA-Z]","",$play_welcome_message); -$did_route = ereg_replace("[^-\_0-9a-zA-Z]","",$did_route); -$user_unavailable_action = ereg_replace("[^-\_0-9a-zA-Z]","",$user_unavailable_action); -$user_route_settings_ingroup = ereg_replace("[^-\_0-9a-zA-Z]","",$user_route_settings_ingroup); -$call_handle_method = ereg_replace("[^-\_0-9a-zA-Z]","",$call_handle_method); -$agent_search_method = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_search_method); -$hold_time_option_voicemail = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_voicemail); -$hold_time_option_callback_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_callback_filename); -$exten_context = ereg_replace("[^-\_0-9a-zA-Z]","",$exten_context); -$three_way_call_cid = ereg_replace("[^-\_0-9a-zA-Z]","",$three_way_call_cid); -$web_form_target = ereg_replace("[^-\_0-9a-zA-Z]","",$web_form_target); -$recording_web_link = ereg_replace("[^-\_0-9a-zA-Z]","",$recording_web_link); -$vtiger_search_category = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_search_category); -$vtiger_create_call_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_call_record); -$vtiger_create_lead_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_lead_record); -$vtiger_screen_login = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_screen_login); -$cpd_amd_action = ereg_replace("[^-\_0-9a-zA-Z]","",$cpd_amd_action); -$template_id = ereg_replace("[^-\_0-9a-zA-Z]","",$template_id); -$carrier_id = ereg_replace("[^-\_0-9a-zA-Z]","",$carrier_id); -$group_alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_alias_id); -$default_group_alias = ereg_replace("[^-\_0-9a-zA-Z]","",$default_group_alias); + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); -### ALPHA-NUMERIC and underscore and dash and comma -$logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); -$forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); -### ALPHA-NUMERIC and spaces -$lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); -### ALPHA-NUMERIC and hash -$group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); -### ALPHA-NUMERIC and hash and star and dot and underscore -$hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); -$did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); -$voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); -$phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); -$phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); -### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores -$adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); -$adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); -$asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); -$call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); -$call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); -$campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); -$campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); -$ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); -$company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); -$full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); -$fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); -$group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); -$HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); -$lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); -$lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); -$list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); -$local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); -$phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); -$picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); -$script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); -$script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); -$server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); -$status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); -$status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); -$wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); -$pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); -$campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); -$list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); -$vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); -$vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); -$vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); -$code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); -$alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); -$shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); -$did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); -$alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); -$template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); -$carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); -$group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); -$caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### ALPHA-NUMERIC and spaces + $lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); + ### ALPHA-NUMERIC and hash + $group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); + ### ALPHA-NUMERIC and hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); -### ALPHA-NUMERIC and underscore and dash and slash and at and dot -$call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); -$client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); -$DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); -$DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); -$dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); -$extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); -$install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); -$old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); -$telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); -$queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); -$queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); -$queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); -$after_hours_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$after_hours_message_filename); -$welcome_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$welcome_message_filename); -$onhold_prompt_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$onhold_prompt_filename); -$email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); -$vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); -$vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); -$vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); -### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon -$vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); -$vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); -### ALPHA-NUMERIC and underscore and dash and at and space and parantheses -$vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); -### remove semi-colons ### -$lead_filter_sql = ereg_replace(";","",$lead_filter_sql); -$list_mix_container = ereg_replace(";","",$list_mix_container); -$survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); -$survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); -$conf_override = ereg_replace(";","",$conf_override); -$template_contents = ereg_replace(";","",$template_contents); -$registration_string = ereg_replace(";","",$registration_string); -$account_entry = ereg_replace(";","",$account_entry); -$globals_string = ereg_replace(";","",$globals_string); -$dialplan_entry = ereg_replace(";","",$dialplan_entry); + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); -### VARIABLES TO BE mysql_real_escape_string ### -# $web_form_address -# $queuemetrics_url -# $admin_home_url -# $qc_web_form_address -# $vtiger_url + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); -### VARIABLES not filtered at all ### -# $script_text + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } -} # end of non_latin ##### END VARIABLE FILTERING FOR SECURITY ##### -# AST GUI database administration +# ViciDial database administration # admin.php # # CHANGELOG: @@ -1644,12 +1980,74 @@ $dialplan_entry = ereg_replace(";","",$dialplan_entry); # 90308-0956 - Added server statistics # 90309-0059 - Changed logging to admin_server_log # 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 # 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.0.5-173'; -$build = '90320-0424'; +$admin_version = '2.2.0-233'; +$build = '100104-1454'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -1664,29 +2062,50 @@ $past_month_date = date("Y-m-d H:i:s",$month_old); $week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); $past_week_date = date("Y-m-d H:i:s",$week_old); +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Sie haben jetzt heraus geloggt. Danke\n"; + exit; } - echo "Sie haben jetzt heraus geloggt. Danke\n"; - exit; -} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin FROM system_settings;"; +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -1705,21 +2124,20 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT * from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGfull_name =$row[3]; @@ -1754,11 +2172,12 @@ $browser = getenv("HTTP_USER_AGENT"); $LOGdelete_dids =$row[57]; $LOGmanager_shift_enforcement_override=$row[61]; $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - $LOGallowed_campaigns =$row[0]; + $LOGallowed_campaigns = $row[0]; if ($WeBRooTWritablE > 0) { @@ -1787,7 +2206,7 @@ header ("Content-type: text/html; charset=utf-8"); echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL ADMIN: "; +echo "<title>ADMINISTRATION: "; if (!isset($ADD)) {$ADD=0;} @@ -1801,6 +2220,8 @@ if ($ADD==1111) {$hh='ingroups'; echo "Addieren Sie Neue In-Gruppe";} if ($ADD==1211) {$hh='ingroups'; echo "KopierenIn-Gruppe";} if ($ADD==1311) {$hh='ingroups'; echo "Add NewDID";} if ($ADD==1411) {$hh='ingroups'; echo "KopierenDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Add-Ruf-Menü";} +if ($ADD==1611) {$hh='ingroups'; echo "Copy-Ruf-Menü";} if ($ADD==11111) {$hh='remoteagent'; echo "Addieren Sie Neue Remotemittel";} if ($ADD==111111) {$hh='usergroups'; echo "Addieren Sie Neue Benutzer-Gruppe";} if ($ADD==1111111) {$hh='scripts'; echo "Addieren Sie Neuen Index";} @@ -1814,6 +2235,9 @@ if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW GROUP ALIAS";} if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "ADDIEREN SIE NEUEN BEDIENER";} if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "Neue CONF TEMPLATE";} if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "ADD NEW CARRIER";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW TTS ENTRY";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC ON HOLD ENTRY";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW Voicemail-Box";} if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "ADDIEREN SIE NEUE KONFERENZ";} if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} if ($ADD=='2') {$hh='users'; echo "Neue Benutzer-Hinzufügung";} @@ -1832,6 +2256,8 @@ if ($ADD==2111) {$hh='ingroups'; echo "Neue In-Gruppe Hinzufügung";} if ($ADD==2011) {$hh='ingroups'; echo "Neue Kopierte In-Gruppe Hinzufügung";} if ($ADD==2311) {$hh='ingroups'; echo "Neue DID-Zusatz";} if ($ADD==2411) {$hh='ingroups'; echo "Neue Copied DID-Zusatz";} +if ($ADD==2511) {$hh='ingroups'; echo "Neue Call-Menü";} +if ($ADD==2611) {$hh='ingroups'; echo "Neue Call-Menü";} if ($ADD==21111) {$hh='remoteagent'; echo "Neue Remotemittel-Hinzufügung";} if ($ADD==211111) {$hh='usergroups'; echo "Neue Benutzer-Gruppe Hinzufügung";} if ($ADD==2111111) {$hh='scripts'; echo "Neue Index-Hinzufügung";} @@ -1846,6 +2272,9 @@ if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "ADDIEREN DES NEUEN BED if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ADDIEREN DES NEUEN STAMM-SATZES DES BEDIENER-VICIDIAL";} if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "Neue CONF TEMPLATE";} if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "Neue CARRIER";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Hinzufügen neuer TTS ENTRY";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "Hinzufügen neuer MUSIC ON HOLD ENTRY";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "Hinzufügen neuer Voicemail-Box";} if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "ADDIEREN DER NEUEN KONFERENZ";} if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ADDIEREN VON VON VICIDIAL SYSTEMSTATUS";} @@ -1854,29 +2283,29 @@ if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "HINZUFÜGEN VICIDIA if ($ADD==3) {$hh='users'; echo "Ändern Sie Benutzer";} if ($ADD==30) {$hh='campaigns'; echo "Kampagne Nicht Erlaubt";} if ($ADD==31) - { - $hh='campaigns'; $sh='detail'; echo "Ändern Sie Kampagne - Detail - $campaign_id"; - if ($SUB==22) {echo " - Status";} - if ($SUB==23) {echo " - HotKeys";} - if ($SUB==25) {echo " -Leitung Bereiten AufEntries";} - if ($SUB==26) {echo " - Auto Alt Dial Status";} - if ($SUB==27) {echo " - Agent Pause Codes";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - US-Mixes";} - if ($SUB=='20A') {echo " - Umfrage";} - } + { + $hh='campaigns'; $sh='detail'; echo "Ändern Sie Kampagne - Detail - $campaign_id"; + if ($SUB==22) {echo " - Status";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Leitung Bereiten AufEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Status";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - US-Mixes";} + if ($SUB=='20A') {echo " - Umfrage";} + } if ($ADD==34) - { - $hh='campaigns'; $sh='basic'; echo "Ändern Sie Kampagne - Grundlegende Ansicht - $campaign_id"; - if ($SUB==22) {echo " - Status";} - if ($SUB==23) {echo " - HotKeys";} - if ($SUB==25) {echo " -Leitung Bereiten AufEntries";} - if ($SUB==26) {echo " - Auto Alt Dial Status";} - if ($SUB==27) {echo " - Agent Pause Codes";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - US-Mixes";} - if ($SUB=='20A') {echo " - Umfrage";} - } + { + $hh='campaigns'; $sh='basic'; echo "Ändern Sie Kampagne - Grundlegende Ansicht - $campaign_id"; + if ($SUB==22) {echo " - Status";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Leitung Bereiten AufEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Status";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - US-Mixes";} + if ($SUB=='20A') {echo " - Umfrage";} + } if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Kampagne Status";} if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Kampagne HotKeys";} if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "Kampagne Leitung Bereiten Eintragungen Auf";} @@ -1887,6 +2316,7 @@ if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Kampagne Liste Mischungen if ($ADD==311) {$hh='lists'; echo "Ändern Sie Liste";} if ($ADD==3111) {$hh='ingroups'; echo "Ändern Sie In-Gruppe";} if ($ADD==3311) {$hh='ingroups'; echo "ÄndernDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Ändern Call-Menü";} if ($ADD==31111) {$hh='remoteagent'; echo "Ändern Sie Remotemittel";} if ($ADD==311111) {$hh='usergroups'; echo "Ändern Sie Benutzer-Gruppen";} if ($ADD==3111111) {$hh='scripts'; echo "Ändern Sie Index";} @@ -1901,6 +2331,9 @@ if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "ÄNDERN SIE BEDIENER";} if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ENTRY";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFY MUSIC ON HOLD ENTRY";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFY Voicemail-Box";} if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "ÄNDERN SIE KONFERENZ";} if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN";} @@ -1922,6 +2355,7 @@ if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Ändern Sie den Kampagne if ($ADD==411) {$hh='lists'; echo "Ändern Sie Liste";} if ($ADD==4111) {$hh='ingroups'; echo "Ändern Sie In-Gruppe";} if ($ADD==4311) {$hh='ingroups'; echo "ÄndernDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Ändern Call-Menü";} if ($ADD==41111) {$hh='remoteagent'; echo "Ändern Sie Remotemittel";} if ($ADD==411111) {$hh='usergroups'; echo "Ändern Sie Benutzer-Gruppen";} if ($ADD==4111111) {$hh='scripts'; echo "Ändern Sie Index";} @@ -1936,6 +2370,9 @@ if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "ÄNDERN SIE BEDIENER"; if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "ÄNDERN SIE STAMM-SATZ DES BEDIENER-VICIDIAL";} if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ENTRY";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFY MUSIC ON HOLD ENTRY";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFY Voicemail-Box";} if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "ÄNDERN SIE KONFERENZ";} if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN";} @@ -1949,6 +2386,7 @@ if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Dringlichkeits-VDAC Stau-F if ($ADD==511) {$hh='lists'; echo "LöschenList";} if ($ADD==5111) {$hh='ingroups'; echo "LöschenIn-Group";} if ($ADD==5311) {$hh='ingroups'; echo "LöschenDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Löschen-Ruf-Menü";} if ($ADD==51111) {$hh='remoteagent'; echo "Löschung-Direktübertragung Mittel";} if ($ADD==511111) {$hh='usergroups'; echo "Löschung-Benutzer Group";} if ($ADD==5111111) {$hh='scripts'; echo "Löschung-Index";} @@ -1962,6 +2400,9 @@ if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "TTS DELETE ENTRY";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE Voicemail-Box";} if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==6) {$hh='users'; echo "LöschenUser";} @@ -1976,6 +2417,7 @@ if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "Kampagne Liste Mischung E if ($ADD==611) {$hh='lists'; echo "LöschenList";} if ($ADD==6111) {$hh='ingroups'; echo "LöschenIn-Group";} if ($ADD==6311) {$hh='ingroups'; echo "LöschenDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Löschen-Ruf-Menü";} if ($ADD==61111) {$hh='remoteagent'; echo "Löschung-Direktübertragung Mittel";} if ($ADD==611111) {$hh='usergroups'; echo "Löschung-Benutzer Group";} if ($ADD==6111111) {$hh='scripts'; echo "Löschung-Index";} @@ -1988,8 +2430,11 @@ if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE TEL ALIAS";} if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "STAMM-SATZ DES LÖSCHUNG-BEDIENER-VICIDIAL";} -if ($ADD==621111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} -if ($ADD==621111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "TTS DELETE ENTRY";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE Voicemail-Box";} if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==73) {$hh='campaigns'; echo "Anzahl anrufbarer Anschlüsse";} @@ -2007,6 +2452,7 @@ if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Kampagnen";} if ($ADD==100) {$hh='lists'; echo "Listen";} if ($ADD==1000) {$hh='ingroups'; echo "In-Gruppen";} if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Call-Menüs";} if ($ADD==10000) {$hh='remoteagent'; echo "Remotemittel";} if ($ADD==100000) {$hh='usergroups'; echo "Benutzer-Gruppen";} if ($ADD==1000000) {$hh='scripts'; echo "Indexe";} @@ -2020,6 +2466,9 @@ if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GROUP ALIAS LISTE";} if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "BEDIENER-LISTE";} if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF Vorlagenliste";} if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "CARRIER LISTE";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS TEILNEHMERLISTE";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "MUSIC ON HOLD TEILNEHMERLISTE";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "Voicemailboxen LISTE";} if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "KONFERENZ-LISTE";} if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL KONFERENZ-LISTE";} if ($ADD==550) {$hh='users'; echo "Suchform";} @@ -2216,53 +2665,53 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### BEGIN get inbound groups listing for checkboxes ##### $xfer_groupsSQL=''; if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) - { - $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - $xfer_groups = $row[1]; - $xfer_groups = preg_replace("/ -$/","",$xfer_groups); - $XFERgroups = explode(" ", $xfer_groups); - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } - if ($ADD==41) - { - $p=0; - $XFERgroup_ct = count($XFERgroups); - while ($p < $XFERgroup_ct) { - $xfer_groups .= " $XFERgroups[$p]"; - $p++; + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; } - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } if ($ADD==3) - { - $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; # $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; @@ -2390,10 +2839,10 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get inbound groups listing for checkboxes ##### - ##### BEGIN get campaigns listing for checkboxes ##### - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) { - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) { $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -2415,26 +2864,26 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; $qc_groups_value=''; $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; - $p=0; - while ($p<100) + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) { - if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) - { - $campaigns_list.=" CHECKED"; - $campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) - { - $qc_campaigns_list.=" CHECKED"; - $qc_campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-GROUPS',$qc_groups[$p])) - { - $qc_groups_list.=" CHECKED"; - $qc_groups_value .= " -ALL-GROUPS- -"; - } - $p++; + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } $campaigns_list.="> ALL-CAMPAIGNS - BENUTZER KÖNNEN JEDE MÖGLICHE KAMPAGNE ANSEHEN</B><BR>\n"; $qc_campaigns_list.="> ALL-CAMPAIGNS - Benutzer können alle Kampagnen, QC</B><BR>\n"; $qc_groups_list.="> ALL-GROUPS - Benutzer können QC JEDENFALLS INBOUND GROUP</B><BR>\n"; @@ -2452,9 +2901,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; $p=0; - while ($p<100) + while ($p<1000) { - if ($campaign_id_value == $campaigns[$p]) + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) { # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; $campaigns_list .= " CHECKED"; @@ -2485,9 +2934,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $group_name_value = $rowx[1]; $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; $p=0; - while ($p<100) + while ($p<2000) { - if ($group_id_value == $qc_groups[$p]) + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) { $qc_groups_list .= " CHECKED"; $qc_groups_value .= " $group_id_value"; @@ -2505,7 +2954,7 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get campaigns listing for checkboxes ##### - if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) { ##### get server listing for dynamic pulldown $stmt="SELECT server_ip,server_description from servers order by server_ip"; @@ -2540,1360 +2989,1452 @@ $NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"HILFE\" ALI ###################### if ($ADD==99999) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "
VICIDIAL ADMIN: HILFE


\n"; - -?> -VICIDIAL_BENUTZERTABELLE

- -
-Benutzernummer - Dieses fangen ist, wohin Sie dieVICIDIAL Benutzernummer Zahl setzen, kann bis 8 Stellen in der Längesein, muß mindestens 2 Buchstaben lang sein auf. - -
-
-
-Kennwort - Dieses fangen ist auf, wohin Sie das VICIDIALBenutzerkennwort setzen. Sein mindestens müssen 2 Buchstaben lang. - -
-
-
-Voller Name - Dieses fangen ist auf, wohin Sie den vollenNamen der VICIDIAL Benutzer setzen. Sein mindestens müssen 2Buchstaben lang. - -
-
-
-Benutzer-Niveau - Dieses Menü ist, wo Sie das VICIDIALBenutzer-Benutzerniveau vorwählen. Sein muß ein Niveau von inVICIDIAL zu loggen 1,, muß waagerecht ausgerichtet grösser sein, alsals genaueres innen zu loggen 2, Benutzerniveau 8 oder grösser seinmüssen, in admin Netzabschnitt zu erhalten. - -
-
-
-Benutzer-Gruppe - Dieses Menü ist, wo Sie die VICIDIALBenutzergruppe vorwählen, daß dieser Benutzer gehört. Dieses hatkeine Beschränkungen diesmal, ist dieses gerecht, Benutzer zuunterteilen und die zukünftigen Eigenschaften zuzulassen, die nachihm gegründet werden. - -
-
-
-Telefon-LOGON - Für hier ist, wo Sie einen RückstellungTelefon-LOGON-Wert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert dasphone_login automatisch wenn die Benutzermaschinenbordbücher innenmit ihrer Benutzer-überschreiten-Kampagne auf dem vicidial.phpLOGON-Schirm. - -
-
-
-Telefon-Durchlauf - Für hier ist, wo Sie einen RückstellungTelefon-Durchlaufwert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert die phone_passautomatisch wenn die Benutzermaschinenbordbücher innen mit ihrerBenutzer-überschreiten-Kampagne auf dem vicidial.php LOGON-Schirm. - -
-
-
-Aktive - Dieses Feld legt fest, ob der Benutzer in das System und können VICIDIAL Ressourcen. Der Standardwert ist Y - -
-
-
-Hot Keys aktiv - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,die Hot Keys schnelle-dispositioning Funktion innen zu verwenden vicidial.php. - -
-
-
-Mittel wählen Ingroups - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die ingroups zu wählen, denen sie Anrufe von wenn sie LOGONzu einer GENAUEREN oder INBOUND Kampagne empfangen. Andernfalls mußder Manager dieses auf ihrem Benutzersonderkommandoschirm der adminSeite einstellen. - -
-
-
-Zeitlich geplante Wiederholungsbesuche - Diese Wahl erlaubt einemMittel zur Einteilung einen Anruf als CALLBK und wählt die Daten unddie Zeit, an denen die Leitung reaktiviert wird. - -
-
-
-Mittel-Nur Wiederholungsbesuche - Diese Wahl erlaubt einemVertreter, einen Wiederholungsbesuch einzustellen, damit sie daseinzige Mittel sind, das die Kunde Rückseite benennen kann. Dieseserlaubt auch dem Vertreter, ihre Wiederholungsbesuch Auflistungen zusehen und sie zurück zu benennen, immer wenn sie zu wünschen. - -
-
-
-Vertreter-Anruf-Handbuch - Diese Wahl erlaubt einem Vertreter,eine neue Leitung in das System manuell einzutragen und sie zubenennen. Dieses auch erlaubt das Benennen jeder möglicherTelefonnummer von ihrem vicidial Schirm und setzt diesen Anruf inihren Lernabschnitt. Verwenden Sie diese Wahl mit Vorsicht. - -
-
-
-Vicidial Aufnahme - Diese Wahl kann verhindern, daß ein Mittelalle mögliche Aufnahmen tut, nachdem sie innen in vicidialprotokollieren. Diese Wahl muß eingeschaltet sein, damit vicidial demKampagne Aufnahmelernabschnitt folgt. - -
-
-
-Vicidial Übertragungen - Diese Wahl kann verhindern, daß einMittel die Übertragung - Konferenzlernabschnitt von vicidial öffnet.Wenn dieses untauglich ist, kann das Mittel nicht dritterParteianruf, oder blinde Übertragung irgendeine benennt. - - 0) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: HILFE


\n"; + ?> + VICIDIAL_BENUTZERTABELLE

+
-
+ Benutzernummer - Dieses fangen ist, wohin Sie dieVICIDIAL Benutzernummer Zahl setzen, kann bis 8 Stellen in der Längesein, muß mindestens 2 Buchstaben lang sein auf. +
- Genauere Rückstellung gemischt - Diese Wahl fällt einfach dasgemischte checkbox auf einem GENAUEREN LOGON-Schirm zurück. - +
+
+ Kennwort - Dieses fangen ist auf, wohin Sie das VICIDIALBenutzerkennwort setzen. Sein mindestens müssen 2 Buchstaben lang. -
-
-
-VICIDIAL Aufnahme-Übersteuerung - diese Wahl läuft über, was auchimmer die Wahl in der Kampagne für Aufnahme ist. UNTAUGLICH läuftnicht die Kampagne Aufnahmeeinstellung über. NIE sperrt Aufnahme aufdem Klienten. ONDEMAND ist die Rückstellung und erlaubt dem Vertreterzu notieren zu beginnen und, zu stoppen, wie gebraucht. ALLCALLSbeginnt Aufnahme auf dem Klienten, wann immer ein Anruf zu einemMittel geschickt wird. ALLFORCE beginnt Aufnahme auf dem Klienten,wann immer ein Anruf zu einem Mittel geschickt wird, das dem Mittelkeine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS und ALLFORCEgibt es eine Wahl, zum der Aufnahme zu benutzen verzögert, um untenauf sehr kurze Aufnahmen und recude Anlagen-Belastung zu schneiden. +
+
+
+ Voller Name - Dieses fangen ist auf, wohin Sie den vollenNamen der VICIDIAL Benutzer setzen. Sein mindestens müssen 2Buchstaben lang. -
-
-
-Agent Shift Vollstreckung Override - Diese Einstellung überschreibt, was die Benutzer Benutzer-Gruppe hat für die Vollstreckung Shift. DEAKTIVIERT wird die Benutzergruppe Einstellung. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Option ist standardmäßig deaktiviert. +
+
+
+ Benutzer-Niveau - Dieses Menü ist, wo Sie das VICIDIALBenutzer-Benutzerniveau vorwählen. Sein muß ein Niveau von inVICIDIAL zu loggen 1,, muß waagerecht ausgerichtet grösser sein, alsals genaueres innen zu loggen 2, Benutzerniveau 8 oder grösser seinmüssen, in admin Netzabschnitt zu erhalten. -
-
-
-Alarm aktiv - Dieses Feld zeigt an, ob der Agent hat Warnungen Web-Browser aktiviert, wenn Anrufe in Berührung kommen, ihre vicidial.php Sitzung. Der Standardwert ist 0 für NO. +
+
+
+ Benutzer-Gruppe - Dieses Menü ist, wo Sie die VICIDIALBenutzergruppe vorwählen, daß dieser Benutzer gehört. Dieses hatkeine Beschränkungen diesmal, ist dieses gerecht, Benutzer zuunterteilen und die zukünftigen Eigenschaften zuzulassen, die nachihm gegründet werden. -
-
-
-Kampagne ordnet - in diesem Abschnitt können Sie den Rank definieren,den ein Mittel für jede Kampagne hat. Diese Rank können gewohntSEIN,bevorzugte Anrufwegewahl zuzulassen, wenn folgender Vertreter-Anrufauf campaign_rank eingestellt wird. Auch in diesem Abschnitt sind die WEB VARs für jede Kampagne. Diese ermöglichen es jedem Agenten zu haben, eine andere Variable Zeichenfolge, die hinzugefügt werden können, um die Web-Formular oder SCRIPT Registerkarte URLs, indem Sie einfach setzen - A - web_vars - B - wie Sie würde jedem anderen Bereich. +
+
+
+ Telefon-LOGON - Für hier ist, wo Sie einen RückstellungTelefon-LOGON-Wert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert dasphone_login automatisch wenn die Benutzermaschinenbordbücher innenmit ihrer Benutzer-überschreiten-Kampagne auf dem vicidial.phpLOGON-Schirm. -
-
-
-Inbound Gruppen - Ist hier, wo Sie die inbound Gruppen vorwählen,die Sie Anrufe von empfangen möchten, wenn Sie die GENAUERE Kampagnevorgewählt haben. SieSIND auch in der Lage, den Rank oder Fähigkeit Niveaueinzustellen, in diesem Abschnitt für jede der inbound Gruppen sowieIn der LageSEIN, die Zahl den Anrufen zu sehen, die von jeder inboundGruppe für dieses spezifische Mittel empfangen werden. Auch in diesem Abschnitt ist die Fähigkeit, dem Mittel einen Rankfür jede inbound Gruppe zu geben. Diese Rank können für bevorzugteAnrufwegewahl verwendet werden, wenn diese Wahl auf dem IngruppeSchirm vorgewählt wird. Auch in diesem Abschnitt sind die WEB VARs für jede Kampagne. Diese ermöglichen es jedem Agenten zu haben, eine andere Variable Zeichenfolge, die hinzugefügt werden können, um die Web-Formular oder SCRIPT Registerkarte URLs, indem Sie einfach setzen - A - web_vars - B - wie Sie würde jedem anderen Bereich. +
+
+
+ Telefon-Durchlauf - Für hier ist, wo Sie einen RückstellungTelefon-Durchlaufwert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert die phone_passautomatisch wenn die Benutzermaschinenbordbücher innen mit ihrerBenutzer-überschreiten-Kampagne auf dem vicidial.php LOGON-Schirm. -
-
-
-Mittel ändern Kunde Daten-Übersteuerung - diese Wahl läuft über,was auch immer die Wahl in der Kampagne für das Ändern von KundeDaten ist. NOT_ACTIVE verwendet, was auch immer Einstellung für dieKampagne anwesend ist. ALLOW_ALTER darf immer, damit das Mittel dieKunde Daten ändert, egal was die Kampagne Einstellung ist.Rückstellung ist NOT_ACTIVE. +
+
+
+ Aktive - Dieses Feld legt fest, ob der Benutzer in das System und können VICIDIAL Ressourcen. Der Standardwert ist Y -
-
-
-Agent Alter Kunden Telefon Override - Mit dieser Option werden die unabhängig von der Option ist in der Kampagne für die Änderung der Kunde die Rufnummer ein. NOT_ACTIVE wird unabhängig Einstellung ist für die Kampagne. ALLOW_ALTER wird immer für den Agenten, um die Kunden-Nummer, egal, was die Kampagne Einstellung. Der Standardwert ist NOT_ACTIVE. +
+
+
+ E-Mail, User-Code und Territorium - Dies sind optionale Felder. -
-
-
-Ändern Sie Mittel-Schnittstelle Wahlen - diese Wahl, wenn Satzbis 1 dem administrativen Benutzer erlaubt, die MittelschnittstelleWahlen in admin.php zu ändern. +
+
+
+ Hot Keys aktiv - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,die Hot Keys schnelle-dispositioning Funktion innen zu verwenden vicidial.php. -
-
-
-Löschung-Benutzer - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, andere Benutzer des Gleichgestellten oder wenigenBenutzerniveaus aus dem System zu löschen. +
+
+
+ Mittel wählen Ingroups - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die ingroups zu wählen, denen sie Anrufe von wenn sie LOGONzu einer GENAUEREN oder INBOUND Kampagne empfangen. Andernfalls mußder Manager dieses auf ihrem Benutzersonderkommandoschirm der adminSeite einstellen. -
-
-
-Löschung-Benutzer-Gruppen - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, Benutzergruppen aus dem System zu löschen. +
+
+
+ Wählen Sie Agent Territories - Diese Option, wenn auf 1 gesetzt, kann der Anwender für die Gebiete wählen, dass sie, wenn sie Anrufe aus dem Login erhalten zu einem manuellen oder INBOUND_MAN Kampagne. Andernfalls wird der Benutzer eingestellt werden, dass alle Gebiete, die sie gesetzt sind, um in der User-Gebieten gehören Verwaltungs-Abschnitt verwenden. -
-
-
-Löschung verzeichnet - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Listen aus dem System zu löschen. +
+
+
+ Scheduled Callbacks - Diese Option ermöglicht es einem Agenten um einen Anruf zu Verfügung als CALLBK und wählen Sie das Datum und die Uhrzeit, zu der die Führung wieder aktiviert werden. -
-
-
-Löschung wirbt - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Kampagnen aus dem System zu löschen. +
+
+
+ Mittel-Nur Wiederholungsbesuche - Diese Wahl erlaubt einemVertreter, einen Wiederholungsbesuch einzustellen, damit sie daseinzige Mittel sind, das die Kunde Rückseite benennen kann. Dieseserlaubt auch dem Vertreter, ihre Wiederholungsbesuch Auflistungen zusehen und sie zurück zu benennen, immer wenn sie zu wünschen. -
-
-
-Löschung In-Gruppen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial In-Gruppen aus dem System zu löschen. +
+
+
+ Vertreter-Anruf-Handbuch - Diese Wahl erlaubt einem Vertreter,eine neue Leitung in das System manuell einzutragen und sie zubenennen. Dieses auch erlaubt das Benennen jeder möglicherTelefonnummer von ihrem vicidial Schirm und setzt diesen Anruf inihren Lernabschnitt. Verwenden Sie diese Wahl mit Vorsicht. -
-
-
-Löschung-Remotemittel - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Remotemittel aus dem System zu löschen. +
+
+
+ Vicidial Aufnahme - Diese Wahl kann verhindern, daß ein Mittelalle mögliche Aufnahmen tut, nachdem sie innen in vicidialprotokollieren. Diese Wahl muß eingeschaltet sein, damit vicidial demKampagne Aufnahmelernabschnitt folgt. - 0) - { +
+
+
+ Vicidial Übertragungen - Diese Wahl kann verhindern, daß einMittel die Übertragung - Konferenzlernabschnitt von vicidial öffnet.Wenn dieses untauglich ist, kann das Mittel nicht dritterParteianruf, oder blinde Übertragung irgendeine benennt. + + 0) + { + ?> +
+
+
+ Genauere Rückstellung gemischt - Diese Wahl fällt einfach dasgemischte checkbox auf einem GENAUEREN LOGON-Schirm zurück. + +
-
+
- Last führt - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,vicidial Leitungen in die vicidial_list Tabelle über die Netzgegründete Leitung Ladevorrichtung zu laden. - + VICIDIAL Aufnahme-Übersteuerung - diese Wahl läuft über, was auchimmer die Wahl in der Kampagne für Aufnahme ist. UNTAUGLICH läuftnicht die Kampagne Aufnahmeeinstellung über. NIE sperrt Aufnahme aufdem Klienten. ONDEMAND ist die Rückstellung und erlaubt dem Vertreterzu notieren zu beginnen und, zu stoppen, wie gebraucht. ALLCALLSbeginnt Aufnahme auf dem Klienten, wann immer ein Anruf zu einemMittel geschickt wird. ALLFORCE beginnt Aufnahme auf dem Klienten,wann immer ein Anruf zu einem Mittel geschickt wird, das dem Mittelkeine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS und ALLFORCEgibt es eine Wahl, zum der Aufnahme zu benutzen verzögert, um untenauf sehr kurze Aufnahmen und recude Anlagen-Belastung zu schneiden. -
-
-
-Kampagne Detail - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die Kampagne Detail-Schirmelemente anzusehen und zu ändern. +
+
+
+ Agent Shift Vollstreckung Override - Diese Einstellung überschreibt, was die Benutzer Benutzer-Gruppe hat für die Vollstreckung Shift. DEAKTIVIERT wird die Benutzergruppe Einstellung. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Option ist standardmäßig deaktiviert. -
-
-
-AGC Admin Zugang - Diese Wahl, wenn Satz bis 1 den Benutzer zumLOGON zu den astGUIclient admin Seiten erlaubt. +
+
+
+ Alarm aktiv - Dieses Feld zeigt an, ob der Agent hat Warnungen Web-Browser aktiviert, wenn Anrufe in Berührung kommen, ihre vicidial.php Sitzung. Der Standardwert ist 0 für NO. -
-
-
-AGC Löschung-Telefone - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Telefoneintragungen in den astGUIclient admin Seiten zulöschen. +
+
+
+ Lassen Sie Alerts - Dieses Feld gibt Ihnen die Möglichkeit an den Agenten Browser erlauben Benachrichtigung durch die Agenten für die Lage versetzt werden, wenn Anrufe kommen in ihre vicidial.php Sitzung. Der Standardwert ist 0 für NO. -
-
-
-Löschung-Indexe - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Kampagne Indexe auf dem Indexänderung Schirm zu löschen. +
+
+
+ Kampagne ordnet - in diesem Abschnitt können Sie den Rank definieren,den ein Mittel für jede Kampagne hat. Diese Rank können gewohntSEIN,bevorzugte Anrufwegewahl zuzulassen, wenn folgender Vertreter-Anrufauf campaign_rank eingestellt wird. Auch in diesem Abschnitt sind die WEB VARs für jede Kampagne. Diese ermöglichen es jedem Agenten zu haben, eine andere Variable Zeichenfolge, die hinzugefügt werden können, um die Web-Formular oder SCRIPT Registerkarte URLs, indem Sie einfach setzen - A - web_vars - B - wie Sie würde jedem anderen Bereich. -
-
-
-Ändern Sie Leitungen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Leitungen in der admin Abschnittleitung Suchresultate Seitezu ändern. +
+
+
+ Inbound Gruppen - Ist hier, wo Sie die inbound Gruppen vorwählen,die Sie Anrufe von empfangen möchten, wenn Sie die GENAUERE Kampagnevorgewählt haben. SieSIND auch in der Lage, den Rank oder Fähigkeit Niveaueinzustellen, in diesem Abschnitt für jede der inbound Gruppen sowieIn der LageSEIN, die Zahl den Anrufen zu sehen, die von jeder inboundGruppe für dieses spezifische Mittel empfangen werden. Auch in diesem Abschnitt ist die Fähigkeit, dem Mittel einen Rankfür jede inbound Gruppe zu geben. Diese Rank können für bevorzugteAnrufwegewahl verwendet werden, wenn diese Wahl auf dem IngruppeSchirm vorgewählt wird. Auch in diesem Abschnitt sind die WEB VARs für jede Kampagne. Diese ermöglichen es jedem Agenten zu haben, eine andere Variable Zeichenfolge, die hinzugefügt werden können, um die Web-Formular oder SCRIPT Registerkarte URLs, indem Sie einfach setzen - A - web_vars - B - wie Sie würde jedem anderen Bereich. -
-
-
-Ändern Sie Vertreter-Kampagne - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, die Kampagne zu ändern, daß ein Mittel in geloggtwird, während sie in es geloggt werden. +
+
+
+ Mittel ändern Kunde Daten-Übersteuerung - diese Wahl läuft über,was auch immer die Wahl in der Kampagne für das Ändern von KundeDaten ist. NOT_ACTIVE verwendet, was auch immer Einstellung für dieKampagne anwesend ist. ALLOW_ALTER darf immer, damit das Mittel dieKunde Daten ändert, egal was die Kampagne Einstellung ist.Rückstellung ist NOT_ACTIVE. - 0) - { +
+
+
+ Agent Alter Kunden Telefon Override - Mit dieser Option werden die unabhängig von der Option ist in der Kampagne für die Änderung der Kunde die Rufnummer ein. NOT_ACTIVE wird unabhängig Einstellung ist für die Kampagne. ALLOW_ALTER wird immer für den Agenten, um die Kunden-Nummer, egal, was die Kampagne Einstellung. Der Standardwert ist NOT_ACTIVE. + +
+
+
+ Benutzerdefinierte Felder - Diese fünf Felder können für verschiedene Zwecke verwendet werden, und sie können in das Web-Formular Adressen und Skripte als user_custom_one und so weiter gefüllt werden. + +
+
+
+ Ändern Sie Mittel-Schnittstelle Wahlen - diese Wahl, wenn Satzbis 1 dem administrativen Benutzer erlaubt, die MittelschnittstelleWahlen in admin.php zu ändern. + +
+
+
+ Löschung-Benutzer - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, andere Benutzer des Gleichgestellten oder wenigenBenutzerniveaus aus dem System zu löschen. + +
+
+
+ Löschung-Benutzer-Gruppen - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, Benutzergruppen aus dem System zu löschen. + +
+
+
+ Löschung verzeichnet - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Listen aus dem System zu löschen. + +
+
+
+ Löschung wirbt - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Kampagnen aus dem System zu löschen. + +
+
+
+ Löschung In-Gruppen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial In-Gruppen aus dem System zu löschen. + +
+
+
+ Löschung-Remotemittel - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Remotemittel aus dem System zu löschen. + + 0) + { + ?> +
+
+
+ Last führt - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,vicidial Leitungen in die vicidial_list Tabelle über die Netzgegründete Leitung Ladevorrichtung zu laden. + +
-
+
- Löschung filtert - Diese Wahl erlaubt dem Benutzer, in der LagezuSEIN, vicidial Leitung Filter aus dem System zu löschen. - + Kampagne Detail - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die Kampagne Detail-Schirmelemente anzusehen und zu ändern. -
-
-
-Löschen Anrufzeiten - Diese Option erlaubt dem Nutzer die Vicidial Anrufzeiten Aufzeichnungen und Vicidial Status Anrufzeiten Aufzeichnungen vom System zu löschen. +
+
+
+ AGC Admin Zugang - Diese Wahl, wenn Satz bis 1 den Benutzer zumLOGON zu den astGUIclient admin Seiten erlaubt. -
-
-
-Ändere Anrufzeiten - Diese Option erlaubt dem Nutzer das Ansehen und Ändern der Anrufzeiten und Status Anrufzeiten Aufzeichnungen. Ein Nutzer braucht diese Option nicht aktiviert, wenn er nur die Anrufzeit Option auf der Kampagnen-Sicht ändern können muss. +
+
+
+ AGC Löschung-Telefone - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Telefoneintragungen in den astGUIclient admin Seiten zulöschen. -
-
-
-Ändern Sie Abschnitte - diese Wahlen erlauben dem Benutzer, jedesanzusehen und zu ändern Abschnittaufzeichnungen. Wenn Satz bis 0, derBenutzer in der LageIST, die Abschnittliste, aber nicht das Detailoder den Änderung Schirm einer Aufzeichnung in diesem Abschnitt zusehen. +
+
+
+ Löschung-Indexe - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Kampagne Indexe auf dem Indexänderung Schirm zu löschen. -
-
-
-Ansicht berichtet - diese Wahl erlaubt dem Benutzer, die VICIDIALBerichte anzusehen. +
+
+
+ Ändern Sie Leitungen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Leitungen in der admin Abschnittleitung Suchresultate Seitezu ändern. - 0) - { +
+
+
+ Ändern Sie Vertreter-Kampagne - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, die Kampagne zu ändern, daß ein Mittel in geloggtwird, während sie in es geloggt werden. + + 0) + { + ?> +
+
+
+ Löschung filtert - Diese Wahl erlaubt dem Benutzer, in der LagezuSEIN, vicidial Leitung Filter aus dem System zu löschen. + -
-
-
- QC aktiv - Diese Option ermöglicht es dem Benutzer, um sich in der Quality Control Agent-Bildschirm.
-
+
- QC-Benutzer-Niveau - Diese Einstellung legt fest, was die Qualität der User-Agent ist. Dies wird diktieren der Ebene der Funktionalität für den Agenten in der QC-Abschnitt:
- 1 - Nichts ändern
- 2 - Ändern Sie nichts außer Status
- 3 - Ändern Sie alle Felder
- 4 - Überprüfen ersten QC
- 5 - QC Statistiken anzeigen
- 6 - Möglichkeit, Aufzeichnungen FINISHED
- 7 - Manager Level
+ Löschen Anrufzeiten - Diese Option erlaubt dem Nutzer die Vicidial Anrufzeiten Aufzeichnungen und Vicidial Status Anrufzeiten Aufzeichnungen vom System zu löschen.
-
+
- QC-Datensatz Pass - Diese Option ermöglicht es dem Agenten, um anzugeben, dass ein Datensatz hat die erste Runde der QC nach Überprüfung der Aufnahme. + Ändere Anrufzeiten - Diese Option erlaubt dem Nutzer das Ansehen und Ändern der Anrufzeiten und Status Anrufzeiten Aufzeichnungen. Ein Nutzer braucht diese Option nicht aktiviert, wenn er nur die Anrufzeit Option auf der Kampagnen-Sicht ändern können muss.
-
+
- QC-Datensatz Finish - Diese Option ermöglicht es dem Agenten, um anzugeben, dass eine Aufzeichnung beendet ist die zweite Runde der QC nach Überprüfung durch die Aufnahme. + Ändern Sie Abschnitte - diese Wahlen erlauben dem Benutzer, jedesanzusehen und zu ändern Abschnittaufzeichnungen. Wenn Satz bis 0, derBenutzer in der LageIST, die Abschnittliste, aber nicht das Detailoder den Änderung Schirm einer Aufzeichnung in diesem Abschnitt zusehen.
-
+
- QC-Datensatz Commit - Diese Option ermöglicht es dem Agenten festlegen, dass ein Datensatz wurde, die in QC. Es kann nicht mehr geändert werden, indem man. - + Ansicht berichtet - diese Wahl erlaubt dem Benutzer, die VICIDIALBerichte anzusehen. -
-
-
-AddTimeclock Log Record - Diese Option ermöglicht es dem Benutzer, um an das timeclock Log. + 0) + { + ?> +
+
+
+ QC aktiv - Diese Option ermöglicht es dem Benutzer, um sich in der Quality Control Agent-Bildschirm. -
-
-
-ÄndernTimeclock Log Record - Diese Option ermöglicht es dem Benutzer zu ändern, Einträge in der Log-timeclock. +
+
+
+ QC-Benutzer-Niveau - Diese Einstellung legt fest, was die Qualität der User-Agent ist. Dies wird diktieren der Ebene der Funktionalität für den Agenten in der QC-Abschnitt:
+ 1 - Nichts ändern
+ 2 - Ändern Sie nichts außer Status
+ 3 - Ändern Sie alle Felder
+ 4 - Überprüfen ersten QC
+ 5 - QC Statistiken anzeigen
+ 6 - Möglichkeit, Aufzeichnungen FINISHED
+ 7 - Manager Level
-
-
-
-Löschen der RegistrierungTimeclock Record - Diese Option ermöglicht es dem Benutzer zu löschen, Einträge in der Log-timeclock. +
+
+
+ QC-Datensatz Pass - Diese Option ermöglicht es dem Agenten, um anzugeben, dass ein Datensatz hat die erste Runde der QC nach Überprüfung der Aufnahme. -
-
-
-Agent API-Zugang - Diese Option ermöglicht es, das Konto für die Verwendung mit der vicidial Agenten-API-Befehle. +
+
+
+ QC-Datensatz Finish - Diese Option ermöglicht es dem Agenten, um anzugeben, dass eine Aufzeichnung beendet ist die zweite Runde der QC nach Überprüfung durch die Aufnahme. -
-
-
-Shift Manager Vollstreckung Override - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager, um ihre Benutzer und Kennwort für ein Agent-Bildschirm, um die Verlagerung Beschränkungen auf einen Agenten Sitzung, wenn der Agent versucht, sich außerhalb ihrer Schicht. Der Standardwert ist 0. - -
-
-
-Download Listen - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager zu klicken Sie auf den Download-Link-Liste am unteren Rand einer Liste Änderung Bildschirm zu exportieren den gesamten Inhalt eines Verzeichnisses auf eine flache Datei. Der Standardwert ist 0. - -
-
-
-Exportieren von Berichten - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager für den Zugriff auf die Ausfuhr rufen Berichte über die Berichte Bildschirm. Der Standardwert ist 0. Für die Export-Bericht fordert, um das folgende Feld wird für die Ausfuhr:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds - - - - - - -



- -VICIDIAL_CAMPAIGNSTABELLE

-
-
-Kampagne Identifikation - Dieses ist der kurze Name der Kampagne,es ist nicht editable nach Ausgangsunterordnung, kann nicht Räumeenthalten und muß zwischen 2 und 8 Buchstaben im lengt seinh. - -
-
-
-Kampagne Name - Dieses ist die Beschreibung der Kampagne, muß eszwischen 6 und 40 Buchstaben lang sein. - -
-
-
-Kampagne Beschreibung - dieses ist ein Protokoll auffangenfür die Kampagne, ist es wahlweise freigestellt und kann ein Maximumvon 255 Buchstaben lang sein. - -
-
-
-Kampagne Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Kampagne in jeder Hinsicht geändert wurden. - -
-
-
-Letztes Kampagne LOGON-Datum - dieses ist das letzte Mal, daß einMittel in diese Kampagne geloggt wurde. - -
-
-
-Kampagne Notfall erneuern - dieses checkbox erlaubt Ihnen, einenvicidial Notfall zu zwingen erneuern, selbst wenn die Kampagne nichtaktiv ist. - -
-
-
-Aktiv - Dieses ist, wohin Sie die Kampagne auf aktives oderunaktiviertes einstellen. Wenn unaktiviert, kann noone in es loggen. - -
-
-
-Park-Verlängerung - Dieses ist, wo Sie besonders anfertigenkönnen auf-halten Musik für VICIDIAL. Stellen Sie sicher, daß dieVerlängerung im Platz im extensions.conf ist und das, das es auf denDateinamen unten zeigt. - -
-
-
-Park-Dateiname - Dieses ist, wo Sie besonders anfertigen könnenauf-halten Musik für VICIDIAL. Stellen Sie sicher, daß der Dateiname10 Buchstaben lang oder kleiner ist und daß die Akte im Platz im/var/lib/asterisk/sounds Verzeichnis ist. - -
-
-
-Netz-Form - Dieses ist, wo Sie die kundenspezifische Webseiteeinstellen können, die geöffnet ist, wenn der Benutzer an dieNETZ-FORM-Taste klickt. So passen Sie die Abfragezeichenfolge nach dem Web-Formular, einfach beginnen, die Web-Formular mit VAR und dann die URL, die Sie verwenden möchten, ersetzt die Variablen mit den Variablen-Namen, die Sie verwenden möchten - A - phone_number - B -- genau wie in der Registerkarte INDEXE Abschnitt. - -
-
-
-Netz-Form-Target- Hier können Sie die eigene Web-Seite, dass der Rahmen Web-Formular wird geöffnet, wenn der Nutzer auf die Netz-Form-Taste. Der Standardwert ist _blank. - -
-
-
-Erlauben Sie Closers - Dieses ist, wo Sie einstellen können, obdie Benutzer dieser Kampagne die Wahl haben, zum des Anrufs zu einemgenauerem zu schicken. - -
-
-
-Rückstellung Übergangsgruppe - dieses fangen ist dieRückstellung In-Gruppe auf, die automatisch vorgewählt wird, wenndas Mittel zum Bringenkonferenz Rahmen in ihrer Mittelschnittstellegeht. - -
-
-
-Gewährte Übergangsgruppen - mit diesen checkbox Auflistungen könnenSie die Gruppen vorwählen, denen Mittel in dieser Kampagne bringenkönnen Anrufe zu. Erlauben Sie Closers muß ermöglicht werden, damitdiese Wahl oben darstellt. - - 0) - { +
+
+
+ QC-Datensatz Commit - Diese Option ermöglicht es dem Agenten festlegen, dass ein Datensatz wurde, die in QC. Es kann nicht mehr geändert werden, indem man. + -
-
-
- Erlauben Sie Inbound und gemischt - dieses ist, wo Sie einstellenkönnen, ob die Benutzer dieser Kampagne die Wahl haben, zum von voninbound Anrufen mit dieser Kampagne zu nehmen. Wenn Sie gemischtesinbound und outbound tun möchten dann, muß dieses auf Y eingestelltwerden. Wenn Sie nur das outbound Wählen auf dieser Kampagne tunmöchten einstellten dieses auf N. Default sind N.
-
+
- Vorwahlknopf-Status - Dieses ist, wohin Sie die Status einstellen,die Sie an innerhalb der Listen wählen wünschen, die für dieKampagne unten aktiv sind. Um einen anderen Status Vorwahlknopf hinzuzufügen, wählen Sie ihnvon der Drop-Down-Liste vor und Klicken FÜGT hinzu. Um einen derVorwahlknopfstatus zu entfernen, klicken Sie an dieENTFERNENVERBINDUNG nahe bei dem Status, den Sie entfernen möchten. + AddTimeclock Log Record - Diese Option ermöglicht es dem Benutzer, um an das timeclock Log.
-
+
- Liste Auftrag - Dieses Menü ist, wo Sie vorwählen, wie dieLeitungen, die die Status zusammenbringen, die oben vorgewähltwerden, in den Leitung Zufuhrbehälter eingesetzt werden: -
  - DOWN: wählen Sie die ersten Leitungen vor, die in die vicidial_list Tabellegeladen werden -
  - UP: wählen Sie die letzten Leitungen vor, die in die vicidial_listTabelle geladen werden -
  - UP PHONE: wählen Sie die höchste Telefonnummer und die Arbeiten seine Weiseunten vor -
  - DOWN PHONE: wählen Sie die niedrigste Telefonnummer und die Arbeiten seine Weiseoben vor -
  - UP LAST NAME: Anfänge mit letzten Namen beginnend mit Z und Arbeiten seine Weiseunten -
  - DOWN LAST NAME: Anfänge mit letzten Namen beginnend mit A und Arbeiten seine Weiseoben -
  - UP COUNT: Anfänge mit benannten Leitungen und Arbeiten seine Weise unten -
  - DOWN COUNT: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weiseoben -
  - DOWN COUNT 2nd NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder anderen Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus -
  - DOWN COUNT 3nd NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder dritten Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus -
  - DOWN COUNT 4th NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jedem einsetzt weiter, führen Sie - darfNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus + ÄndernTimeclock Log Record - Diese Option ermöglicht es dem Benutzer zu ändern, Einträge in der Log-timeclock.
-
+
- Zufuhrbehälter waagerecht ausgerichtet - Dieses ist, wieviele dieVDhopper Indexversuche führt, um in der vicidial_hopper Tabelle fürdiese Kampagne zu halten. Wenn Sie VDhopper Index jede Minute laufenlassen, bilden Sie dieses etwas grösser als die Zahl Leitungen, dieSie in eine Minute durchmachen. + Löschen der RegistrierungTimeclock Record - Diese Option ermöglicht es dem Benutzer zu löschen, Einträge in der Log-timeclock.
-
+
- Leitung Filter - Dieses ist eine Methode der Entstörung IhrerLeitungen mit einem Fragment einer SQL Frage. Benutzen Sie dieseFunktion mit Vorsicht, es ist einfach mit, der geringfügigstenÄnderung zur SQL Aussage versehentlich zu wählen zu stoppen.Rückstellung ist KEINE. + Agent API-Zugang - Diese Option ermöglicht es, das Konto für die Verwendung mit der vicidial Agenten-API-Befehle.
-
+
- Kraft-Zurückstellen des Zufuhrbehälters - erlaubt dieses Ihnen,aus dem Zufuhrbehälterinhalt nach Formunterordnung abzuwischen. Essollte wieder gefüllt werden, wenn der VDhopper Index läuft. + Shift Manager Vollstreckung Override - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager, um ihre Benutzer und Kennwort für ein Agent-Bildschirm, um die Verlagerung Beschränkungen auf einen Agenten Sitzung, wenn der Agent versucht, sich außerhalb ihrer Schicht. Der Standardwert ist 0.
-
+
- Vorwahlknopf-Methode - Dieses fangen ist die Weise, wie auf das Wählen zu definieren, stattfinden soll. Wenn HANDBUCH dann das auto_dial_level bei 0 verschlossen ist, es sei denn Vorwahlknopf-Methode geändert wird. Wenn VERHÄLTNIS dann der Normal, der eine Zeilenzahl für aktive Mittel wählt. ADAPT_HARD_LIMIT wählt predictively bis zum fallengelassenen Prozentsatz und dann erlaubt nicht das konkurrenzfähige Wählen, sobald die Tropfenbegrenzung erreicht wird, bis der Prozentsatz unten wieder geht. ADAPT_TAPERED läßt laufenden Überschuß den fallengelassenen Prozentsatz zur Hälfte erste der Verschiebung zu - wie durch das call_time definiert, das für Kampagne vorgewählt wird und erhält strenger, während die Verschiebung weitergeht. ADAPT_AVERAGE versucht, einen Durchschnitt oder den fallengelassenen Prozentsatz beizubehalten so, die konkurrenzfähig harte Begrenzungen nicht wie die anderen zwei Methoden auferlegen. Sie können nicht das Selbstvorwahlknopf-Niveau ändern, wenn Sie in irgendwelchen der ANPASSENVORWAHLKNOPFMETHODEN sind. Nur der Dialer kann das Vorwahlknopfniveau ändern wenn im vorbestimmten wählenden Modus. INBOUND_MAN ermöglicht es dem Agenten, um manuelle Einwahl Anrufe von einer Kampagne Liste, während in der Lage, die eingehenden Anrufe zwischen manuelle Einwahl fordert. + Download Listen - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager zu klicken Sie auf den Download-Link-Liste am unteren Rand einer Liste Änderung Bildschirm zu exportieren den gesamten Inhalt eines Verzeichnisses auf eine flache Datei. Der Standardwert ist 0.
-
+
- Selbstvorwahlknopf-Niveau - Dieses ist, wohin Sie einstellen,wieviele VICIDIAL sollte pro Mittel 0 verwenden des aktiven Mittelsnull zeichnet, Automobil, daswählen aus ist und die Mittel klicken,um jede Nummer zu wählen. Andernfalls hält VICIDIALWählverbindungen gleich den aktiven Mitteln, die mit demVorwahlknopfniveau multipliziert werden, um zu, wievielen Linien zukommen diese Kampagne auf jedem Bediener erlauben sollte. Das ANPASSENÜBERSTEUERUNG checkbox erlaubt Ihnen, ein neuesVorwahlknopfniveau zu zwingen, obwohl die Vorwahlknopfmethode in einemANPASSENMODUS ist. Dieses ist nützlich, wenn es eine drastischeVerschiebung in der Qualität der Leitungen gibt und Sie dasdial_level drastisch manuell ändern möchten. + Exportieren von Berichten - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager für den Zugriff auf die Ausfuhr rufen Berichte über die Berichte Bildschirm. Der Standardwert ist 0. Für die Export-Bericht fordert, um das folgende Feld wird für die Ausfuhr:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner
-
+
- Vorhandenes nur Tally - dieses fangen auf, wenn Satz zu YINCALL und WARTESCHLANGE Statusmittel ausläßt, wenn er die ZahlAnrufen zum Vorwahlknopf wenn nicht in MANUELLEN Vorwahlknopfmoduserrechnet. Rückstellung ist N. + Löschen von DNC-Listen - Diese Einstellung, wenn auf 1 gesetzt, wird es den Manager, der Telefonnummern aus dem DNC-Listen in der VICIDIAL System zu entfernen. + + + + + + +



+ + VICIDIAL_CAMPAIGNSTABELLE

+
+
+ Kampagne Identifikation - Dieses ist der kurze Name der Kampagne,es ist nicht editable nach Ausgangsunterordnung, kann nicht Räumeenthalten und muß zwischen 2 und 8 Buchstaben im lengt seinh.
-
+
- Tropfen-Prozentsatz-Begrenzung - dieses fangen ist auf, wohinSie die Begrenzung auf den Prozentsatz der fallengelassenen Anrufe,die einstellten Sie beim Verwenden eineranpassungsfähig-vorbestimmten Vorwahlknopfmethode möchten, nichtMANUELL oder des VERHÄLTNISSES. + Kampagne Name - Dieses ist die Beschreibung der Kampagne, muß eszwischen 6 und 40 Buchstaben lang sein.
-
+
- Maximum paßt den waagerecht ausgerichteten Vorwahlknopf an - diesesfangen ist auf, wohin Sie die Begrenzung auf die Begrenzungauf das numbr der Linien, die einstellten Sie gewählt pro Mittel beimVerwenden einer anpassungsfähig-vorbestimmten Vorwahlknopfmethodemöchten, nicht MANUELL oder des VERHÄLTNISSES. Diese Zahl kann alsdas Selbstvorwahlknopf-Niveau höher sein, wenn Ihre Kleinteile esstützen. Wert muß eine positive Nr. grösser als eine sein und kannDezimalstellen Rückstellung 3.0 haben. + Kampagne Beschreibung - dieses ist ein Protokoll auffangenfür die Kampagne, ist es wahlweise freigestellt und kann ein Maximumvon 255 Buchstaben lang sein.
-
+
- Neueste Bediener-Zeit - dieses fangen wird verwendet nurdurch die ADAPT_TAPERED Vorwahlknopfmethode auf. Sie sollten in dieStunde hereinkommen und Minute, um der Sie stoppen, diese Kampagne zuersuchen, 2100 würde bedeuten, daß Sie stoppen, diese Kampagne bei9PM Bedienerzeit zu wählen. Dieses läßt den sich verjüngendenAlgorithmus entscheiden wie konkurrenzfähig zum Vorwahlknopf durch,wie lang Sie haben, bis Sie fertiges Benennen sind. + Kampagne Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Kampagne in jeder Hinsicht geändert wurden.
-
+
- Passen Sie Intensität Modifizierfaktor an - dieses fangenwird verwendet, die vorbestimmte höhere oder niedrigere Intensitätzu justieren entweder auf. Das höhere eine positive Zahl, die Sievorwählen, grösser der Dialer den schreitenen Anruf erhöht, wenn esgeht oben und langsam der Dialer den schreitenen Anruf verringert,wenn es geht unten. Das niedriger die negative Zahl, Sie vorwählenhier, langsam erhöht der Dialer den schreitenen Anruf und schnellersenkt der Dialer den schreitenen Anruf, wenn es geht unten.Rückstellung ist 0. Dieses fangen wird verwendet nicht durchden HANDBUCH- oder VERHÄLTNIS-Vorwahlknopf Methoden auf. + Letztes Kampagne LOGON-Datum - dieses ist das letzte Mal, daß einMittel in diese Kampagne geloggt wurde.
-
+
- Vorwahlknopf-waagerecht ausgerichtetes Unterschied-Ziel - diesesfangen wird verwendet zu definieren auf, ob Sie Haben einerspezifischen Anzahl von den Mitteln zielen möchten, die Anruf- oderAnklopfenmittel warten. Z.B. wenn Sie immer auf Durchschnitt einerMittel haben möchten frei, Anrufe sofort zu nehmen, würden Siedieses bis -1 einstellen, wenn Sie ein immer haben zielen möchtenersuchen um den Einfluß, der ein Mittel wartet, das Sie dieses bis 1einstellen würden. Rückstellung ist 0. Dieses fangen wirdverwendet nicht durch den HANDBUCH- oder VERHÄLTNIS-VorwahlknopfMethoden auf. + Letzte Kampagne Call Date - Dies ist das letzte Mal, dass ein Anruf wurde durch einen Vertreter in diese Kampagne angemeldet behandelt.
-
+
- Gleichzeitige Übertragungen - diese Einstellung wird benutzt, um dieZahl Anrufen zu definieren, die zu den Mitteln gleichzeitig geschicktwerden können. Es wird empfohlen, daß diese Einstellung am AUTOMOBILgelassen wird. Dieses fangen wird verwendet nicht durch dieMANUELLE Vorwahlknopfmethode auf. + Kampagne Notfall erneuern - dieses checkbox erlaubt Ihnen, einenvicidial Notfall zu zwingen erneuern, selbst wenn die Kampagne nichtaktiv ist.
-
+
- Queue-Priorität - Diese Einstellung wird verwendet, um die Reihenfolge, in der die Anrufe von diesem ausgehende Kampagne zu beantworten in Bezug auf die eingehenden Anrufe, wenn diese Kampagne ist in Blended-Modus. + Aktiv - Dieses ist, wohin Sie die Kampagne auf aktives oderunaktiviertes einstellen. Wenn unaktiviert, kann noone in es loggen.
-
+
- Wählende SelbstAlt-zahl - diese Einstellung wird benutzt, umwechselnde Nummer automatisch zu wählen auffängt, beimWählen im VERHÄLTNIS und ANPASST Vorwahlknopfmethoden, wenn eskeinen Kontakt an der Haupttelefonnummer für eine Leitung, die Na, B,DC und N Status gibt. Diese Einstellung wird nicht durch die MANUELLEVorwahlknopfmethode benutzt. EXTENDED stellvertretenden Zahlen sind die Zahlen in das System außerhalb der Standard-Bildschirm führen. Mit Extended können Sie Hunderte von Telefonnummern für einen einzigen Kunden aufnehmen. + Park-Verlängerung - Dieses ist, wo Sie besonders anfertigenkönnen auf-halten Musik für VICIDIAL. Stellen Sie sicher, daß dieVerlängerung im Platz im extensions.conf ist und das, das es auf denDateinamen unten zeigt.
-
+
- Vorwahlknopf-Abschaltung - Wenn Sie, Anrufe, die normalerweiseHängezustand wurden, nachdem die Abschaltung, die in extensions.confanstatt Abschaltung an dieser Menge Sekunden definiert wurde wurde,wenn sie kleiner ist, als die extensions.conf Abschaltung definiertwerden. Dieses läßt schnell ändernde Vorwahlknopfabschaltungen vomBediener zum Bediener und zum Begrenzen der Effekte zu einer einzelnenKampagne zu. Wenn Sie eine Menge antwortende Maschine oder VoicemailAnrufe haben, können Sie diesen Wert, bis zwischen 21-26 zu ändernversuchen und sehen wünschen, wenn Resultate verbessern. + Park-Dateiname - Dieses ist, wo Sie besonders anfertigen könnenauf-halten Musik für VICIDIAL. Stellen Sie sicher, daß der Dateiname10 Buchstaben lang oder kleiner ist und daß die Akte im Platz im/var/lib/asterisk/sounds Verzeichnis ist.
-
+
- Kampagne VDAD Erweiterung - Dieses Feld erlaubt eine kundenspezifische Erweiterung VDAD Übertragung. Auf diese Weise können Sie verschiedene Call-Handling-Methoden je nach Ihrer Kampagne. -- 8364 - wie 8368 -- 8365 - wird die Forderung nur einem Agenten auf demselben Server wie der Anruf auf -- 8366 - Wird für die Presse-1 und Umfrage-Kampagnen -- 8367 - wird versuchen, zunächst schicken Sie die Forderung nach einem Agenten auf dem lokalen Server, dann wird es sich auf einem anderen Server - - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on -- 8369 - Wird für Anrufbeantworter-Erkennung nach, dass ein gleiches Verhalten wie 8368 -- 8373 - Wird für Anrufbeantworter-Erkennung, die nach dem gleichen Verhalten wie 8366 + Netz-Form - Dieses ist, wo Sie die kundenspezifische Webseiteeinstellen können, die geöffnet ist, wenn der Benutzer an dieNETZ-FORM-Taste klickt. So passen Sie die Abfragezeichenfolge nach dem Web-Formular, einfach beginnen, die Web-Formular mit VAR und dann die URL, die Sie verwenden möchten, ersetzt die Variablen mit den Variablen-Namen, die Sie verwenden möchten - A - phone_number - B -- genau wie in der Registerkarte INDEXE Abschnitt.
-
+
- Antwortende Maschine Anzeige - Dieses fangen ist für dasHereinkommen auf, in eine Verlängerung, zum von von Übergangsanrufenzu blind zu machen, wenn das Mittel eine antwortende Maschine erhältund an die antwortende Maschine Anzeige Taste imÜbergangskonferenzrahmen klickt. Sie müssen dieses einstellen extenoben im dial plan - extensions.conf - und sicherstellen, daß esspielt, eine Audioakte dann oben hängt. + Netz-Form-Target- Hier können Sie die eigene Web-Seite, dass der Rahmen Web-Formular wird geöffnet, wenn der Nutzer auf die Netz-Form-Taste. Der Standardwert ist _blank.
-
+
- AMD senden zu VM exten - erlaubt dieses Menü Ihnen zu definieren,ob eine Anzeige auf einer antwortenden Maschine gelassen wird, wennihr der Anruf wird sofort nachgeschickt zur Antworten-Maschine-AnzeigeVerlängerung ermittelt wird, wenn AMD aktiv ist und es festgestelltwird, daß der Anruf eine antwortende Maschine ist. + Erlauben Sie Closers - Dieses ist, wo Sie einstellen können, obdie Benutzer dieser Kampagne die Wahl haben, zum des Anrufs zu einemgenauerem zu schicken.
-
+
- CPD AMD Action - Wenn Sie die Sangoma ParaXip Rufen Fortschritte Detection-Software, dann werden Sie zum Aktivieren dieser Einstellung, entweder sie DISPO, die Disposition der Anruf als AA und hängen Sie es, wenn der Anruf wird bearbeitet und wurde nicht gesendet, um noch ein Agent oder eine Nachricht zu senden, die den Aufruf der Anrufbeantworter die Nachricht für diese Kampagne. Standardwert ist deaktiviert. + Rückstellung Übergangsgruppe - dieses fangen ist dieRückstellung In-Gruppe auf, die automatisch vorgewählt wird, wenndas Mittel zum Bringenkonferenz Rahmen in ihrer Mittelschnittstellegeht.
-
+
- Numerisches Wählen des Mittel-Alt - erlaubt diese Wahl einemVertreter, die wechselnde Telefonnummer manuell zu wählen, oderaddress3 fangen auf, nachdem die Hauptzahl benannt wordenist. + Gewährte Übergangsgruppen - mit diesen checkbox Auflistungen könnenSie die Gruppen vorwählen, denen Mittel in dieser Kampagne bringenkönnen Anrufe zu. Erlauben Sie Closers muß ermöglicht werden, damitdiese Wahl oben darstellt. + + 0) + { + ?> +
+
+
+ Erlauben Sie Inbound und gemischt - dieses ist, wo Sie einstellenkönnen, ob die Benutzer dieser Kampagne die Wahl haben, zum von voninbound Anrufen mit dieser Kampagne zu nehmen. Wenn Sie gemischtesinbound und outbound tun möchten dann, muß dieses auf Y eingestelltwerden. Wenn Sie nur das outbound Wählen auf dieser Kampagne tunmöchten einstellten dieses auf N. Default sind N. + +
+
+
+ Vorwahlknopf-Status - Dieses ist, wohin Sie die Status einstellen,die Sie an innerhalb der Listen wählen wünschen, die für dieKampagne unten aktiv sind. Um einen anderen Status Vorwahlknopf hinzuzufügen, wählen Sie ihnvon der Drop-Down-Liste vor und Klicken FÜGT hinzu. Um einen derVorwahlknopfstatus zu entfernen, klicken Sie an dieENTFERNENVERBINDUNG nahe bei dem Status, den Sie entfernen möchten. + +
+
+
+ Liste Auftrag - Dieses Menü ist, wo Sie vorwählen, wie dieLeitungen, die die Status zusammenbringen, die oben vorgewähltwerden, in den Leitung Zufuhrbehälter eingesetzt werden: +
  - DOWN: wählen Sie die ersten Leitungen vor, die in die vicidial_list Tabellegeladen werden +
  - UP: wählen Sie die letzten Leitungen vor, die in die vicidial_listTabelle geladen werden +
  - UP PHONE: wählen Sie die höchste Telefonnummer und die Arbeiten seine Weiseunten vor +
  - DOWN PHONE: wählen Sie die niedrigste Telefonnummer und die Arbeiten seine Weiseoben vor +
  - UP LAST NAME: Anfänge mit letzten Namen beginnend mit Z und Arbeiten seine Weiseunten +
  - DOWN LAST NAME: Anfänge mit letzten Namen beginnend mit A und Arbeiten seine Weiseoben +
  - UP COUNT: Anfänge mit benannten Leitungen und Arbeiten seine Weise unten +
  - DOWN COUNT: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weiseoben +
  - DOWN COUNT 2nd NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder anderen Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus +
  - DOWN COUNT 3nd NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder dritten Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus +
  - DOWN COUNT 4th NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jedem einsetzt weiter, führen Sie - darfNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus +
  - RANDOM: Zufällig schnappt führen innerhalb der definierten Status und Listen +
  - UP LAST CALL TIME: Sortiert nach den neuesten Ortsgespräch Zeit für die Leitungen +
  - DOWN LAST CALL TIME: Sortiert nach den ältesten Ortsgespräch Zeit für die Leitungen +
  - UP RANK: Startet mit dem höchsten Rang und arbeitet sich nach unten +
  - DOWN RANK: Startet mit dem niedrigsten Rang und arbeitet dem Weg nach oben +
  - UP OWNER: Beginnt mit den Eigentümern beginnend mit Z und arbeitet sich nach unten +
  - DOWN OWNER: Beginnt mit den Eigentümern mit A beginnt und arbeitet dem Weg nach oben +
  - UP TIMEZONE: Startet mit Ost-West Zeitzonen und arbeitet +
  - DOWN TIMEZONE: Startet mit westlichen Zeitzonen und arbeitet Osten + +
+
+
+ Zufuhrbehälter waagerecht ausgerichtet - Dieses ist, wieviele dieVDhopper Indexversuche führt, um in der vicidial_hopper Tabelle fürdiese Kampagne zu halten. Wenn Sie VDhopper Index jede Minute laufenlassen, bilden Sie dieses etwas grösser als die Zahl Leitungen, dieSie in eine Minute durchmachen. + +
+
+
+ Leitung Filter - Dieses ist eine Methode der Entstörung IhrerLeitungen mit einem Fragment einer SQL Frage. Benutzen Sie dieseFunktion mit Vorsicht, es ist einfach mit, der geringfügigstenÄnderung zur SQL Aussage versehentlich zu wählen zu stoppen.Rückstellung ist KEINE. + +
+
+
+ Drop Lockout Time - Dies ist eine Zahl der Stunden, die DROP aufzugeben Anrufe verhindert werden, daß gewählt, zu deaktivieren, auf 0 gesetzt. Diese Einstellung ist sehr nützlich, in Ländern wie dem Vereinigten Königreich, wo gibt es Vorschriften, die verhindern versucht Berufung des Kunden innerhalb von 72 Stunden ein Abandon oder DROP. Der Standardwert ist 0. + +
+
+
+ Kraft-Zurückstellen des Zufuhrbehälters - erlaubt dieses Ihnen,aus dem Zufuhrbehälterinhalt nach Formunterordnung abzuwischen. Essollte wieder gefüllt werden, wenn der VDhopper Index läuft. + +
+
+
+ Vorwahlknopf-Methode - Dieses fangen ist die Weise, wie auf das Wählen zu definieren, stattfinden soll. Wenn HANDBUCH dann das auto_dial_level bei 0 verschlossen ist, es sei denn Vorwahlknopf-Methode geändert wird. Wenn VERHÄLTNIS dann der Normal, der eine Zeilenzahl für aktive Mittel wählt. ADAPT_HARD_LIMIT wählt predictively bis zum fallengelassenen Prozentsatz und dann erlaubt nicht das konkurrenzfähige Wählen, sobald die Tropfenbegrenzung erreicht wird, bis der Prozentsatz unten wieder geht. ADAPT_TAPERED läßt laufenden Überschuß den fallengelassenen Prozentsatz zur Hälfte erste der Verschiebung zu - wie durch das call_time definiert, das für Kampagne vorgewählt wird und erhält strenger, während die Verschiebung weitergeht. ADAPT_AVERAGE versucht, einen Durchschnitt oder den fallengelassenen Prozentsatz beizubehalten so, die konkurrenzfähig harte Begrenzungen nicht wie die anderen zwei Methoden auferlegen. Sie können nicht das Selbstvorwahlknopf-Niveau ändern, wenn Sie in irgendwelchen der ANPASSENVORWAHLKNOPFMETHODEN sind. Nur der Dialer kann das Vorwahlknopfniveau ändern wenn im vorbestimmten wählenden Modus. INBOUND_MAN ermöglicht es dem Agenten, um manuelle Einwahl Anrufe von einer Kampagne Liste, während in der Lage, die eingehenden Anrufe zwischen manuelle Einwahl fordert. + +
+
+
+ Selbstvorwahlknopf-Niveau - Dieses ist, wohin Sie einstellen,wieviele VICIDIAL sollte pro Mittel 0 verwenden des aktiven Mittelsnull zeichnet, Automobil, daswählen aus ist und die Mittel klicken,um jede Nummer zu wählen. Andernfalls hält VICIDIALWählverbindungen gleich den aktiven Mitteln, die mit demVorwahlknopfniveau multipliziert werden, um zu, wievielen Linien zukommen diese Kampagne auf jedem Bediener erlauben sollte. Das ANPASSENÜBERSTEUERUNG checkbox erlaubt Ihnen, ein neuesVorwahlknopfniveau zu zwingen, obwohl die Vorwahlknopfmethode in einemANPASSENMODUS ist. Dieses ist nützlich, wenn es eine drastischeVerschiebung in der Qualität der Leitungen gibt und Sie dasdial_level drastisch manuell ändern möchten. + +
+
+
+ Vorhandenes nur Tally - dieses fangen auf, wenn Satz zu YINCALL und WARTESCHLANGE Statusmittel ausläßt, wenn er die ZahlAnrufen zum Vorwahlknopf wenn nicht in MANUELLEN Vorwahlknopfmoduserrechnet. Rückstellung ist N. + +
+
+
+ Tropfen-Prozentsatz-Begrenzung - dieses fangen ist auf, wohinSie die Begrenzung auf den Prozentsatz der fallengelassenen Anrufe,die einstellten Sie beim Verwenden eineranpassungsfähig-vorbestimmten Vorwahlknopfmethode möchten, nichtMANUELL oder des VERHÄLTNISSES. + +
+
+
+ Maximum paßt den waagerecht ausgerichteten Vorwahlknopf an - diesesfangen ist auf, wohin Sie die Begrenzung auf die Begrenzungauf das numbr der Linien, die einstellten Sie gewählt pro Mittel beimVerwenden einer anpassungsfähig-vorbestimmten Vorwahlknopfmethodemöchten, nicht MANUELL oder des VERHÄLTNISSES. Diese Zahl kann alsdas Selbstvorwahlknopf-Niveau höher sein, wenn Ihre Kleinteile esstützen. Wert muß eine positive Nr. grösser als eine sein und kannDezimalstellen Rückstellung 3.0 haben. + +
+
+
+ Neueste Bediener-Zeit - dieses fangen wird verwendet nurdurch die ADAPT_TAPERED Vorwahlknopfmethode auf. Sie sollten in dieStunde hereinkommen und Minute, um der Sie stoppen, diese Kampagne zuersuchen, 2100 würde bedeuten, daß Sie stoppen, diese Kampagne bei9PM Bedienerzeit zu wählen. Dieses läßt den sich verjüngendenAlgorithmus entscheiden wie konkurrenzfähig zum Vorwahlknopf durch,wie lang Sie haben, bis Sie fertiges Benennen sind. + +
+
+
+ Passen Sie Intensität Modifizierfaktor an - dieses fangenwird verwendet, die vorbestimmte höhere oder niedrigere Intensitätzu justieren entweder auf. Das höhere eine positive Zahl, die Sievorwählen, grösser der Dialer den schreitenen Anruf erhöht, wenn esgeht oben und langsam der Dialer den schreitenen Anruf verringert,wenn es geht unten. Das niedriger die negative Zahl, Sie vorwählenhier, langsam erhöht der Dialer den schreitenen Anruf und schnellersenkt der Dialer den schreitenen Anruf, wenn es geht unten.Rückstellung ist 0. Dieses fangen wird verwendet nicht durchden HANDBUCH- oder VERHÄLTNIS-Vorwahlknopf Methoden auf. + +
+
+
+ Vorwahlknopf-waagerecht ausgerichtetes Unterschied-Ziel - diesesfangen wird verwendet zu definieren auf, ob Sie Haben einerspezifischen Anzahl von den Mitteln zielen möchten, die Anruf- oderAnklopfenmittel warten. Z.B. wenn Sie immer auf Durchschnitt einerMittel haben möchten frei, Anrufe sofort zu nehmen, würden Siedieses bis -1 einstellen, wenn Sie ein immer haben zielen möchtenersuchen um den Einfluß, der ein Mittel wartet, das Sie dieses bis 1einstellen würden. Rückstellung ist 0. Dieses fangen wirdverwendet nicht durch den HANDBUCH- oder VERHÄLTNIS-VorwahlknopfMethoden auf. + +
+
+
+ Gleichzeitige Übertragungen - diese Einstellung wird benutzt, um dieZahl Anrufen zu definieren, die zu den Mitteln gleichzeitig geschicktwerden können. Es wird empfohlen, daß diese Einstellung am AUTOMOBILgelassen wird. Dieses fangen wird verwendet nicht durch dieMANUELLE Vorwahlknopfmethode auf. + +
+
+
+ Queue-Priorität - Diese Einstellung wird verwendet, um die Reihenfolge, in der die Anrufe von diesem ausgehende Kampagne zu beantworten in Bezug auf die eingehenden Anrufe, wenn diese Kampagne ist in Blended-Modus. + +
+
+
+ Mehrere Kampagne Drop Rate Group - Diese Funktion erlaubt Ihnen, eine Kampagne als Mitglied einer Kampagne Drop-Rate-Fraktion, oder eine Gruppe von Kampagnen Menge, deren Human Beantwortete Anrufe und Drop fordert für alle Kampagnen in der Gruppe werden in einen gemeinsamen Drop Prozentsatz, oder aufgeben und abstimmen kombiniert werden. Dies ermöglicht es Ihnen, mehrere Kampagnen gleichzeitig und leichter Ablaufsteuerung Ihre Drop-Rate. Dies ist besonders nützlich in Großbritannien, wo die Vorschriften dieser Drop-Rate Berechnungsmethode mit Kampagnen-Gruppierung in der gleichen Firma Bewilligung, auch wenn es mehrere Kampagnen, die Firma läuft am selben Tag. Um dies für eine Kampagne zu aktivieren, wählen Sie einfach eine Gruppe aus der Liste. Es gibt 10 Gruppen in das System standardmäßig definiert, können Sie Ihren Systemadministrator wenden, um mehr hinzuzufügen. Option ist standardmäßig deaktiviert. + +
+
+
+ Wählende SelbstAlt-zahl - diese Einstellung wird benutzt, umwechselnde Nummer automatisch zu wählen auffängt, beimWählen im VERHÄLTNIS und ANPASST Vorwahlknopfmethoden, wenn eskeinen Kontakt an der Haupttelefonnummer für eine Leitung, die Na, B,DC und N Status gibt. Diese Einstellung wird nicht durch die MANUELLEVorwahlknopfmethode benutzt. EXTENDED stellvertretenden Zahlen sind die Zahlen in das System außerhalb der Standard-Bildschirm führen. Mit Extended können Sie Hunderte von Telefonnummern für einen einzigen Kunden aufnehmen. + +
+
+
+ Vorwahlknopf-Abschaltung - Wenn Sie, Anrufe, die normalerweiseHängezustand wurden, nachdem die Abschaltung, die in extensions.confanstatt Abschaltung an dieser Menge Sekunden definiert wurde wurde,wenn sie kleiner ist, als die extensions.conf Abschaltung definiertwerden. Dieses läßt schnell ändernde Vorwahlknopfabschaltungen vomBediener zum Bediener und zum Begrenzen der Effekte zu einer einzelnenKampagne zu. Wenn Sie eine Menge antwortende Maschine oder VoicemailAnrufe haben, können Sie diesen Wert, bis zwischen 21-26 zu ändernversuchen und sehen wünschen, wenn Resultate verbessern. + +
+
+
+ Kampagne VDAD Erweiterung - Dieses Feld erlaubt eine kundenspezifische Erweiterung VDAD Übertragung. Auf diese Weise können Sie verschiedene Call-Handling-Methoden je nach Ihrer Kampagne. + - 8364 - wie 8368 + - 8365 - wird die Forderung nur einem Agenten auf demselben Server wie der Anruf auf + - 8366 - Wird für die Presse-1 und Umfrage-Kampagnen + - 8367 - wird versuchen, zunächst schicken Sie die Forderung nach einem Agenten auf dem lokalen Server, dann wird es sich auf einem anderen Server + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Wird für Anrufbeantworter-Erkennung nach, dass ein gleiches Verhalten wie 8368 + - 8373 - Wird für Anrufbeantworter-Erkennung, die nach dem gleichen Verhalten wie 8366 + +
+
+
+ Antwortende Maschine Anzeige - Dieses Feld ist für die Eingabe von der Eingabeaufforderung zu spielen, wenn der Agent einen Anrufbeantworter und Klicks wird auf dem Anrufbeantworter Mitteilung Button in der Übertragung Konferenz Rahmen. Sie müssen diese entweder auf eine Audio-Datei in das Audio-Speicher oder ein TTS set prompt TTS, wenn auf Ihrem System aktiviert ist. + +
+
+
+ WaitForSilence Optionen - Wenn Wait For Silence ist auf Anrufe, die als Anrufbeantworter dann festgestellt werden diesem Bereich hat die gewünschten Optionen. Es gibt zwei Einstellungen durch ein Komma getrennt, ist die erste Option, wie lange Schweigen in Millisekunden erkennen und die zweite Option ist, wie oft erkennen, dass vor dem Abspielen der Nachricht. Der Standardwert ist LEER für Behinderte. Ein Standard-Wert für dieses wäre für 2 Sekunden Stille warten, zweimal: 2000,2 + +
+
+
+ AMD senden zu VM exten - erlaubt dieses Menü Ihnen zu definieren,ob eine Anzeige auf einer antwortenden Maschine gelassen wird, wennihr der Anruf wird sofort nachgeschickt zur Antworten-Maschine-AnzeigeVerlängerung ermittelt wird, wenn AMD aktiv ist und es festgestelltwird, daß der Anruf eine antwortende Maschine ist. + +
+
+
+ CPD AMD Action - Wenn Sie die Sangoma ParaXip Rufen Fortschritte Detection-Software, dann werden Sie zum Aktivieren dieser Einstellung, entweder sie DISPO, die Disposition der Anruf als AA und hängen Sie es, wenn der Anruf wird bearbeitet und wurde nicht gesendet, um noch ein Agent oder eine Nachricht zu senden, die den Aufruf der Anrufbeantworter die Nachricht für diese Kampagne. Standardwert ist deaktiviert. + +
+
+
+ Numerisches Wählen des Mittel-Alt - erlaubt diese Wahl einemVertreter, die wechselnde Telefonnummer manuell zu wählen, oderaddress3 fangen auf, nachdem die Hauptzahl benannt wordenist. + +
+
+
+ Sekunden zur Verbindung - Anzahl der Sekunden vom Abnehmen des Kunden bis zur Erkennung als Verbindung, betrifft nur abgehende Verbindungen. + +
+
+
+ Drop-Aktion - Mit diesem Menü können Sie wählen, was passiert, wenn er einen Anruf wartet seit mehr als das, was ist in der Drop-Call Sekunden ein. HANGUP einfach auflegen, das Gespräch, MESSAGE wird die Forderung der Drop-Erweiterung, die Sie definiert haben, unten, Voicemail wird der Anruf an die Voicemail-Box, die Sie definiert haben, und unter IN_GROUP wird der Aufruf an die Inbound-Gruppe, die weiter unten definiert ist + +
+
+
+ Sicherheitsnebenstelle - Dies ist die Wählplan Nebenstelle, wo sich die gewünschte Sicherheits-Audiodatei auf Ihrem Server befindet. + +
+
+
+ Voicemail - Wenn sie definiert werden, würden Anrufe, dienormalerweise FALLEN würden, anstatt auf diesen voicemail Kastenverwiesen, um eine Anzeige zu hören und zu lassen. + +
+
+
+ Drop-Transfer-Fraktion - Wenn Drop-Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie erreicht Drop Call Sekunden. + +
+
+
+ Gewähren Sie Kein-Zufuhrbehälter-Führt LOGON - wenn Satz zu Y,Mittel zum LOGON zur Kampagne erlaubt, selbst wenn es keine Leitungengibt, die in den Zufuhrbehälter für diese Kampagne geladen werden.Diese Funktion wird nicht in den CLOSER-type Kampagnen benötigt.Rückstellung ist N. + +
+
+
+ Nr. Hopper Dialing - Wenn diese aktiviert ist, wird der Trichter nicht ausgeführt werden für diese Kampagne. Diese Option ist nur verfügbar, wenn die DFÜ-Methode, mit manuellen oder INBOUND_MAN gesetzt ist. Es wird empfohlen, dass Sie diese Option nicht aktivieren, wenn Sie eine sehr große Datenbank haben, führen über 100.000 führt. With No Hopper Wählen Sie die folgenden Funktionen nicht:-Recycling, Auto-alt-Dialing, Verzeichnis-Mix, Liste Bestellung mit X. NEW. Wenn Sie Besitzer verwenden Nur Wählen Sie müssen keine Hopper Dialing aktiviert. Der Standardwert ist N für Behinderte. + +
+
+
+ Eigentümer nur Dialing - Wenn diese aktiviert ist, wird der Agent führt nur zu erhalten, dass sie in das Eigentum Parameter sind. Ist dies der USER dann die Vertreter muß der Benutzer in der Datenbank als Besitzer dies dazu führen, definiert. Ist dies das Hoheitsgebiet dann die Eigentümer der führen muss das Gebiet, in dem User Änderung Bildschirm für dieses Anbieters angegeben haben. Ist dies zu USER_GROUP dann die Eigentümer der führen muss der Benutzer die Gruppe, dass der Agent ist ein Mitglied der übereinstimmen. Für diese Funktion, um die DFÜ-Methode arbeiten müssen, um MANUAL oder INBOUND_MAN und Nr. Hopper Dialing eingestellt werden muss aktiviert sein. Der Standardwert ist KEINE für Behinderte. + + 0) + { + ?> +
+
+
+ Wählen Sie Agent Territories - Wenn diese Option aktiviert ist und der Agent gehört mindestens ein Gebiet, wird der Agent die Möglichkeit haben, die Auswahl Gebiete führt vom Zifferblatt. Der Agent wird eine Liste der verfügbaren Gebiete bei der Anmeldung zu sehen und sie wird die Fähigkeit, um wieder auf diesem Gebiet Liste haben, wenn angehalten, ihre Gebiete zu ändern. Für diese Funktion für die Arbeit der Eigentümer nur Dialing-Option zu GEBIET und User Gebiete gesetzt werden muss in den Einstellungen aktiviert werden. + + +
+
+
+ Liste Auftrag Mischung - läuft den Leitung Auftrag über undVorwahlknopf-Status fängt auf. Verwendet die Liste undStatusparameter für die vorgewählte Liste Mischung Eintragung imListe Mischung Unterseebootabschnitt anstatt. Rückstellung istUNTAUGLICH. + +
+
+
+ Liste Mischung Identifikation - Identifikation der Liste Mischung.Muß von 2-20 Buchstaben lang ohne Räume oder andere spezielleInterpunktion sein. + +
+
+
+ Liste Mischung Name - beschreibender Name der Liste Mischung. Muß von2-50 Buchstaben lang sein. + +
+
+
+ Liste Mischung Detail - der Aufbau der Liste Mischung Eintragung.Enthält die Liste Identifikation, Mischung Auftrag, Prozentsätze undStatus, die diese Liste Mischung bilden. Die Prozentsätze müssen bis100 immer addieren, und alle Listen müssen aktiv und eingestellt aufdie Kampagne sein, damit die Auftrag Mischung Eintragung aktiviertwerden kann. + +
+
+
+ Liste Mischung Methode - die Methode von alle Teile des Liste MischungDetails zusammen mischen. EVEN_MIX mischt Leitungen von jedem Teil,das mit den anderen Teilen, wie diese 1.2.3.1.2.3.1.2.3 durchgeschobenwird. IN_ORDER setzt die Leitungen in den Auftrag ein, in dem sie aufdem Liste Mischung Detailschirm 1.1.1.2.2.2.3.3.3 verzeichnet werden.GELEGENTLICHER Wille setzte sie in GELEGENTLICHEN Auftrag1.3.2.1.1.3.2.1.3 ein. Rückstellung ist IN_ORDER. + +
+
+
+ Agent Screen Erweiterte Alt Dial - Diese Funktion erlaubt es Agenten für den Zugriff auf erweiterte stellvertretenden Telefonnummern führt über die Standard-Telefon-und Alt Address3 Felder, die verwendet werden können in VICIDIAL für Telefonnummern außerhalb der Haupt-Telefonnummer. Die Ausdehnung Telefonnummern gewählt werden können automatisch über die Auto-Alt-Dial-Funktion in VICIDIAL Kampagne Einstellungen, aber die Aktivierung dieser Agent Screen-Funktion wird auch für den Agenten, um diese Zahlen aus ihrer Bevollmächtigten Bildschirm sowie Informationen zu bearbeiten. + +
+
+
+ Umfrage Erste Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, sobald der Kunde nimmt das Telefon, wenn Sie eine Umfrage Kampagne. + +
+
+
+ Umfrage DTMF Digits - Dieses Feld ist, in dem Sie die Zahlen, dass ein Kunde kann Presse als eine Option auf eine Umfrage-Kampagne. gültig von DTMF-Ziffern sind0123456789*#. Alle Optionen mit Ausnahme der nicht interessiert, dritte und vierte Stelle Optionen werden nun zu den Umfrage-Methode nennen Weg. + +
+
+
+ Umfrage nicht interessiert Digit - Dieses Feld ist, wo Sie den Kunden Ziffer gedrückt wird, dass sie nicht daran interessiert sind. + +
+
+
+ Umfrage nicht interessiert Status - Dieses Feld ist, wo Sie den Status, der für die nicht interessiert. Wenn DNC verwendet wird und die Kampagne für die Verwendung DNC dann die Telefonnummer wird automatisch auf die interne VICIDIAL DNC Liste.und möglicherweise die Kampagne-spezifische DNC Liste. + +
+
+
+ Umfrage Opt-in Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich bei der Erhebung, sich nicht-oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptOut. Nach dieser Audio-Datei gespielt wird, die Umfrage-Methode Maßnahmen ergriffen werden. + +
+
+
+ Umfrage nicht interessiert Audio Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich aus der Umfrage, nicht Opt-in ist oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptIn. Nach dieser Audio-Datei gespielt wird, wird der Anruf wird dann. + +
+
+
+ Umfrage-Methode - Diese Option legt fest, was geschieht, auf eine Ausschreibung nach den Kunden hat sich in. AGENT_XFER wird der Anruf an den nächsten verfügbaren Agenten. VOICEMAIL wird der Anruf an die Voicemail-Box, die in den Bereich Voicemail. AUSDEHNUNG wird der Kunde auf die Ausdehnung der Definition in der Umfrage XFER Erweiterung Bereich. HANGUP hängt die Kunden. CAMPREC_60_WAV wird der Kunde auf eine Aufnahme, die mit ihrer Antwort, diese Aufnahme wird in einem Ordner mit dem Namen, wie sich die Kampagne innerhalb der Umfrage Kampagne Aufnahme Directory. + +
+
+
+ Umfrage Nr.-Response Action - Hier wird definiert, was passieren wird, wenn es keine Reaktion auf die Umfrage Frage. OptIn wird nur dann den Aufruf an die an der Umfrage-Methode, wenn der Kunde Pressen eine DTMF-Ziffern. OptOut wird der Kunde auf die Umfrage-Methode, auch wenn sie nicht drücken Sie eine DTMF-Ziffern. + +
+
+
+ Antworten Digit Karte - Das ist der Abschnitt, in dem Sie eine Beschreibung zu jedem DTMF-Ziffern Option, dass der Kunde auswählen kann. + +
+
+
+ Umfrage XFER Extension - , wenn die Methode der Erhebung AUSDEHNUNG ausgewählt ist dann der Kunde Aufruf richten Sie bitte an dieser dialplan Erweiterung. + +
+
+
+ Umfrage Kampagne Aufnahme der Dienststellen - , wenn die Methode der Erhebung CAMPREC_60_WAV ausgewählt ist dann der Kunde Reaktion wird erfasst und in ein Verzeichnis mit dem Namen nach der Kampagne innerhalb dieses Verzeichnisses. + +
+
+
+ Umfrage dritte Ziffer - Dies ermöglicht einen dritten Anruf weg, wenn die dritte Stelle in diesem Bereich definiert ist, gedrückt durch den Kunden. + +
+
+
+ Umfrage vierte Stelle - Dies ermöglicht ein Viertel nennen Weg, wenn die vierte Stelle in diesem Bereich definiert ist, gedrückt durch den Kunden. + +
+
+
+ Umfrage Dritten Audio-Datei - Dies ist der dritte Audiodatei auf die Auswahl des Kunden von der dritten Stelle Option gespielt werden. + +
+
+
+ Umfrage Dritten Status - Dies ist der dritte Status für den Anruf auf die Auswahl des Kunden von der dritten Stelle Option verwendet. + +
+
+
+ Umfrage dritte Erweiterung - Dies ist die dritte Erweiterung für den Anruf auf die Auswahl des Kunden von der dritten Stelle Option verwendet. Der Standardwert ist 8300, das hängt unmittelbar den Ruf nach der Audio-Datei Meldung abgespielt ist. + +
+
+
+ Agent Anzeige dialable Leads - Diese Option aktiviert wird, wenn die Anzahl der wählbaren führt in die Kampagne in der Agenten-Bildschirm zeigen. Diese Zahl wird in das System einmal pro Minute aktualisiert und wird auf dem Bildschirm des Agenten aktualisiert werden, alle paar Sekunden. + +
-
+
- Sekunden zur Verbindung - Anzahl der Sekunden vom Abnehmen des Kunden bis zur Erkennung als Verbindung, betrifft nur abgehende Verbindungen. + Folgender Vertreter-Anruf - Dieses stellt fest, welches Mittel denfolgenden Anruf empfängt, der vorhanden ist: +
  - random: Aufträge durch den gelegentlichen Updatewert in dervicidial_live_agents Tabelle +
  - oldest_call_start: Aufträge bis zum dem letzten Mal ein Mittel wurden einem Anrufgeschickt. Resultate in den Mitteln, die insgesamt ungefähr gleicheZahl von Anrufen empfangen. +
  - oldest_call_finish: Aufträge bis zum dem letzten Mal ein Mittel beendeten einen Anruf.Das AKA Mittel, das am längsten wartet, empfängt ersten Anruf. +
  - overall_user_level: Aufträge durch das user_level des Mittels, wie inden vicidial_users definiert legen ein höheres user_level empfangenmehr Anrufe ver. +
  - campaign_rank: Aufträge durch den Rank gegeben zum Mittel für dieKampagne. Stark zu am niedrigsten. +
  - fewest_calls: Aufträge durch die Zahl den Anrufen empfangen durch einMittel für diese spezifische inbound Gruppe. Wenige Anrufe zuerst. +
  - longest_wait_time: Bestellungen durch die Zeit, die Agenten aktiv gewartet auf einen Anruf.
-
+
- Drop-Aktion - Mit diesem Menü können Sie wählen, was passiert, wenn er einen Anruf wartet seit mehr als das, was ist in der Drop-Call Sekunden ein. HANGUP einfach auflegen, das Gespräch, MESSAGE wird die Forderung der Drop-Erweiterung, die Sie definiert haben, unten, Voicemail wird der Anruf an die Voicemail-Box, die Sie definiert haben, und unter IN_GROUP wird der Aufruf an die Inbound-Gruppe, die weiter unten definiert ist + Ortsgespräch-Zeit - Dieses ist, wohin Sie während welcherStunden Sie wählen möchten, wie bis zum der lokalen Zeit infestgestellt sind einstellten in, welchem Sie benennen. Dieses wirddurch Ortsnetzkennzahl gesteuert und wird auf Tageslicht-SparungenZeit eingestellt, wenn anwendbar. Allgemeine Richtlinien in den USAfür Geschäft zum Geschäft ist 9am bis 5pm und Geschäft zu denVerbraucheranrufen ist 9am bis 9pm.
-
+
- Sicherheitsnebenstelle - Dies ist die Wählplan Nebenstelle, wo sich die gewünschte Sicherheits-Audiodatei auf Ihrem Server befindet. + Vorwahlknopf-Präfix - Dieses fangen zuläßt einen Wegdes Wählens leicht ändern auf, zum durch eine andere Methode zuerlöschen, ohne ein Umladen im Sternchen zu tun. Rückstellung ist 9gegründet nach einem 91NXXNXXXXXX im dial plan - extensions.conf.
-
+
- Voicemail - Wenn sie definiert werden, würden Anrufe, dienormalerweise FALLEN würden, anstatt auf diesen voicemail Kastenverwiesen, um eine Anzeige zu hören und zu lassen. + Lassen Sie Telefon-Code aus - dieses fangen erlaubt Ihnen,das phone_code auszulassen auffangen beim Wählen innerhalbVICIDIAL auf. Zum Beispiel wenn Sie in Großbritannien vonGroßbritannien wählen, würden Sie 44 innen haben, wie Ihrphone_code für alle Leitungen auffangen, aber Sie gerade 10Stellen in Ihrem dial plan extensions.conf wählen möchten, um Anrufeanstelle von 44 dann 10 Stellen zu setzen. Rückstellung ist N.
-
+ +
+ Kampagne CallerID - Dieses fangen zuläßt das Senden einer kundenspezifischen callerid Zahl bei den outbound Anrufen auf. Dieses ist die Zahl, die oben auf dem callerid der Person darstellen würde, die, Sie anrufen. Die Rückstellung ist UNBEKANNT. Wenn Sie T1 benutzen, oder Eß, zum dieser Wahl heraus zu wählen nur vorhanden ist, wenn Sie PRIs verwenden - ISDN Tß oder Eß - die die kundenspezifische callerid Eigenschaft haben, die eingeschaltet wird, arbeitet dieses nicht mit Berauben-Spitze Service - RBS- Stromkreise. Dieses arbeitet auch durch das meiste VOIP - SIP oder IAX Stammversorger, die dynamisches outbound callerID erlauben. Das kundenspezifische callerID trifft nur auf die Anrufe zu, die direkt für die VICIDIAL Kampagne gesetzt werden, benennt jede mögliche 3. Partei, oder Übertragungen senden nicht das kundenspezifische callerID. ANMERKUNG: UNBEKANNT oder PRIVAT in auffangen manchmal sich setzen erbringt das Senden Ihrer Rückstellung callerID Zahl durch Ihre Fördermaschine mit den Anrufen. Sie können dieses prüfen wünschen und fangen 0000000000 in das callerid sich zu setzen anstatt auf, wenn Sie nicht Ihnen CallerID schicken möchten. + +
+
+
+ Kampagne Rec Verlängerung - Dieses fangen darf auf,damit eine kundenspezifische Aufnahmeverlängerung mit VICIDIALverwendet werden kann. Dieses erlaubt Ihnen, unterschiedlicheVerlängerungen zu verwenden, abhängend nach, wie lang Sie einemaximale Aufnahme erlauben möchten und welcher Art von Codec Sieinnen notieren möchten. Die Rückstellung exten ist 8309, die, wennSie folgen die SCRATCH_INSTALL Beispiele im WAV Format bis zu einerStunde lang notieren. Eine andere Wahl, die in den Beispieleneingeschlossen ist, ist 8310, die im G/M Format bis zu einer Stundelang notieren. + +
+
+
+ Kampagne Aufnahme - dieses Menü erlaubt Ihnen, zu wählen, welchesNiveau der Aufnahme auf dieser Kampagne erlaubt wird. NIE sperrtAufnahme auf dem Klienten. ONDEMAND ist die Rückstellung und erlaubtdem Vertreter zu notieren zu beginnen und, zu stoppen, wie gebraucht.ALLCALLS beginnt Aufnahme auf dem Klienten, wann immer ein Anruf zueinem Mittel geschickt wird. ALLFORCE beginnt Aufnahme auf demKlienten, wann immer ein Anruf zu einem Mittel geschickt wird, das demMittel keine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS undALLFORCE gibt es eine Wahl, zum der Aufnahme zu benutzen verzögert,um unten auf sehr kurze Aufnahmen und recude Anlagen-Belastung zuschneiden. + +
+
+
+ Kampagne Rec Dateiname - Dieses fangen erlaubt Ihnen, denNamen der Aufnahme besonders anzufertigen auf, wenn Kampagne AufnahmeONDEMAND oder ALLCALLS ist. Die erlaubten Variablen sind KAMPAGNECUSTPHONE FULLDATE TINYDATE EPOCHE-MITTEL. Die Rückstellung istFULLDATE_MITTELund würde wie dieses 20051020-103108_6666 aussehen.Ein anderes Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, das wie diesesTESTCAMP_51020103108_3125551212 aussehen würde. 50 char max. + +
+
+
+ Das Notieren verzögert - für ALLCALLS und ALLFORCE nur Aufnahme.Dieser Einstellung Wille verzögert das Beginnen der Aufnahme beiallen Anrufen für die Zahl den Sekunden, die diesbezüglichspezifiziert werden, auffangen. Rückstellung ist 0. + +
+
+
+ Kampagne Index - Dieses Menü erlaubt Ihnen, den Index zu wählen,der auf dem Mittelschirm für diese Kampagne erscheint. Wählen SieKEINE vor, keinen Index für diese Kampagne zu zeigen. + +
+
+
+ Erhalten Sie Anruf-Produkteinführung - Dieses Menü erlaubt Ihnenzu wählen, ob Sie Automobil-ausstoßen die Netz-Form Seite in einemunterschiedlichen Fenster, Auto-switch zum INDEX-Vorsprung oder tunnichts wünschen, wenn ein Anruf zum Mittel für diese Kampagnegeschickt wird. + +
+
+
+ Xfer-Conf DTMF - Diese vier Felder können Sie zwei Arten von Transfer zum Konferenz-und DTMF-Presets. Wenn der Anruf oder die Kampagne geladen wird, wird das Skript vicidial.php zwei Tasten auf der Transfer-Konferenz Rahmen und auto show-bevölkern die Zahl-to-Dial und die Sende-DTMF-Felder, wenn gedrückt. Wenn Sie zulassen möchten Beratenden Transfers, ein Fronter, eine engere, haben die Agenten verwenden Sie die Checkbox BERATENDE, die nicht für Dritte nicht funktioniert-ViciDial beratende Anrufe. Für die nur noch der Agent auf die DFÜ mit Kunden-Taste. Dann kann der Agent nur LEAVE-3way-CALL und weiter zu ihrem nächsten Anruf. Wenn Sie möchten, Blind Transfer von Kunden zu einem VICIDIAL AGI-Skript für die Anmeldung oder einer IVR, dann setzen Sie AXFER der Zahl-to-Dial-Bereich zu ermöglichen. Sie können auch eine benutzerdefinierte Erweiterung nach dem AXFER, zum Beispiel, wenn Sie einen Anruf an einen besonderen IVR Sie auf eine Verlängerung 83900 gesetzt würden Sie AXFER83900 der Zahl in Verkehr gebracht werden-to-Dial-Feld. + +
+
+
+ Quick Transfer Button - Diese Option wird ein Quick Transfer-Taste, um den Agenten Bildschirm unter dem Transfer-Conf Schaltfläche -Hinzufügen- klicken, dass man blind Weiterleitung der Gespräche, damit werden die ausgewählten In-Group oder einer Nummer. IN_GROUP werden Anrufe an die Standard-Xfer für diese Kampagne, oder In-Group, wenn es einen eingehenden Anruf. Die Voreinstellungen werden die Aufrufe an die gewählte Voreinstellung. Der Standardwert ist N für Behinderte. + +
+
+
+ Vorab gefüllt Transfer Preset - Diese Option wird in der Anzahl zu Dial-Feld füllen Sie das Transfer Conference Rahmen des Bildschirms, wenn der Agent definiert. Der Standardwert ist N für Behinderte. + +
+
+
+ Timer-Aktion - Mit dieser Funktion können Sie die Aktionen nach einer bestimmten Zeit auslösen. D1 und D2 DIAL Optionen werden einen Aufruf der Transfer Conference Anzahl Presets starten und senden sie an die Agenten-Sitzung wird dies in der Regel für einfache IVR Validierung AGI-Anwendungen oder nur eine vorher aufgenommene Nachricht zu spielen verwendet. WebForm öffnet sich das Web-Formular-Adresse. MESSAGE_ONLY wird einfach Anzeige die Meldung, dass unten in das Feld ist. Niemand wird diese Funktion zu deaktivieren und ist der Standard -. + +
+
+
+ Timer-Aktion Message - Dies ist die Botschaft, die auf dem Bildschirm erscheint Agenten zum Zeitpunkt der Timer-Aktion ausgelöst wird. + +
+
+
+ Timer-Aktion Sekunden - Dies ist die Zeit nach dem Anruf des Kunden, dass die Timer-Aktion wird ausgelöst, verbunden. Der Standardwert ist -1, die auch inaktiv. + +
+
+
+ Zeitlich geplante Wiederholungsbesuche - Diese Wahl erlaubt einemMittel zur Einteilung einen Anruf als CALLBK und wählt die Daten unddie Zeit, an denen die Leitung reaktiviert wird. + +
+
+
+ Sekunden Nachbereitung - Anzahl der Sekunden, die ein Agent bis zum nächsten erhaltenen Anruf oder Wählen eines anderen Anrufs warten muss. Die Zeit beginnt, sobald ein Agent bei seinem Kunden aufgelegt hat - oder im Fall der alternativen Nummernwahl, wenn ein Agent das Telefonat beendet - Standard ist 0 Sekunden. Wenn die Zeit abgelaufen ist bevor der Agent den Anruf eingeordnet hat, wird der Agent dennoch nicht zum nächsten Anruf kommen, bevor er eine Einteilung gewählt hat. + +
+
+
+ Nachbereitungsnachricht - Dies ist eine Kampagnen-spezifische Nachricht, die bei gesetzten Sekunden Nachbereitung auf dem Nachbereitungsbildschirm angezeigt wird. + +
+
+
+ Interne DNC Liste des Gebrauch-- definiert dieses, ob dieseKampagne Leitungen gegen die interne DNC Liste filtern soll. Wenn esauf Y eingestellt wird, sucht der Zufuhrbehälter nach jederTelefonnummer in der DNC Liste, bevor er sie in den Zufuhrbehälterlegt. Wenn er in der DNC Liste ist, dann, das sie dieses führt Statuszu DNCL also ändert, kann sie nicht gewählt werden. Rückstellungist N. Die AREACODE Option ist ebenso wie die Y-Option, nur dass diese Filter auch einen ganzen Vorwahl in Nordamerika dazu verwendet werden gewählt, in diesem Fall mit dem 201XXXXXXX Eintrag in der Liste DNC würde alle Anrufe in den 201 Ortsvorwahl zu blockieren, wenn aktiviert. + +
+
+
+ Verwenden Sie Kampagne DNC List - Diese legt fest, ob dieser Kampagne ist es, Filter führt gegen eine DNC-Liste, die sich speziell auf die Kampagne nur. Wenn es auf Y, der Trichter wird für jede Telefonnummer in der Kampagne-spezifische DNC-Liste, bevor sie in den Trichter. Wenn es in der Kampagne-spezifische DNC Liste, dann wird sich ändern, die Status DNCC, so kann er nicht gewählt werden. Der Standardwert ist N. Die AREACODE Option ist ebenso wie die Y-Option, nur dass diese Filter auch einen ganzen Vorwahl in Nordamerika dazu verwendet werden gewählt, in diesem Fall mit dem 201XXXXXXX Eintrag in der Liste DNC würde alle Anrufe in den 201 Ortsvorwahl zu blockieren, wenn aktiviert. + +
+
+
+ Gewährte Inbound Gruppen - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. + +
+
+
+ Mittel-Pause kodiert aktives - läßt Mittel einen Pause Codevorwählen, wenn sie an die PAUSE Taste in vicidial.php klicken. PauseCodes sind pro Kampagne am unteren Bildschirmrand KampagneAnsichtdetail definierbar und sie werden in der vicidial_agent_logTabelle gespeichert. Rückstellung ist N. FORCE wird erzwungen, dass der Makler, um eine PAUSE-Code, wenn sie klicken Sie auf die PAUSE-Taste. + +
+
+
+ Sperren Sie ändern Kunde Daten - wenn Satz zu Y, nicht irgendwelchedes Kunde Datensatzes wenn Einteilungen eines Mittels der Anrufändert. Rückstellung ist N. + +
+
+
+ Deaktivieren Alter Customer Telefon - Bei der Einstellung Y, ändert nichts an den Kunden die Telefonnummer, wenn ein Agent Verfügungen den Anruf zu tätigen. Der Standardwert ist Y. Verwenden Sie die Verberge-Option zum vollständigen Entfernen der Kunde die Telefonnummer aus der Agenten-Anzeige. + +
+
+
+ Agent Anzeige Queue Count - Wenn Sie auf Y, wenn ein Kunde wartet auf einen Agenten, der Queue fordert Anzeige oben auf der Agenten-Bildschirm wird rot und zeigen die Anzahl der wartenden Anrufe. Der Standardwert ist Y. + +
+
+
+ Manuelle Vorwahlknopf-Liste Identifikation - das verwendet zu werdenRückstellung list_id, wenn ein Mittel placces ein manueller Anruf undeine neue Leitung Aufzeichnung im vicidial_list verursacht wird.Rückstellung ist 999. Dieses fangen kann nur Stellenenthalten auf. + +
+
+
+ Manual Dial Filter - Auf diese Weise können Sie zum Filtern der Anrufe, die Agenten sind im manuellen Modus wählen Sie für diese Kampagne durch eine Kombination der folgenden: DNC - die Kick Out, CAMPAIGNLISTEN - die Zahl muss innerhalb der Listen für die Kampagne KEINE - kein Filter auf manuelle Einwahl oder schnelle Einwahl Listen. + +
+
+
+ Agent Screen Zwischenablage kopieren - Diese Funktion ist derzeit nur in die Lage für den Internet Explorer. Diese Funktion ermöglicht es Ihnen, wählen Sie einen Bereich, der kopiert werden an den Computer Zwischenablage des Maklers Computer auf einen Anruf wird an einen Agenten. Häufig verwendet für diese sind, damit für die einfache Einfügen von Kontonummern oder Telefonnummern in Legacy-Anwendungen auf dem Client-Agent-Computer. + +
+
+
+ 3-Wege-Call Outbound CallerID - Diese legt fest, was gesendet wird, wie der Ausgang CallerID Reihe von 3-Wege-Anrufe, die von den Agenten, die Kampagne verwendet die eigene Kampagne CallerID, Kunde nutzt die Zahl der Kunden ist, dass aktive auf dem Bildschirm und Agenten AGENT_PHONE verwendet die CallerID für das Telefon, dass der Agent angemeldet ist, in. AGENT_CHOOSE ermöglicht es dem Agenten zu entscheiden, welche CallerID, die für 3-Wege-Anrufe aus einer Liste von Optionen. + +
+
+
+ 3-Wege-Call-Vorwahl - Diese legt fest, was als Vorwahl für 3-Wege-Anrufe, standardmäßig ist leer, so dass die Kampagne Vorwahl verwendet wird, so können Sie passthru Klingelton hören ist 88. + + 0) + { + ?> +
+
+
+ QC aktiv - Wenn Sie diesen Bereich auf Y-Agent ermöglicht die Quality Control Funktionen zur Verfügung stehen. Der Standardwert ist N. + +
+
+
+ QC-Status - Dieser Bereich ist, in dem Sie auswählen, welche Zustände führt sollte weg von der QC-System. Aktivieren Sie das Kontrollkästchen neben den Status, die Sie wollen, QC, zu überprüfen. + +
+
+
+ QC-Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine Kampagne. Die Tage der Woche sind nicht für diese Funktionen. + +
+
+
+ QC Get Record Launch- Auf diese Weise können Sie eine der folgenden Aktionen ausgelöst werden dürfte, auf einem QC Agenten erhalten einen neuen Rekord. + +
+
+
+ QC Show-Aufnahme - Auf diese Weise können für eine Aufnahme, die im Zusammenhang mit der QC-Datensatz werden in der QC-Agent-Bildschirm. + +
+
+
+ QC WebForm Adresse - Dies ist die Website-Adresse, dass ein QC Agenten können sich an, wenn Sie auf den Link WebForm in der QC-Bildschirm. + +
+
+
+ QC-Script - Das ist das Skript, das verwendet werden kann, indem QC Agenten in den SCRIPT Registerkarte in der QC-Bildschirm. + + +
+
+
+ Vtiger Suche Kategorie - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung definieren, wo die vtiger_search.php Seite wird nach der Telefonnummer, die eingegeben wurde. Es gibt 4 Möglichkeiten, die genutzt werden kann in diesem Bereich: Lead-Diese Option wird die Suche durch die vtiger führt nur, Konto-Diese Option wird durch die Suche und vtiger alle Kontakte und sub-Kontakte für die Telefonnummer, Vendor-Diese Option wird nur durch die Suche vtiger Lieferanten, ACCTID-Diese Option funktioniert nur für Konten, und es wird die vicidial vendor_lead_code Bereich und versuchen Sie es um die Suche nach der vtiger-Konto-ID. Wenn es erfolglos versucht, andere Methoden zu finden, die Sie ausgewählt haben. Mehrere Optionen können verwendet werden, für jede Suche, sondern auf großen Datenbanken ist dies nicht empfohlen. Der Standardwert ist BLEI. UNIFIED_CONTACT-Diese Option wird die Beta-Vtiger 5.1.0 Funktion für die Suche nach der Telefonnummer Nutzung und bringen eine Suchseite in vtiger. + +
+
+
+ Vtiger Suche Dead-Konten - Wenn Vtiger Integration ist in den Systemeinstellungen aktivieren, dann wird diese Einstellung festlegen, ob Gelöschte Konten durchsucht werden, wenn der Agent WEB FORM Mausklicks genügen, um in der vtiger-System sucht. BEHINDERTE-deleted führt nicht durchsucht werden, ASK-führt wird gelöscht hast und der vtiger-Suche Web-Seite wird der Agent fragen, ob sie zu machen, der vtiger-Konto aktiv wollen, RESURRECT-automatisch machen das gelöschte Konto wieder aktiv und würde die Inanspruchnahme Agenten auf das Konto Bildschirm unverzüglich nach Klick auf Netz-Form. Option ist standardmäßig deaktiviert. + +
+
+
+ Vtiger Erstellen Call Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob eine neue vtiger Aktivität wird für den Anruf, wenn der Agent geht an die vtiger_search Seite. Der Standardwert ist Y. Die DISPO Option wird eine Anrufe aufzeichnen der vtiger-Konto erstellen, ohne dass der Agent zu müssen, um der vtiger-Suchseite gehen über den Netz-Form. + +
+
+
+ Vtiger Erstellen Lead Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen und vtiger Suche Kategorie umfasst BLEI, dann wird diese Einstellung festlegen, ob eine neue vtiger führen wird erstellt, wenn der Agent geht an die vtiger_search Seite und wird nicht festgestellt, dass die Call-Telefonnummer. Der Standardwert ist Y. + +
+
+
+ Vtiger Login Screen - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob der Benutzer angemeldet ist in der vtiger-Schnittstelle automatisch, wenn sie zur Anmeldung VICIDIAL. Der Standardwert ist Y. Die NEW_WINDOW Option wird ein neues Fenster bei der Anmeldung an die VICIDIAL Anbieters Bildschirm zu öffnen. + +
+
+
+ Vtiger Status Call - Wenn Vtiger Integration ist in den Systemeinstellungen aktivieren, dann wird diese Einstellung fest, ob der Status der vtiger-Konto mit dem Status der VICIDIAL Aufruf aktualisiert wird, nachdem es dispositioned worden ist. Der Standardwert ist N. + +
+
+
+ CRM Popup Login - Wenn auf Y gesetzt, so wird das CRM-Popup-Adresse verwendet, um ein neues Fenster auf Anbieters anmelden, um diese Kampagne zu öffnen. Der Standardwert ist N. + +
+
+
+ CRM Popup-Adresse - Die Internet-Adresse eines CRM-Login-Seite, kann es Variablen, wie das Web-Formular Adresse bevölkert haben, mit der VAR in der Front und mit - A - user_custom_one - B - Variablen definieren. + +
+
+
+ Start Call URL - Diese Web-URL-Adresse wird nicht von den Agenten zu sehen, aber es ist, wann immer ein Anruf an einen Agenten gesendet werden, wenn es gefüllt wird. Verwendet die gleichen Variablen wie die Web-Formularfelder und Skripte. Diese URL kann nicht ein relativer Pfad. Die Start-URL funktioniert nicht für die manuelle Einwahl fordert. Der Standardwert ist leer. + +
+
+
+ Dispo Call URL - Diese Web-URL-Adresse wird nicht von den Agenten zu sehen, aber es ist, wann immer ein Anruf von einem Agenten dispositioned, wenn sie gefüllt wird. Verwendet die gleichen Variablen wie die Web-Formularfelder und Skripte. dispo und talk_time sind die Variablen, die Sie verwenden können, um den Agenten abrufen definierten Disposition für den Anruf und die tatsächliche Sprechzeit in Sekunden des Anrufs. Diese URL kann nicht ein relativer Pfad. Der Standardwert ist leer. + +
+
+
+ Alias-Gruppe erlaubt - Wenn Sie möchten, dass Ihre Agenten zu verwenden Gruppe Aliase dann müssen Sie diese Gruppe Y. Aliases werden mehr in der Admin-Bereich, sie zuzulassen, um verschiedene callerIDs Handbuch für ausgehende Anrufe dass sie Platz. Der Standardwert ist N. + +
+
+
+ Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases, dann ist dies die Gruppe Alias, die zuerst ausgewählten standardmäßig aktiviert, wenn der Agent sich für eine Gruppe Alias für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer. + +
+
+
+ Agent Profil Anrufe in der Warteschlange - Bei anderen aber none gesetzt ist, werden Vertreter der Lage sein, Informationen über Anrufe, die in der Warteschlange in ihrer Bevollmächtigten Bildschirm zu sehen sind. Wenn auf einen Zahlenwert setzen, die Anrufe angezeigt werden, um die Anzahl begrenzt werden ausgewählt. Der Standardwert ist KEINE. + +
+
+
+ Profil Anrufe in der Warteschlange Launch - Diese Einstellung, wenn auf AUTO eingestellt wird die Anrufe in der Warteschlange Frame angezeigt werden bei der Anmeldung durch den Agenten in der Agent dem Bildschirm haben. Standard ist -Manuell-. + +
+
+
+ Agent Grab Anrufe in der Warteschlange - Diese Option, wenn auf Y wird es den Agenten, um den Anruf, dass sie wählen wollen, aus der Anrufe in der Warteschlange anzeigen, indem Sie auf es, während der Pause. Bevollmächtigte werden nur in der Lage, eingehende Anrufe oder übertragen werden ersucht, nicht ausgehende Anrufe zu greifen. Der Standardwert ist N. + +
+
+
+ Call Agent Re-Queue Button - Diese Option, wenn auf Y fügt ein Re-Queue Customer-Taste, um den Agenten Bildschirm, so dass der Agent, um den Anruf zu einem AGENTDIRECT Warteschlange, die für den Agenten nur reserviert ist, zu senden. Der Standardwert ist N. + +
+
+
+ Agent Pause nach jedem Anruf - Diese Option, wenn auf Y wird der Agent Pause nach jedem Anruf automatisch. Der Standardwert ist N. + + + + + +



+ + VICIDIAL_LISTENTABELLE

+
+
+ Liste Identifikation - Dieses ist der numerische Name der Liste,es ist nicht editable nach Ausgangsunterordnung, muß nur Zahlenenthalten und muß zwischen 2 und 8 Buchstaben lang sein. Must be a number greater than 100. + +
+
+
+ Liste Name - This is the description of the list, it must be between 2 and 20 characters in length. + +
+
+
+ Liste Beschreibung - dieses ist das Protokoll auffangen fürdie Liste, es ist wahlweise freigestellt. + +
+
+
+ Liste Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Liste in jeder Hinsicht geändert wurden. + +
+
+
+ Liste Letzt-Anruf-Datum - dieses ist das letzte Mal, das wurdegewählt von dieser Liste führen. + +
+
+
+ Kampagne - This is the campaign that this list belongs to. A list can only be dialed on a single campaign at one time. + +
+
+
+ Aktiv - Dieses definiert, ob die Liste an oder nicht gewähltwerden soll. + +
+
+
+ Stellen Sie Führen-Benennen-Status für diese Liste - zurückstellt dieses alle Leitungen in dieser Liste zu N für das benannte\"not da letztes Zurückstellen \" zurück und bedeutet, daß jedemögliche Leitung jetzt benannt werden kann, wenn es der rechte Statusist, wie auf dem Kampagne Schirm definiert. + +
+
+
+ Reset Times - In diesem Feld können Sie zu setzen in Zeiten, durch einen Bindestrich getrennt, dass diese Liste automatisch zurückgesetzt werden durch das System. Die Zeiten im 24-Stunden-Format ohne Interpunktion werden, wäre zum Beispiel 0800-1700 die Liste 8 zurückgesetzt und 5pm jeden Tag. Der Standardwert ist leer. + +
+
+
+ Agent Script Override - Ist dieses Feld gesetzt ist, wird dies das Skript, dass der Agent sieht auf dem Bildschirm statt der Kampagne führen, wenn das Skript aus dieser Liste ist. Der Standardwert ist nicht gesetzt. + +
+
+
+ Kampagne CID Override - Ist dieses Feld gesetzt ist, wird diese die Kampagne CallerID, dass für Anrufe, die gestellt werden außer Kraft gesetzt ist, führt in dieser Liste. Der Standardwert ist nicht gesetzt. + +
+
+
+ Anrufbeantworter Nachricht Override - Ist dieses Feld gesetzt ist, wird diese Vorrang vor den Anrufbeantworter Message in der Kampagne für die Kunden in dieser Liste gesetzt. Der Standardwert ist nicht gesetzt. +
+
+
+ Drop Inbound-Fraktion Override - Ist dieses Feld gesetzt ist, in dieser Gruppe wird für ausgehende Anrufe, in dieser Liste verwendet werden, die Tropfen aus dem Outbound-Kampagne statt der Drop-in in der Kampagne Detailbild gesetzt. Der Standardwert ist nicht gesetzt. + +
+
+
+ Xfer-Conf-Nr Override - Diese fünf Felder ermöglichen Sie den Transfer Conference Anzahl Presets zu überschreiben, wenn das Blei aus dieser Liste. Der Standardwert ist leer. + + +
+
+
+ VICIDIAL DNC Liste - Diese Dont Call Liste enthält alle führen, die auf einen Status der DNC in das System. Durch die Listen - ADD Nummer DNC Seite können Sie manuell hinzufügen, Zahlen zu dieser Liste, so dass sie nicht durch Kampagnen, die die interne Liste DNC. Es besteht auch die Option, mit der Sie führt zu der Kampagne DNC-spezifische Listen für die Kampagnen, die sie. Wenn Sie die aktive DNC-Option auf -AREACODE dann können Sie auch die Vorwahl Wildcard-Einträge wie 201XXXXXXX, dass alle Anrufe auf die 201 Ortsvorwahl, wenn aktiviert-Block. + + + +



+ + VICIDIAL_INBOUND_GROUPSTABELLE

+
+
+ Gruppe Identifikation - Dieses ist der kurze Name der inboundGruppe, es ist nicht editable nach Ausgangsunterordnung, darf keineRäume enthalten und muß zwischen 2 und 20 Buchstaben lang sein. + +
+
+
+ Gruppe Name - Dieses ist die Beschreibung der Gruppe, muß eszwischen 2 und 30 Buchstaben lang sein. Kann nicht Schläge, plussesoder Räume einschließen . + +
+
+
+ Gruppe Farbe - Dieses ist die Farbe, die in der VICIDIAL KlientAPP anzeigt, wenn ein Anruf auf diese Gruppe hereinkommt. Es mußzwischen 2 und 7 Buchstaben lang sein. Wenn dieses eine HexagonfarbeDefinition ist, müssen Sie sich erinnern, sich a # am Anfang derZeichenkette zu setzen, oder VICIDIAL arbeitet nicht richtig. + +
+
+
+ Aktiv - Dieses stellt fest, ob diese Gruppe oben imVorwählerkasten wenn Maschinenbordbücher eines VICIDIAL Mittelsinnen zeigen. + +
+
+
+ Netz-Form - Dieses ist die kundenspezifische Adresse, die dasKlicken auf der NETZ-FORM-Taste in VICIDIAL Ihnen für zu den Anrufennimmt, die auf diese Gruppe hereinkommen. + +
+
+
+ Folgender Vertreter-Anruf - Dieses stellt fest, welches Mittel denfolgenden Anruf empfängt, der vorhanden ist: +
  - random: Aufträge durch den gelegentlichen Updatewert in dervicidial_live_agents Tabelle +
  - oldest_call_start: Aufträge bis zum dem letzten Mal ein Mittel wurden einem Anrufgeschickt. Resultate in den Mitteln, die insgesamt ungefähr gleicheZahl von Anrufen empfangen. +
  - oldest_call_finish: Aufträge bis zum dem letzten Mal ein Mittel beendeten einen Anruf.Das AKA Mittel, das am längsten wartet, empfängt ersten Anruf. +
  - overall_user_level: Aufträge durch das user_level des Mittels, wie inden vicidial_users definiert legen ein höheres user_level empfangenmehr Anrufe ver. +
  - inbound_group_rank: Aufträge durch den Rank gegeben zum Mittel fürdie spezifische inbound Gruppe. Stark zu am niedrigsten. +
  - fewest_calls: Aufträge durch die Zahl den Anrufen empfangen durch einMittel für diese spezifische inbound Gruppe. Wenige Anrufe zuerst. +
  - campaign_rank: Aufträge durch den Rank gegeben zum Mittel für dieKampagne. Stark zu am niedrigsten. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: Bestellungen durch die Zeit, die Agenten aktiv gewartet auf einen Anruf. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Fronter Anzeige - Dieses fangen feststellt auf, ob dasinbound VICIDIAL Mittel den fronter Namen - wenn es einen gibt -angezeigt im Status auffangen haben würde, wann der Anrufzum Mittel kommt. + +
+
+
+ Kampagne Index - Dieses Menü erlaubt Ihnen, den Index zu wählen,der auf dem Mittelschirm für diese Kampagne erscheint. Wählen SieKEINE vor, keinen Index für diese Kampagne zu zeigen. + +
+
+
+ Erhalten Sie Anruf-Produkteinführung - Dieses Menü erlaubt Ihnenzu wählen, ob Sie Automobil-ausstoßen die Netz-Form Seite in einemunterschiedlichen Fenster, Auto-switch zum INDEX-Vorsprung oder tunnichts wünschen, wenn ein Anruf zum Mittel für diese Kampagnegeschickt wird. + +
+
+
+ Xfer-Conf DTMF - Diese vier Felder können Sie zwei Arten von Transfer zum Konferenz-und DTMF-Presets. Wenn der Anruf oder die Kampagne geladen wird, wird das Skript vicidial.php zwei Tasten auf der Transfer-Konferenz Rahmen und auto show-bevölkern die Zahl-to-Dial und die Sende-DTMF-Felder, wenn gedrückt. Wenn Sie zulassen möchten Beratenden Transfers, ein Fronter, eine engere, haben die Agenten verwenden Sie die Checkbox BERATENDE, die nicht für Dritte nicht funktioniert-ViciDial beratende Anrufe. Für die nur noch der Agent auf die DFÜ mit Kunden-Taste. Dann kann der Agent nur LEAVE-3way-CALL und weiter zu ihrem nächsten Anruf. Wenn Sie möchten, Blind Transfer von Kunden zu einem VICIDIAL AGI-Skript für die Anmeldung oder einer IVR, dann setzen Sie AXFER der Zahl-to-Dial-Bereich zu ermöglichen. Sie können auch eine benutzerdefinierte Erweiterung nach dem AXFER, zum Beispiel, wenn Sie einen Anruf an einen besonderen IVR Sie auf eine Verlängerung 83900 gesetzt würden Sie AXFER83900 der Zahl in Verkehr gebracht werden-to-Dial-Feld. + +
+
+
+ Timer-Aktion - Mit dieser Funktion können Sie die Aktionen nach einer bestimmten Zeit auslösen. D1 und D2 DIAL Optionen werden einen Aufruf der Transfer Conference Anzahl Presets starten und senden sie an die Agenten-Sitzung wird dies in der Regel für einfache IVR Validierung AGI-Anwendungen oder nur eine vorher aufgenommene Nachricht zu spielen verwendet. WebForm öffnet sich das Web-Formular-Adresse. MESSAGE_ONLY wird einfach Anzeige die Meldung, dass unten in das Feld ist. Niemand wird diese Funktion zu deaktivieren und ist der Standard -. Diese Einstellung überschreibt die Kampagne Einstellungen. + +
+
+
+ Timer-Aktion Message - Dies ist die Botschaft, die auf dem Bildschirm erscheint Agenten zum Zeitpunkt der Timer-Aktion ausgelöst wird. + +
+
+
+ Timer-Aktion Sekunden - Dies ist die Zeit nach dem Anruf des Kunden, dass die Timer-Aktion wird ausgelöst, verbunden. Der Standardwert ist -1, die auch inaktiv. + +
+
+
+ Drop Call Sekunden - Die Anzahl der Sekunden eines Gesprächs bleibt in der Warteschlange, bevor sie als DROP. + +
+
+
+ Drop-Aktion - Mit diesem Menü können Sie wählen, was passiert, wenn er einen Anruf wartet seit mehr als das, was ist in der Drop-Call Sekunden ein. HANGUP einfach auflegen, das Gespräch, MESSAGE wird die Forderung der Drop-Erweiterung, die Sie definiert haben, unten, Voicemail wird der Anruf an die Voicemail-Box, die Sie definiert haben, und unter IN_GROUP wird der Aufruf an die Inbound-Gruppe, die weiter unten definiert ist. + +
+
+
+ Drop-Erweiterung - Wenn Drop-Aktion ist auf MESSAGE Dies ist der Plan wählen, dass sich die Aufforderung an, wenn sie erreicht Drop Call Sekunden. + +
+
+
+ Voicemail - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+

Drop-Transfer-Fraktion - Wenn Drop-Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie erreicht Drop Call Sekunden.
-
+
- Gewähren Sie Kein-Zufuhrbehälter-Führt LOGON - wenn Satz zu Y,Mittel zum LOGON zur Kampagne erlaubt, selbst wenn es keine Leitungengibt, die in den Zufuhrbehälter für diese Kampagne geladen werden.Diese Funktion wird nicht in den CLOSER-type Kampagnen benötigt.Rückstellung ist N. + Anruf-Zeit - dieses ist der für diese inbound Gruppe zu verwendenAnrufzeitentwurf. Halten Sie im Verstand, daß die Zeit auf derBedienerzeit basiert. Rückstellung ist 24hours.
-
+
- Liste Auftrag Mischung - läuft den Leitung Auftrag über undVorwahlknopf-Status fängt auf. Verwendet die Liste undStatusparameter für die vorgewählte Liste Mischung Eintragung imListe Mischung Unterseebootabschnitt anstatt. Rückstellung istUNTAUGLICH. + After Hours Aktion - Die Aktion durchführen, wenn sie nach Stunden wie in der Ausschreibung für diesen eingehenden Gruppe. HANGUP sofort hangup den Anruf, MESSASGE wird die Datei im After Hours Nachricht Filenam Bereich, AUSDEHNUNG wird die Aufforderung an die After Hours-Erweiterung in der dialplan und Voicemail wird der Anruf an die Voicemail-Box, die in den Bereich After Hours Voicemail , IN_GROUP wird die Aufforderung an die Inbound-Gruppe in der After Hours Transfer-Gruppe Wählen Sie Liste. Der Standardwert ist MESSAGE.
-
+
- Liste Mischung Identifikation - Identifikation der Liste Mischung.Muß von 2-20 Buchstaben lang ohne Räume oder andere spezielleInterpunktion sein. + Nach Stunden Anzeige Dateinamen - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn die Tätigkeit auf ANZEIGEeingestellt wird. Rückstellung ist VM-Auf Wiedersehen
-
+
- Liste Mischung Name - beschreibender Name der Liste Mischung. Muß von2-50 Buchstaben lang sein. + Nach Stunden Verlängerung - die dialplan Verlängerung, zum desAnrufs zu senden, wenn die Tätigkeit auf VERLÄNGERUNG eingestelltwird. Rückstellung ist 8300.
-
+
- Liste Mischung Detail - der Aufbau der Liste Mischung Eintragung.Enthält die Liste Identifikation, Mischung Auftrag, Prozentsätze undStatus, die diese Liste Mischung bilden. Die Prozentsätze müssen bis100 immer addieren, und alle Listen müssen aktiv und eingestellt aufdie Kampagne sein, damit die Auftrag Mischung Eintragung aktiviertwerden kann. + Nach Stunden Voicemail - der voicemail Kasten, zum des Anrufs zusenden, wenn die Tätigkeit auf VOICEMAIL eingestellt wird.
-
+
- Liste Mischung Methode - die Methode von alle Teile des Liste MischungDetails zusammen mischen. EVEN_MIX mischt Leitungen von jedem Teil,das mit den anderen Teilen, wie diese 1.2.3.1.2.3.1.2.3 durchgeschobenwird. IN_ORDER setzt die Leitungen in den Auftrag ein, in dem sie aufdem Liste Mischung Detailschirm 1.1.1.2.2.2.3.3.3 verzeichnet werden.GELEGENTLICHER Wille setzte sie in GELEGENTLICHEN Auftrag1.3.2.1.1.3.2.1.3 ein. Rückstellung ist IN_ORDER. + After Hours Transfer Group - , wenn After Hours Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie die in der Gruppe außerhalb der Aufforderung zur Einreichung von Zeitplanung für die in-group.
-
+
- Agent Screen Erweiterte Alt Dial - Diese Funktion erlaubt es Agenten für den Zugriff auf erweiterte stellvertretenden Telefonnummern führt über die Standard-Telefon-und Alt Address3 Felder, die verwendet werden können in VICIDIAL für Telefonnummern außerhalb der Haupt-Telefonnummer. Die Ausdehnung Telefonnummern gewählt werden können automatisch über die Auto-Alt-Dial-Funktion in VICIDIAL Kampagne Einstellungen, aber die Aktivierung dieser Agent Screen-Funktion wird auch für den Agenten, um diese Zahlen aus ihrer Bevollmächtigten Bildschirm sowie Informationen zu bearbeiten. + Nr. Bevollmächtigte Nr. Queueing - Ist dieses Feld auf Y oder NO_PAUSED dann keine Anrufe in die Warteschlange für diese in-Gruppe gesetzt werden, wenn es keine Agenten und die Forderungen angemeldet gehen an die Nr. Agent Nr. Queue Aktion sind. Die NO_PAUSED Option wird auch das Senden der Anrufer in der Warteschlange, wenn es nur angehalten Agenten in der in-group sind. Der Standardwert ist N.
-
+
- Umfrage Erste Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, sobald der Kunde nimmt das Telefon, wenn Sie eine Umfrage Kampagne. + Kein Agent Nr. Queue Aktion - Wenn kein Anwalt keine Warteschlange aktiviert ist, wird dieses Feld definiert, wo die anrufen, wenn es keine Mittel sind, gehen in die In-Group. Der Standardwert ist MESSAGE, spielt dieser die Sound-Dateien in das Action Feld Wert und legt dann auf.
-
+
- Umfrage DTMF Digits - Dieses Feld ist, in dem Sie die Zahlen, dass ein Kunde kann Presse als eine Option auf eine Umfrage-Kampagne. gültig von DTMF-Ziffern sind0123456789*# + Kein Agent Nr. Queue Preis-Aktion - Dies ist der Wert für die Aktion vor. Der Standardwert ist nbdy-avail-to-take-call|vm-goodbye.
-
+
- Umfrage nicht interessiert Digit - Dieses Feld ist, wo Sie den Kunden Ziffer gedrückt wird, dass sie nicht daran interessiert sind. + Willkommener Anzeige Dateiname - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn der Anruf hereinkommt. Wenn Satz zu---NONE --- dann wird keine Anzeige gespielt. Rückstellung ist---NONE ---. Dieses Feld wie bei den anderen Audio-Felder im In-Gruppen, mit Ausnahme der Agent Alert Dateiname, können mehrere Audio-Dateien abgespielt, wenn Sie eine Pipe getrennte Liste von Audio-Dateien in den Bereich.
-
+
- Umfrage nicht interessiert Status - Dieses Feld ist, wo Sie den Status, der für die nicht interessiert. Wenn DNC verwendet wird und die Kampagne für die Verwendung DNC dann die Telefonnummer wird automatisch auf die interne VICIDIAL DNC Liste.und möglicherweise die Kampagne-spezifische DNC Liste. + Jetzt Grußwort - Diese Einstellungen wählen Sie, wann Sie spielen die definierten Willkommensnachricht, immer spielen sie jedes Mal, nie nie spielen, IF_WAIT_ONLY nur spielen die Willkommen-Nachricht, wenn die Forderung nicht sofort zu einem Agenten , und YES_UNLESS_NODELAY immer spielen die Willkommen-Nachricht, es sei denn, die NO_DELAY Einstellung aktiviert ist. Der Standardwert ist IMMER.
-
+
- Umfrage Opt-in Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich bei der Erhebung, sich nicht-oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptOut. Nach dieser Audio-Datei gespielt wird, die Umfrage-Methode Maßnahmen ergriffen werden. + Musik auf Einfluß-Kontext - die Musik auf dem Einflußkontext, zum zuverwenden, wann der Kunde auf Einfluß gesetzt wird. Rückstellung istRückstellung.
-
+
- Umfrage nicht interessiert Audio Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich aus der Umfrage, nicht Opt-in ist oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptIn. Nach dieser Audio-Datei gespielt wird, wird der Anruf wird dann. + Auf Einfluß-Aufforderung Dateinamen - die Audioakte gelegen auf demin einem regelmäßigen Abstand gespielt zu werden Bediener, wenn derKunde auf Einfluß ist. Rückstellung ist generic_hold. DieseAudioakte MUSS 9 Sekunden oder kleiner in der Länge sein.
-
+
- Umfrage-Methode - Diese Option legt fest, was geschieht, auf eine Ausschreibung nach den Kunden hat sich in. AGENT_XFER wird der Anruf an den nächsten verfügbaren Agenten. VOICEMAIL wird der Anruf an die Voicemail-Box, die in den Bereich Voicemail. AUSDEHNUNG wird der Kunde auf die Ausdehnung der Definition in der Umfrage XFER Erweiterung Bereich. HANGUP hängt die Kunden. CAMPREC_60_WAV wird der Kunde auf eine Aufnahme, die mit ihrer Antwort, diese Aufnahme wird in einem Ordner mit dem Namen, wie sich die Kampagne innerhalb der Umfrage Kampagne Aufnahme Directory. + Auf Einfluß-Aufforderung Abstand - die Zeitspanne in den Sekunden, zuwarten, bevor an die haltenaufforderung gespielt wird. Rückstellungist 60. So deaktivieren Sie die On-Hold-Prompt, das Intervall auf 0.
-
+
- Umfrage Nr.-Response Action - Hier wird definiert, was passieren wird, wenn es keine Reaktion auf die Umfrage Frage. OptIn wird nur dann den Aufruf an die an der Umfrage-Methode, wenn der Kunde Pressen eine DTMF-Ziffern. OptOut wird der Kunde auf die Umfrage-Methode, auch wenn sie nicht drücken Sie eine DTMF-Ziffern. + Jetzt in den Line - Diese legt fest, ob die Anrufer hören, ihren Platz in der Zeile, wenn sie in der Warteschlange als auch, wenn sie hören, die announcemend. Der Standardwert ist N.
-
+
- Antworten Digit Karte - Das ist der Abschnitt, in dem Sie eine Beschreibung zu jedem DTMF-Ziffern Option, dass der Kunde auswählen kann. + Jetzt Geschätzte Hold Time - Diese legt fest, ob die Anrufer hören, halten Sie die geschätzte Zeit, bevor sie übertragen werden, zu einem Makler. Der Standardwert ist N. Wenn der Kunde gehalten wird, und hört diese geschätzte hold time Nachricht, die Mindestzeit, die abgespielt werden soll 15 Sekunden.
-
+
- Umfrage XFER Extension - , wenn die Methode der Erhebung AUSDEHNUNG ausgewählt ist dann der Kunde Aufruf richten Sie bitte an dieser dialplan Erweiterung. + Hold Time Option - Auf diese Weise können Sie die Weiterleitung von den Anruf halten, wenn die geschätzte Zeit über dem Betrag von Sekunden aus. Der Standardwert ist KEINE.
-
+
- Umfrage Kampagne Aufnahme der Dienststellen - , wenn die Methode der Erhebung CAMPREC_60_WAV ausgewählt ist dann der Kunde Reaktion wird erfasst und in ein Verzeichnis mit dem Namen nach der Kampagne innerhalb dieses Verzeichnisses. + Hold Time Option Sekunden - Wenn Hold Time-Option ist gesetzt, was aber keiner, das ist die Anzahl der Sekunden des geschätzten halten auslösen wird Zeit, dass die Hold-Zeit-Option. Der Standardwert ist 360 Sekunden. - +
+
+
+ Hold Time Option Extension - Wenn Hold Time-Option auf Verlängerung, ist dies die dialplan, dass sich die Aufforderung an, wenn der geschätzte halten länger als die Hold Time Option Sekunden. -
-
-
-Folgender Vertreter-Anruf - Dieses stellt fest, welches Mittel denfolgenden Anruf empfängt, der vorhanden ist: -
  - random: Aufträge durch den gelegentlichen Updatewert in dervicidial_live_agents Tabelle -
  - oldest_call_start: Aufträge bis zum dem letzten Mal ein Mittel wurden einem Anrufgeschickt. Resultate in den Mitteln, die insgesamt ungefähr gleicheZahl von Anrufen empfangen. -
  - oldest_call_finish: Aufträge bis zum dem letzten Mal ein Mittel beendeten einen Anruf.Das AKA Mittel, das am längsten wartet, empfängt ersten Anruf. -
  - overall_user_level: Aufträge durch das user_level des Mittels, wie inden vicidial_users definiert legen ein höheres user_level empfangenmehr Anrufe ver. -
  - campaign_rank: Aufträge durch den Rank gegeben zum Mittel für dieKampagne. Stark zu am niedrigsten. -
  - fewest_calls: Aufträge durch die Zahl den Anrufen empfangen durch einMittel für diese spezifische inbound Gruppe. Wenige Anrufe zuerst. +
+
+
+ Hold Time Option Voicemail - Wenn Hold Time auf Voicemail, das ist die Voice-Mailbox, dass der Anruf an, wenn der geschätzte halten länger als die Hold Time Option Sekunden. -
-
-
-Ortsgespräch-Zeit - Dieses ist, wohin Sie während welcherStunden Sie wählen möchten, wie bis zum der lokalen Zeit infestgestellt sind einstellten in, welchem Sie benennen. Dieses wirddurch Ortsnetzkennzahl gesteuert und wird auf Tageslicht-SparungenZeit eingestellt, wenn anwendbar. Allgemeine Richtlinien in den USAfür Geschäft zum Geschäft ist 9am bis 5pm und Geschäft zu denVerbraucheranrufen ist 9am bis 9pm. +
+
+
+ Hold Time Option Transfer In-Group - Wenn Hold Time-Option ist auf IN_GROUP, das ist die Gruppe, dass die eingehenden Anruf werden, wenn der geschätzte halten länger als die Hold Time Option Sekunden. -
-
-
-Vorwahlknopf-Präfix - Dieses fangen zuläßt einen Wegdes Wählens leicht ändern auf, zum durch eine andere Methode zuerlöschen, ohne ein Umladen im Sternchen zu tun. Rückstellung ist 9gegründet nach einem 91NXXNXXXXXX im dial plan - extensions.conf. +
+
+
+ Hold Time Option Rückruf Dateiname - Wenn Hold Time-Option ist auf CALLERID_CALLBACK, Dies ist der Dateiname ein, dass gespielt wird, bevor der Anruf wird protokolliert, als eine neue dazu führen, dass die ID-Liste unten, wenn der geschätzte halten länger als die Hold Time Option Sekunden. -
-
-
-Lassen Sie Telefon-Code aus - dieses fangen erlaubt Ihnen,das phone_code auszulassen auffangen beim Wählen innerhalbVICIDIAL auf. Zum Beispiel wenn Sie in Großbritannien vonGroßbritannien wählen, würden Sie 44 innen haben, wie Ihrphone_code für alle Leitungen auffangen, aber Sie gerade 10Stellen in Ihrem dial plan extensions.conf wählen möchten, um Anrufeanstelle von 44 dann 10 Stellen zu setzen. Rückstellung ist N. +
+
+
+ Hold Time Option Liste Rückruf-ID - Wenn Hold Time Option ist auf CALLERID_CALLBACK, Dies ist die Liste der Anruf-ID wird als neues führen, wenn der geschätzte halten länger als die Hold Time Option Sekunden. -
-
-
-Kampagne CallerID - Dieses fangen zuläßt das Senden einer kundenspezifischen callerid Zahl bei den outbound Anrufen auf. Dieses ist die Zahl, die oben auf dem callerid der Person darstellen würde, die, Sie anrufen. Die Rückstellung ist UNBEKANNT. Wenn Sie T1 benutzen, oder Eß, zum dieser Wahl heraus zu wählen nur vorhanden ist, wenn Sie PRIs verwenden - ISDN Tß oder Eß - die die kundenspezifische callerid Eigenschaft haben, die eingeschaltet wird, arbeitet dieses nicht mit Berauben-Spitze Service - RBS- Stromkreise. Dieses arbeitet auch durch das meiste VOIP - SIP oder IAX Stammversorger, die dynamisches outbound callerID erlauben. Das kundenspezifische callerID trifft nur auf die Anrufe zu, die direkt für die VICIDIAL Kampagne gesetzt werden, benennt jede mögliche 3. Partei, oder Übertragungen senden nicht das kundenspezifische callerID. ANMERKUNG: UNBEKANNT oder PRIVAT in auffangen manchmal sich setzen erbringt das Senden Ihrer Rückstellung callerID Zahl durch Ihre Fördermaschine mit den Anrufen. Sie können dieses prüfen wünschen und fangen 0000000000 in das callerid sich zu setzen anstatt auf, wenn Sie nicht Ihnen CallerID schicken möchten. +
+
+
+ Agent Alert Dateiname - Die Audio-Datei zu spielen, einen Agenten zu verkünden, dass ein Anruf ankommt, um den Agenten. Um diese Funktion nicht nutzen setzen Sie ihn auf X. Der Standardwert ist ding. -
-
-
-Kampagne Rec Verlängerung - Dieses fangen darf auf,damit eine kundenspezifische Aufnahmeverlängerung mit VICIDIALverwendet werden kann. Dieses erlaubt Ihnen, unterschiedlicheVerlängerungen zu verwenden, abhängend nach, wie lang Sie einemaximale Aufnahme erlauben möchten und welcher Art von Codec Sieinnen notieren möchten. Die Rückstellung exten ist 8309, die, wennSie folgen die SCRATCH_INSTALL Beispiele im WAV Format bis zu einerStunde lang notieren. Eine andere Wahl, die in den Beispieleneingeschlossen ist, ist 8310, die im G/M Format bis zu einer Stundelang notieren. +
+
+
+ Mittel-Alarm verzögert - die Zeitspanne in den Millisekunden, zuwarten, bevor er den Anruf zum Mittel schickt, nachdem er an dieMittel-Alarmverlängerung gespielt hat. Rückstellung ist 1000. -
-
-
-Kampagne Aufnahme - dieses Menü erlaubt Ihnen, zu wählen, welchesNiveau der Aufnahme auf dieser Kampagne erlaubt wird. NIE sperrtAufnahme auf dem Klienten. ONDEMAND ist die Rückstellung und erlaubtdem Vertreter zu notieren zu beginnen und, zu stoppen, wie gebraucht.ALLCALLS beginnt Aufnahme auf dem Klienten, wann immer ein Anruf zueinem Mittel geschickt wird. ALLFORCE beginnt Aufnahme auf demKlienten, wann immer ein Anruf zu einem Mittel geschickt wird, das demMittel keine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS undALLFORCE gibt es eine Wahl, zum der Aufnahme zu benutzen verzögert,um unten auf sehr kurze Aufnahmen und recude Anlagen-Belastung zuschneiden. +
+
+
+ Rückstellung Übergangsgruppe - dieses fangen ist dieRückstellung In-Gruppe auf, die automatisch vorgewählt wird, wenndas Mittel zum Bringenkonferenz Rahmen in ihrer Mittelschnittstellegeht. -
-
-
-Kampagne Rec Dateiname - Dieses fangen erlaubt Ihnen, denNamen der Aufnahme besonders anzufertigen auf, wenn Kampagne AufnahmeONDEMAND oder ALLCALLS ist. Die erlaubten Variablen sind KAMPAGNECUSTPHONE FULLDATE TINYDATE EPOCHE-MITTEL. Die Rückstellung istFULLDATE_MITTELund würde wie dieses 20051020-103108_6666 aussehen.Ein anderes Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, das wie diesesTESTCAMP_51020103108_3125551212 aussehen würde. 50 char max. +
+
+
+ In-Group-Aufnahme Override - Dieses Feld ermöglicht die zwingende der Kampagne rufen die Aufnahme-Einstellung. Diese Einstellung kann über die Aufnahme überschreiben vicidial_user Einstellung. Behinderte nicht überschreiben die Kampagne die Aufnahme-Einstellung. NIEMALS deaktiviert Aufnahme auf dem Client. OnDemand ist der Standard und ermöglicht es dem Agenten zu starten und stoppen Sie die Aufnahme wie gewünscht. ALLCALLS Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten. ALLFORCE Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten, die der Agent keine Option um die Aufnahme zu stoppen. -
-
-
-Das Notieren verzögert - für ALLCALLS und ALLFORCE nur Aufnahme.Dieser Einstellung Wille verzögert das Beginnen der Aufnahme beiallen Anrufen für die Zahl den Sekunden, die diesbezüglichspezifiziert werden, auffangen. Rückstellung ist 0. +
+
+
+ In-Group-Aufnahme Dateiname - Mit diesem Feld werden die Aufnahme der Kampagne Dateibenennungsschemata Regelung, es sei denn, es ist auf Keine eingestellt. Die Variablen sind erlaubt KAMPAGNE CUSTPHONE FullDate TINYDATE EPOCH AGENT. Der Standardwert ist FULLDATE_MITTELund würde so aussehen 20051020-103108_6666. Ein weiteres Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, die wie folgt aussehen TESTCAMP_51020103108_3125551212. 50 Zeichen max. Der Standardwert ist KEINE. -
-
-
-Kampagne Index - Dieses Menü erlaubt Ihnen, den Index zu wählen,der auf dem Mittelschirm für diese Kampagne erscheint. Wählen SieKEINE vor, keinen Index für diese Kampagne zu zeigen. + 0) + { + ?> +
+
+
+ QC aktiv - Wenn Sie diesen Bereich auf Y-Agent ermöglicht die Quality Control Funktionen zur Verfügung stehen. Der Standardwert ist N. -
-
-
-Erhalten Sie Anruf-Produkteinführung - Dieses Menü erlaubt Ihnenzu wählen, ob Sie Automobil-ausstoßen die Netz-Form Seite in einemunterschiedlichen Fenster, Auto-switch zum INDEX-Vorsprung oder tunnichts wünschen, wenn ein Anruf zum Mittel für diese Kampagnegeschickt wird. +
+
+
+ QC-Status - Dieser Bereich ist, in dem Sie auswählen, welche Zustände führt sollte weg von der QC-System. Aktivieren Sie das Kontrollkästchen neben den Status, die Sie wollen, QC, zu überprüfen. -
-
-
-Xfer-Conf DTMF - Diese vier fängt dürfen auf, damit Siezwei Sätze Übergangskonferenz und DTMF Voreinstellungen haben. Wennder Anruf oder die Kampagne geladen wird, stellt der vicidial.phpIndex dar, daß zwei Tasten auf dem Bringenkonferenz Rahmen und denZahl-zu-Vorwahlknopf und senden-dtmf Automobil-zu bevölkernauffängt, wenn sie betätigt werden. Wenn Sie beratende Übertragungen erlauben möchten, ein fronter zueinem genauerem, können Sie CXFER setzen, da eins derZahl-zu-Vorwahlknopf Voreinstellungen und des korrekten dial stringsgesendet wird, um eine lokale beratende Übertragung, dann dieMitteldose gerechtes LEAVE-3WAY-CALL und Bewegung an zu tun zu ihremfolgenden Anruf. Wenn Sie blinde Übertragungen der Kunden auf einenVICIDIAL AGI Index für die Protokollierung oder ein IVR erlaubenmöchten, legen Sie dann AXFER in den Zahl-zu-Vorwahlknopfauffangen. Sie können eine kundenspezifische Verlängerungnach dem AXFER oder dem CXFER auch spezifizieren, zum Beispiel wennSie interne beratende Übertragungen anstelle vom Einheimischen tunmöchten, würden Sie CXFER90009 in den Zahl-zu-Vorwahlknopfauffangen einsetzen. +
+
+
+ QC-Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine inbound_group. Die Tage der Woche sind nicht für diese Funktionen. -
-
-
-Zeitlich geplante Wiederholungsbesuche - Diese Wahl erlaubt einemMittel zur Einteilung einen Anruf als CALLBK und wählt die Daten unddie Zeit, an denen die Leitung reaktiviert wird. +
+
+
+ QC Get Record Launch- Auf diese Weise können Sie eine der folgenden Aktionen ausgelöst werden dürfte, auf einem QC Agenten erhalten einen neuen Rekord. -
-
-
-Sekunden Nachbereitung - Anzahl der Sekunden, die ein Agent bis zum nächsten erhaltenen Anruf oder Wählen eines anderen Anrufs warten muss. Die Zeit beginnt, sobald ein Agent bei seinem Kunden aufgelegt hat - oder im Fall der alternativen Nummernwahl, wenn ein Agent das Telefonat beendet - Standard ist 0 Sekunden. Wenn die Zeit abgelaufen ist bevor der Agent den Anruf eingeordnet hat, wird der Agent dennoch nicht zum nächsten Anruf kommen, bevor er eine Einteilung gewählt hat. +
+
+
+ QC Show-Aufnahme - Auf diese Weise können für eine Aufnahme, die im Zusammenhang mit der QC-Datensatz werden in der QC-Agent-Bildschirm. -
-
-
-Nachbereitungsnachricht - Dies ist eine Kampagnen-spezifische Nachricht, die bei gesetzten Sekunden Nachbereitung auf dem Nachbereitungsbildschirm angezeigt wird. +
+
+
+ QC WebForm Adresse - Dies ist die Website-Adresse, dass ein QC Agenten können sich an, wenn Sie auf den Link WebForm in der QC-Bildschirm. -
-
-
-Interne DNC Liste des Gebrauch-- definiert dieses, ob dieseKampagne Leitungen gegen die interne DNC Liste filtern soll. Wenn esauf Y eingestellt wird, sucht der Zufuhrbehälter nach jederTelefonnummer in der DNC Liste, bevor er sie in den Zufuhrbehälterlegt. Wenn er in der DNC Liste ist, dann, das sie dieses führt Statuszu DNCL also ändert, kann sie nicht gewählt werden. Rückstellungist N. - -
-
-
-Verwenden Sie Kampagne DNC List - Diese legt fest, ob dieser Kampagne ist es, Filter führt gegen eine DNC-Liste, die sich speziell auf die Kampagne nur. Wenn es auf Y, der Trichter wird für jede Telefonnummer in der Kampagne-spezifische DNC-Liste, bevor sie in den Trichter. Wenn es in der Kampagne-spezifische DNC Liste, dann wird sich ändern, die Status DNCC, so kann er nicht gewählt werden. Der Standardwert ist N. - -
-
-
-Gewährte Inbound Gruppen - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. - -
-
-
-Mittel-Pause kodiert aktives - läßt Mittel einen Pause Codevorwählen, wenn sie an die PAUSE Taste in vicidial.php klicken. PauseCodes sind pro Kampagne am unteren Bildschirmrand KampagneAnsichtdetail definierbar und sie werden in der vicidial_agent_logTabelle gespeichert. Rückstellung ist N. FORCE wird erzwungen, dass der Makler, um eine PAUSE-Code, wenn sie klicken Sie auf die PAUSE-Taste. - -
-
-
-Sperren Sie ändern Kunde Daten - wenn Satz zu Y, nicht irgendwelchedes Kunde Datensatzes wenn Einteilungen eines Mittels der Anrufändert. Rückstellung ist N. - -
-
-
-Deaktivieren Alter Customer Telefon - Bei der Einstellung Y, ändert nichts an den Kunden die Telefonnummer, wenn ein Agent Verfügungen den Anruf zu tätigen. Der Standardwert ist Y. - -
-
-
-Agent Anzeige Queue Count - Wenn Sie auf Y, wenn ein Kunde wartet auf einen Agenten, der Queue fordert Anzeige oben auf der Agenten-Bildschirm wird rot und zeigen die Anzahl der wartenden Anrufe. Der Standardwert ist Y. - -
-
-
-Manuelle Vorwahlknopf-Liste Identifikation - das verwendet zu werdenRückstellung list_id, wenn ein Mittel placces ein manueller Anruf undeine neue Leitung Aufzeichnung im vicidial_list verursacht wird.Rückstellung ist 999. Dieses fangen kann nur Stellenenthalten auf. - -
-
-
-Manual Dial Filter - Auf diese Weise können Sie zum Filtern der Anrufe, die Agenten sind im manuellen Modus wählen Sie für diese Kampagne durch eine Kombination der folgenden: DNC - die Kick Out, CAMPAIGNLISTEN - die Zahl muss innerhalb der Listen für die Kampagne KEINE - kein Filter auf manuelle Einwahl oder schnelle Einwahl Listen. - -
-
-
-Agent Screen Zwischenablage kopieren - Diese Funktion ist derzeit nur in die Lage für den Internet Explorer. Diese Funktion ermöglicht es Ihnen, wählen Sie einen Bereich, der kopiert werden an den Computer Zwischenablage des Maklers Computer auf einen Anruf wird an einen Agenten. Häufig verwendet für diese sind, damit für die einfache Einfügen von Kontonummern oder Telefonnummern in Legacy-Anwendungen auf dem Client-Agent-Computer. - -
-
-
-3-Wege-Call Outbound CallerID - Diese legt fest, was gesendet wird, wie der Ausgang CallerID Reihe von 3-Wege-Anrufe, die von den Agenten, die Kampagne verwendet die eigene Kampagne CallerID, Kunde nutzt die Zahl der Kunden ist, dass aktive auf dem Bildschirm und Agenten AGENT_PHONE verwendet die CallerID für das Telefon, dass der Agent angemeldet ist, in. AGENT_CHOOSE ermöglicht es dem Agenten zu entscheiden, welche CallerID, die für 3-Wege-Anrufe aus einer Liste von Optionen. - -
-
-
-3-Wege-Call-Vorwahl - Diese legt fest, was als Vorwahl für 3-Wege-Anrufe, standardmäßig ist leer, so dass die Kampagne Vorwahl verwendet wird, so können Sie passthru Klingelton hören ist 88. - - 0) - { +
+
+
+ QC-Script - Das ist das Skript, das verwendet werden kann, indem QC Agenten in den SCRIPT Registerkarte in der QC-Bildschirm. + -
-
-
- QC aktiv - Wenn Sie diesen Bereich auf Y-Agent ermöglicht die Quality Control Funktionen zur Verfügung stehen. Der Standardwert ist N.
-
+
- QC-Status - Dieser Bereich ist, in dem Sie auswählen, welche Zustände führt sollte weg von der QC-System. Aktivieren Sie das Kontrollkästchen neben den Status, die Sie wollen, QC, zu überprüfen. + Hold Recall Transfer In-Group - Wenn ein Kunde, um zu dieser Gruppe mehr als einmal, und das ist nicht auf None gesetzt wird, dann wird der Anruf automatisch an das In-Gruppe in diesem Bereich ausgewählt . Der Standardwert ist KEINE.
-
+
- QC-Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine Kampagne. Die Tage der Woche sind nicht für diese Funktionen. + Nr. Delay Call Route - Wenn Sie diesen auf Y werden alle Wartezeiten und akustische und versuchen, den Anruf zu einem Agenten. Nicht überschreiben Willkommensnachricht oder halten Prompt Einstellungen. Der Standardwert ist N.
-
+
- QC Get Record Launch- Auf diese Weise können Sie eine der folgenden Aktionen ausgelöst werden dürfte, auf einem QC Agenten erhalten einen neuen Rekord. + Statistiken Prozent der Anrufe innerhalb von X Sekunden - In diesem Feld können Sie die Anzahl der Sekunden, halten Sie die Echtzeit-Statistiken angezeigt wird zur Berechnung der Anteil der Anrufe, die beantwortet wurden beantwortet X Anzahl von Sekunden zu halten.
-
+
- QC Show-Aufnahme - Auf diese Weise können für eine Aufnahme, die im Zusammenhang mit der QC-Datensatz werden in der QC-Agent-Bildschirm. + Start Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank.
-
+
- QC WebForm Adresse - Dies ist die Website-Adresse, dass ein QC Agenten können sich an, wenn Sie auf den Link WebForm in der QC-Bildschirm. + Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank.
-
+
- QC-Script - Das ist das Skript, das verwendet werden kann, indem QC Agenten in den SCRIPT Registerkarte in der QC-Bildschirm. - - -
-
-
-Vtiger Suche Kategorie - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung definieren, wo die vtiger_search.php Seite wird nach der Telefonnummer, die eingegeben wurde. Es gibt 4 Möglichkeiten, die genutzt werden kann in diesem Bereich: Lead-Diese Option wird die Suche durch die vtiger führt nur, Konto-Diese Option wird durch die Suche und vtiger alle Kontakte und sub-Kontakte für die Telefonnummer, Vendor-Diese Option wird nur durch die Suche vtiger Lieferanten, ACCTID-Diese Option funktioniert nur für Konten, und es wird die vicidial vendor_lead_code Bereich und versuchen Sie es um die Suche nach der vtiger-Konto-ID. Wenn es erfolglos versucht, andere Methoden zu finden, die Sie ausgewählt haben. Mehrere Optionen können verwendet werden, für jede Suche, sondern auf großen Datenbanken ist dies nicht empfohlen. Der Standardwert ist BLEI. - -
-
-
-Vtiger Erstellen Call Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob eine neue vtiger Aktivität wird für den Anruf, wenn der Agent geht an die vtiger_search Seite. Der Standardwert ist Y. - -
-
-
-Vtiger Erstellen Lead Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen und vtiger Suche Kategorie umfasst BLEI, dann wird diese Einstellung festlegen, ob eine neue vtiger führen wird erstellt, wenn der Agent geht an die vtiger_search Seite und wird nicht festgestellt, dass die Call-Telefonnummer. Der Standardwert ist Y. - -
-
-
-Vtiger Login Screen - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob der Benutzer angemeldet ist in der vtiger-Schnittstelle automatisch, wenn sie zur Anmeldung VICIDIAL. Der Standardwert ist Y. - -
-
-
-Alias-Gruppe erlaubt - Wenn Sie möchten, dass Ihre Agenten zu verwenden Gruppe Aliase dann müssen Sie diese Gruppe Y. Aliases werden mehr in der Admin-Bereich, sie zuzulassen, um verschiedene callerIDs Handbuch für ausgehende Anrufe dass sie Platz. Der Standardwert ist N. - -
-
-
-Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases, dann ist dies die Gruppe Alias, die zuerst ausgewählten standardmäßig aktiviert, wenn der Agent sich für eine Gruppe Alias für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer. - - - - - -



- -VICIDIAL_LISTENTABELLE

-
-
-Liste Identifikation - Dieses ist der numerische Name der Liste,es ist nicht editable nach Ausgangsunterordnung, muß nur Zahlenenthalten und muß zwischen 2 und 8 Buchstaben lang sein. Must be a number greater than 100. - -
-
-
-Liste Name - This is the description of the list, it must be between 2 and 20 characters in length. - -
-
-
-Liste Beschreibung - dieses ist das Protokoll auffangen fürdie Liste, es ist wahlweise freigestellt. - -
-
-
-Liste Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Liste in jeder Hinsicht geändert wurden. - -
-
-
-Liste Letzt-Anruf-Datum - dieses ist das letzte Mal, das wurdegewählt von dieser Liste führen. - -
-
-
-Kampagne - This is the campaign that this list belongs to. A list can only be dialed on a single campaign at one time. - -
-
-
-Aktiv - Dieses definiert, ob die Liste an oder nicht gewähltwerden soll. - -
-
-
-Stellen Sie Führen-Benennen-Status für diese Liste - zurückstellt dieses alle Leitungen in dieser Liste zu N für das benannte\"not da letztes Zurückstellen \" zurück und bedeutet, daß jedemögliche Leitung jetzt benannt werden kann, wenn es der rechte Statusist, wie auf dem Kampagne Schirm definiert. - -
-
-
-VICIDIAL DNC Liste - Diese Dont Call Liste enthält alle führen, die auf einen Status der DNC in das System. Durch die Listen - ADD Nummer DNC Seite können Sie manuell hinzufügen, Zahlen zu dieser Liste, so dass sie nicht durch Kampagnen, die die interne Liste DNC. Es besteht auch die Option, mit der Sie führt zu der Kampagne DNC-spezifische Listen für die Kampagnen, die sie. - - - -



- -VICIDIAL_INBOUND_GROUPSTABELLE

-
-
-Gruppe Identifikation - Dieses ist der kurze Name der inboundGruppe, es ist nicht editable nach Ausgangsunterordnung, darf keineRäume enthalten und muß zwischen 2 und 20 Buchstaben lang sein. - -
-
-
-Gruppe Name - Dieses ist die Beschreibung der Gruppe, muß eszwischen 2 und 30 Buchstaben lang sein. Kann nicht Schläge, plussesoder Räume einschließen . - -
-
-
-Gruppe Farbe - Dieses ist die Farbe, die in der VICIDIAL KlientAPP anzeigt, wenn ein Anruf auf diese Gruppe hereinkommt. Es mußzwischen 2 und 7 Buchstaben lang sein. Wenn dieses eine HexagonfarbeDefinition ist, müssen Sie sich erinnern, sich a # am Anfang derZeichenkette zu setzen, oder VICIDIAL arbeitet nicht richtig. - -
-
-
-Aktiv - Dieses stellt fest, ob diese Gruppe oben imVorwählerkasten wenn Maschinenbordbücher eines VICIDIAL Mittelsinnen zeigen. - -
-
-
-Netz-Form - Dieses ist die kundenspezifische Adresse, die dasKlicken auf der NETZ-FORM-Taste in VICIDIAL Ihnen für zu den Anrufennimmt, die auf diese Gruppe hereinkommen. - -
-
-
-Folgender Vertreter-Anruf - Dieses stellt fest, welches Mittel denfolgenden Anruf empfängt, der vorhanden ist: -
  - random: Aufträge durch den gelegentlichen Updatewert in dervicidial_live_agents Tabelle -
  - oldest_call_start: Aufträge bis zum dem letzten Mal ein Mittel wurden einem Anrufgeschickt. Resultate in den Mitteln, die insgesamt ungefähr gleicheZahl von Anrufen empfangen. -
  - oldest_call_finish: Aufträge bis zum dem letzten Mal ein Mittel beendeten einen Anruf.Das AKA Mittel, das am längsten wartet, empfängt ersten Anruf. -
  - overall_user_level: Aufträge durch das user_level des Mittels, wie inden vicidial_users definiert legen ein höheres user_level empfangenmehr Anrufe ver. -
  - inbound_group_rank: Aufträge durch den Rank gegeben zum Mittel fürdie spezifische inbound Gruppe. Stark zu am niedrigsten. -
  - fewest_calls: Aufträge durch die Zahl den Anrufen empfangen durch einMittel für diese spezifische inbound Gruppe. Wenige Anrufe zuerst. -
  - campaign_rank: Aufträge durch den Rank gegeben zum Mittel für dieKampagne. Stark zu am niedrigsten. -
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. -
- -
-
-
-Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. - -
-
-Fronter Anzeige - Dieses fangen feststellt auf, ob dasinbound VICIDIAL Mittel den fronter Namen - wenn es einen gibt -angezeigt im Status auffangen haben würde, wann der Anrufzum Mittel kommt. - -
-
-
-Kampagne Index - Dieses Menü erlaubt Ihnen, den Index zu wählen,der auf dem Mittelschirm für diese Kampagne erscheint. Wählen SieKEINE vor, keinen Index für diese Kampagne zu zeigen. - -
-
-
-Erhalten Sie Anruf-Produkteinführung - Dieses Menü erlaubt Ihnenzu wählen, ob Sie Automobil-ausstoßen die Netz-Form Seite in einemunterschiedlichen Fenster, Auto-switch zum INDEX-Vorsprung oder tunnichts wünschen, wenn ein Anruf zum Mittel für diese Kampagnegeschickt wird. - -
-
-
-Xfer-Conf DTMF - Diese vier fängt dürfen auf, damit Siezwei Sätze Übergangskonferenz und DTMF Voreinstellungen haben. Wennder Anruf oder die Kampagne geladen wird, stellt der vicidial.phpIndex dar, daß zwei Tasten auf dem Bringenkonferenz Rahmen und denZahl-zu-Vorwahlknopf und senden-dtmf Automobil-zu bevölkernauffängt, wenn sie betätigt werden. Wenn Sie beratende Übertragungen erlauben möchten, ein fronter zueinem genauerem, können Sie CXFER setzen, da eins derZahl-zu-Vorwahlknopf Voreinstellungen und des korrekten dial stringsgesendet wird, um eine lokale beratende Übertragung, dann dieMitteldose gerechtes LEAVE-3WAY-CALL und Bewegung an zu tun zu ihremfolgenden Anruf. Wenn Sie blinde Übertragungen der Kunden auf einenVICIDIAL AGI Index für die Protokollierung oder ein IVR erlaubenmöchten, legen Sie dann AXFER in den Zahl-zu-Vorwahlknopfauffangen. Sie können eine kundenspezifische Verlängerungnach dem AXFER oder dem CXFER auch spezifizieren, zum Beispiel wennSie interne beratende Übertragungen anstelle vom Einheimischen tunmöchten, würden Sie CXFER90009 in den Zahl-zu-Vorwahlknopfauffangen einsetzen. - -
-
-
-Drop Call Sekunden - Die Anzahl der Sekunden eines Gesprächs bleibt in der Warteschlange, bevor sie als DROP. - -
-
-
-Drop-Aktion - Mit diesem Menü können Sie wählen, was passiert, wenn er einen Anruf wartet seit mehr als das, was ist in der Drop-Call Sekunden ein. HANGUP einfach auflegen, das Gespräch, MESSAGE wird die Forderung der Drop-Erweiterung, die Sie definiert haben, unten, Voicemail wird der Anruf an die Voicemail-Box, die Sie definiert haben, und unter IN_GROUP wird der Aufruf an die Inbound-Gruppe, die weiter unten definiert ist. - -
-
-
-Drop-Erweiterung - Wenn Drop-Aktion ist auf MESSAGE Dies ist der Plan wählen, dass sich die Aufforderung an, wenn sie erreicht Drop Call Sekunden. - -
-
-
-Voicemail - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. - -
-
-
-Drop-Transfer-Fraktion - Wenn Drop-Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie erreicht Drop Call Sekunden. - -
-
-
-Anruf-Zeit - dieses ist der für diese inbound Gruppe zu verwendenAnrufzeitentwurf. Halten Sie im Verstand, daß die Zeit auf derBedienerzeit basiert. Rückstellung ist 24hours. - -
-
-
-After Hours Aktion - Die Aktion durchführen, wenn sie nach Stunden wie in der Ausschreibung für diesen eingehenden Gruppe. HANGUP sofort hangup den Anruf, MESSASGE wird die Datei im After Hours Nachricht Filenam Bereich, AUSDEHNUNG wird die Aufforderung an die After Hours-Erweiterung in der dialplan und Voicemail wird der Anruf an die Voicemail-Box, die in den Bereich After Hours Voicemail , IN_GROUP wird die Aufforderung an die Inbound-Gruppe in der After Hours Transfer-Gruppe Wählen Sie Liste. Der Standardwert ist MESSAGE. - -
-
-
-Nach Stunden Anzeige Dateinamen - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn die Tätigkeit auf ANZEIGEeingestellt wird. Rückstellung ist VM-Auf Wiedersehen - -
-
-
-Nach Stunden Verlängerung - die dialplan Verlängerung, zum desAnrufs zu senden, wenn die Tätigkeit auf VERLÄNGERUNG eingestelltwird. Rückstellung ist 8300. - -
-
-
-Nach Stunden Voicemail - der voicemail Kasten, zum des Anrufs zusenden, wenn die Tätigkeit auf VOICEMAIL eingestellt wird. - -
-
-
-After Hours Transfer Group - , wenn After Hours Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie die in der Gruppe außerhalb der Aufforderung zur Einreichung von Zeitplanung für die in-group. - -
-
-
-Willkommener Anzeige Dateiname - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn der Anruf hereinkommt. Wenn Satz zu---NONE --- dann wird keine Anzeige gespielt. Rückstellung ist---NONE --- - -
-
-
-Jetzt Grußwort - Diese Einstellungen wählen Sie, wann Sie spielen die definierten Willkommensnachricht, immer spielen sie jedes Mal, nie nie spielen, IF_WAIT_ONLY nur spielen die Willkommen-Nachricht, wenn die Forderung nicht sofort zu einem Agenten , und YES_UNLESS_NODELAY immer spielen die Willkommen-Nachricht, es sei denn, die NO_DELAY Einstellung aktiviert ist. Der Standardwert ist IMMER. - -
-
-
-Musik auf Einfluß-Kontext - die Musik auf dem Einflußkontext, zum zuverwenden, wann der Kunde auf Einfluß gesetzt wird. Rückstellung istRückstellung. - -
-
-
-Auf Einfluß-Aufforderung Dateinamen - die Audioakte gelegen auf demin einem regelmäßigen Abstand gespielt zu werden Bediener, wenn derKunde auf Einfluß ist. Rückstellung ist generic_hold. DieseAudioakte MUSS 9 Sekunden oder kleiner in der Länge sein. - -
-
-
-Auf Einfluß-Aufforderung Abstand - die Zeitspanne in den Sekunden, zuwarten, bevor an die haltenaufforderung gespielt wird. Rückstellungist 60. So deaktivieren Sie die On-Hold-Prompt, das Intervall auf 0. - -
-
-
-Jetzt in den Line - Diese legt fest, ob die Anrufer hören, ihren Platz in der Zeile, wenn sie in der Warteschlange als auch, wenn sie hören, die announcemend. Der Standardwert ist N. - -
-
-
-Jetzt Geschätzte Hold Time - Diese legt fest, ob die Anrufer hören, halten Sie die geschätzte Zeit, bevor sie übertragen werden, zu einem Makler. Der Standardwert ist N. - -
-
-
-Hold Time Option - Auf diese Weise können Sie die Weiterleitung von den Anruf halten, wenn die geschätzte Zeit über dem Betrag von Sekunden aus. Der Standardwert ist KEINE. - -
-
-
-Hold Time Option Sekunden - Wenn Hold Time-Option ist gesetzt, was aber keiner, das ist die Anzahl der Sekunden des geschätzten halten auslösen wird Zeit, dass die Hold-Zeit-Option. Der Standardwert ist 360 Sekunden. - -
-
-
-Hold Time Option Extension - Wenn Hold Time-Option auf Verlängerung, ist dies die dialplan, dass sich die Aufforderung an, wenn der geschätzte halten länger als die Hold Time Option Sekunden. - -
-
-
-Hold Time Option Voicemail - Wenn Hold Time auf Voicemail, das ist die Voice-Mailbox, dass der Anruf an, wenn der geschätzte halten länger als die Hold Time Option Sekunden. - -
-
-
-Hold Time Option Transfer In-Group - Wenn Hold Time-Option ist auf IN_GROUP, das ist die Gruppe, dass die eingehenden Anruf werden, wenn der geschätzte halten länger als die Hold Time Option Sekunden. - -
-
-
-Hold Time Option Rückruf Dateiname - Wenn Hold Time-Option ist auf CALLERID_CALLBACK, Dies ist der Dateiname ein, dass gespielt wird, bevor der Anruf wird protokolliert, als eine neue dazu führen, dass die ID-Liste unten, wenn der geschätzte halten länger als die Hold Time Option Sekunden. - -
-
-
-Hold Time Option Liste Rückruf-ID - Wenn Hold Time Option ist auf CALLERID_CALLBACK, Dies ist die Liste der Anruf-ID wird als neues führen, wenn der geschätzte halten länger als die Hold Time Option Sekunden. - -
-
-
-Mittel-Alarmverlängerung - die, um zu verkünden, daß in denVertreterlernabschnitt zu senden Verlängerung, ein Anruf zum Mittelkommt. Diese Verlängerung sollte ein Playback einer Audioakte haben.Diese Funktion nicht zu verwenden stellte dieses auf X. Default ist Xein. - -
-
-
-Mittel-Alarm verzögert - die Zeitspanne in den Millisekunden, zuwarten, bevor er den Anruf zum Mittel schickt, nachdem er an dieMittel-Alarmverlängerung gespielt hat. Rückstellung ist 1000. - -
-
-
-Rückstellung Übergangsgruppe - dieses fangen ist dieRückstellung In-Gruppe auf, die automatisch vorgewählt wird, wenndas Mittel zum Bringenkonferenz Rahmen in ihrer Mittelschnittstellegeht. - -
-
-
-In-Group-Aufnahme Override - Dieses Feld ermöglicht die zwingende der Kampagne rufen die Aufnahme-Einstellung. Diese Einstellung kann über die Aufnahme überschreiben vicidial_user Einstellung. Behinderte nicht überschreiben die Kampagne die Aufnahme-Einstellung. NIEMALS deaktiviert Aufnahme auf dem Client. OnDemand ist der Standard und ermöglicht es dem Agenten zu starten und stoppen Sie die Aufnahme wie gewünscht. ALLCALLS Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten. ALLFORCE Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten, die der Agent keine Option um die Aufnahme zu stoppen. - -
-
-
-In-Group-Aufnahme Dateiname - Mit diesem Feld werden die Aufnahme der Kampagne Dateibenennungsschemata Regelung, es sei denn, es ist auf Keine eingestellt. Die Variablen sind erlaubt KAMPAGNE CUSTPHONE FullDate TINYDATE EPOCH AGENT. Der Standardwert ist FULLDATE_MITTELund würde so aussehen 20051020-103108_6666. Ein weiteres Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, die wie folgt aussehen TESTCAMP_51020103108_3125551212. 50 Zeichen max. Der Standardwert ist KEINE. - - 0) - { - ?> -
-
-
- QC aktiv - Wenn Sie diesen Bereich auf Y-Agent ermöglicht die Quality Control Funktionen zur Verfügung stehen. Der Standardwert ist N. - -
-
-
- QC-Status - Dieser Bereich ist, in dem Sie auswählen, welche Zustände führt sollte weg von der QC-System. Aktivieren Sie das Kontrollkästchen neben den Status, die Sie wollen, QC, zu überprüfen. - -
-
-
- QC-Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine inbound_group. Die Tage der Woche sind nicht für diese Funktionen. - -
-
-
- QC Get Record Launch- Auf diese Weise können Sie eine der folgenden Aktionen ausgelöst werden dürfte, auf einem QC Agenten erhalten einen neuen Rekord. - -
-
-
- QC Show-Aufnahme - Auf diese Weise können für eine Aufnahme, die im Zusammenhang mit der QC-Datensatz werden in der QC-Agent-Bildschirm. - -
-
-
- QC WebForm Adresse - Dies ist die Website-Adresse, dass ein QC Agenten können sich an, wenn Sie auf den Link WebForm in der QC-Bildschirm. - -
-
-
- QC-Script - Das ist das Skript, das verwendet werden kann, indem QC Agenten in den SCRIPT Registerkarte in der QC-Bildschirm. - - -
-
-
-Hold Recall Transfer In-Group - Wenn ein Kunde, um zu dieser Gruppe mehr als einmal, und das ist nicht auf None gesetzt wird, dann wird der Anruf automatisch an das In-Gruppe in diesem Bereich ausgewählt . Der Standardwert ist KEINE. - -
-
-
-Nr. Delay Call Route - Wenn Sie diesen auf Y werden alle Wartezeiten und akustische und versuchen, den Anruf zu einem Agenten. Nicht überschreiben Willkommensnachricht oder halten Prompt Einstellungen. Der Standardwert ist N. - -
-
-
-Statistiken Prozent der Anrufe innerhalb von X Sekunden - In diesem Feld können Sie die Anzahl der Sekunden, halten Sie die Echtzeit-Statistiken angezeigt wird zur Berechnung der Anteil der Anrufe, die beantwortet wurden beantwortet X Anzahl von Sekunden zu halten. - -
-
-
-Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases für die Kampagne, dass der Agent angemeldet ist, dann ist dies in der Gruppe ist, dass Alias zuerst ausgewählten standardmäßig auf einen Anruf, die von dieser Gruppe, wenn die Inbound-Agent dafür, Verwendung eines Alias-Fraktion für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer. - - - - - -



- -VICIDIAL_INBOUND_DIDSTABELLE

-
-
-
-DID-Erweiterung - Das ist die Zahl, die Erweiterung oder das getan hat, löst diesen Eintrag, und dass Sie Route innerhalb des Systems mit dieser Funktion. Es ist ein Standard DID vorbehalten, die Sie verwenden können, die nur das Wort-default-ohne Bindestriche, Allos, die Sie senden jede Aufforderung, die nicht mit einer anderen bestehenden Muster auf den Standard DID. - -
-
-
-DID-Beschreibung - Das ist die Beschreibung von der DID-Routing-Eintrag. - -
-
-
-DID-Aktive - Das ist der Bereich, in dem Sie die DID Eintrag aktiv oder nicht. Der Standardwert ist Y. - -
-
-
-DID-Route - Diese Art der Route, die Sie der DID zu verwenden. Verlängerung wird ersucht, um die Erweiterung in unten, Voicemail senden Anrufe direkt an die Voicemail-Box eingetragen unter, der Agent wird Gespräche auf eine VICIDIAL Agenten, wenn sie angemeldet sind, TEL wird der Anruf zu einem ausgewählten Eintrag Telefone unter, IN_GROUP wird Senden Sie Anrufe direkt auf die angegebene Inbound-Gruppe. Standard ist die Erweiterung. - -
-
-
-Extension - , wenn die Erweiterung ist als der DID-Route, dann ist dies die Erweiterung dialplan, dass Anrufe werden an. Der Standardwert ist 9998811112, no-Service. - -
-
-
-Erweiterung Kontext - , wenn die Erweiterung ist als der DID-Route, dann ist dies die dialplan Zusammenhang, dass Anrufe werden an. Die Voreinstellung ist Standard. - -
-
-
-Voicemail-Box - Wenn Voicemail ist als der DID-Route, dann ist dies die Voicemail-Box, die Anrufe werden an. Der Standardwert ist leer. - -
-
-
-Telefon Extension - Wenn PHONE ist als der DID-Route, dann ist das Telefon-Erweiterung, wird der Aufruf an. - -
-
-
-Server-IP-Telefon - Wenn PHONE ist als der DID-Route, dann ist dies der Server-IP-Telefon für die Erweiterung, die Anrufe werden an. - -
-
-
-User Agent - Wenn agent ist als der DID-Route, dann ist dies die VICIDIAL Agent, dass Anrufe werden an. - -
-
-
-User-Aktion nicht verfügbar - Wenn agent ist als der DID-Route, und der Benutzer ist nicht angemeldet oder verfügbar sind, dann ist dies der Weg, den die Anrufe wird. - -
-
-
-User-Einstellungen Route In-Group - Wenn agent ist als der DID-Route, dann ist dies die In-Group, die verwendet werden für die Queue-Einstellungen wie der Anrufer wartet, die an den Agenten. Der Standardwert ist AGENTDIRECT. - -
-
-
-In-Group-ID - Wenn IN_GROUP ist als der DID-Route, dann ist dies die In-Group, die Anrufe werden an. - -
-
-
-In-Group Call Griff Methode - Wenn IN_GROUP ist als der DID-Route, dann ist dies die Forderung Umgang Methode für diese Anrufe. CID wird eine neue Aufnahme führen mit jedem Anruf über die CallerID wie die Telefonnummer, CIDLOOKUP Lookup wird versuchen, die Telefonnummer von der CallerID im gesamten System, CIDLOOKUPRL wird attampt und auf die Telefonnummer von der CallerID nur in einem bestimmten Verzeichnis , CIDLOOKUPRC wird attampt und auf die Telefonnummer von der CallerID in allen von den Listen, die zu den angegebenen Kampagne, näher ist für VICIDIAL engere fordert ANI wird eine neue Aufnahme führen mit jedem Anruf mit der ANI wie die Telefonnummer, ANILOOKUP Lookup wird versuchen, die Telefonnummer von der ANI in das gesamte System, ANILOOKUPRL wird attampt und auf die Telefonnummer von der ANI nur in einem bestimmten Verzeichnis, XDIGITID wird der Anrufer für einen X-stelligen Code vor dem Aufruf wird in Betrieb genommen werden der Warteschlange. Der Standardwert ist CID. - -
-
-
-In-Group-Agent Suche Methode - Wenn IN_GROUP ist als der DID-Route, dann ist dies der Agent Suche Methode für die Inbound-Gruppe, LO ist Load-Balanced-Overflow und versuchen um den Ruf zu senden einem Agenten auf dem lokalen Server, bevor Sie versuchen, senden Sie sie an einen Agenten auf einem anderen Server, Load-LB ist ausgewogen und wird versuchen, um den Ruf zu senden, um zur nächsten Agent-Server, egal was sie sind, so ist nur Server-und nur versuchen, die Forderungen an Agenten auf dem Server, dass der Anruf kam auf. Der Standardwert ist LB. - -
-
-
-In-Group-ID-Liste - Wenn IN_GROUP ist als der DID-Route, dann ist dies die ID-Liste führt, dass kann man suchen, durch und führt werden, wenn notwendig, in. - -
-
-
-In-Group-ID-Kampagne - Wenn IN_GROUP ist als der DID-Route, dann ist dies die Kampagnen-ID, was kann man suchen, wenn das Gespräch mit Methode ist CIDLOOKUPRC. - -
-
-
-In-Group Telefon Code - Wenn IN_GROUP ist als der DID-Route, dann ist das Telefon-Code verwendet, wenn eine neue Führung wird erstellt. - - - - -



- -VICIDIAL_REMOTE_AGENTSTABELLE

-
-
-Benutzernummer Anfang - Dieses ist die beginnende Benutzernummer,die verwendet wird, wenn die Remotemitteleintragungen in das Systemeingesetzt werden. Wenn die Zeilenzahl in hohem Grade als 1eingestellt wird, wird diese Zahl durch eine erhöht, bis jede Linieeine Eintragung hat. Stellen Sie, ein neues VICIDIAL Benutzerkonto miteinem Benutzerniveau von 4 zu verursachen oder groß sicher, wenn Siesie in der LageSEIN wünschen, die vdremote.php Seite fürRemotenetzzugang dieses Kontos zu benutzen. - -
-
-
-Zeilenzahl - Dieses definiert, wievieles Remotemittel Eintragungendas System verursacht, und stellt fest, wieviele Linien es denkt, daßes zur Zahl unter sicher senden kann. - -
-
-
-Bediener IP - Eine Remotemitteleintragung ist für einenspezifischen Bediener, ist hier nur gut, wo Sie vorwählen, dasBediener Sie wünschen. - -
-
-
-Externe Verlängerung - Dieses ist die Zahl, daß Sie die Anrufewünschen, die zu nachgeschickt werden. Überprüfen Sie, ob es einevolle dial plan Zahl ist und daß, wenn Sie 9 am Anfang benötigen, Sieihn innen hier setzen. Prüfen Sie, indem Sie diese Nummer von einemTelefon auf dem System wählen. - -
-
-
-Status - Ist hier, wo Sie das Remotemittel an und abstellen.Sobald das Mittel aktiv ist, nimmt das System an, daß es Anrufe zuihm schicken kann. Es kann bis 30 Sekunden dauern, sobald Sie denStatus zu unaktiviertem ändern, um Anrufe, zu empfangen zu stoppen. - -
-
-
-Kampagne - Ist hier, wo Sie die Kampagne vorwählen, daß dieseRemotemittel in geloggt werden. Inbound Notwendigkeiten, die GENAUEREKampagne zu verwenden und die inbound Kampagnen unter dervorzuwählen, die Sie Anrufe von empfangen möchten. - -
-
-
-Inbound Gruppen - Ist hier, wo Sie die inbound Gruppen vorwählen,die Sie Anrufe von empfangen möchten, wenn Sie die GENAUERE Kampagnevorgewählt haben. - - -



- -VICIDIAL_CAMPAIGN_LISTEN

-
-
-Die Listen innerhalb dieser Kampagne werden hier verzeichnet, ob siewerden bezeichnet durch das Y aktiv sind, oder N und Sie zum ListeSchirm gehen können, indem sie auf der Liste Identifikation in derersten Spalte klicken. - - -



- -VICIDIAL_CAMPAIGN_STATUSESTABELLE

-
-
-Durch den Gebrauch von kundenspezifischen Kampagne Status, können SieStatus haben, die nur für eine spezifische Kampagne bestehen. DerStatus muß 1-8 Buchstaben lang sein, muß die Beschreibung 2-30Buchstaben lang sein und auswählbar definiert, ob es oben in VICIDIALals Einteilung zeigt. Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend. Die Kategorie Wahl erlaubt Ihnen, einige Status in ein catogy zugruppieren, das für statistische Analyse verwendet werden kann. - - - - 0) - { - ?> -



- - VICIDIAL_CAMPAIGN_HOTKEYSTABELLE

-
-
- Durch den Gebrauch von kundenspezifischen Kampagne hot keys, benenntVertreter, die verwenden, der vicidial Netz-Klient Dose Hängezustandund Einteilung, gerade indem sie einen einzelnen Schlüssel auf ihrerTastatur betätigen. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. + Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases für die Kampagne, dass der Agent angemeldet ist, dann ist dies in der Gruppe ist, dass Alias zuerst ausgewählten standardmäßig auf einen Anruf, die von dieser Gruppe, wenn die Inbound-Agent dafür, Verwendung eines Alias-Fraktion für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer. @@ -3901,10 +4442,191 @@ if ($SSoutbound_autodial_active > 0)



- VICIDIAL_LEAD_RECYCLETABELLE

-
+ VICIDIAL_INBOUND_DIDSTABELLE


- Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. +
+
+ DID-Erweiterung - Das ist die Zahl, die Erweiterung oder das getan hat, löst diesen Eintrag, und dass Sie Route innerhalb des Systems mit dieser Funktion. Es ist ein Standard DID vorbehalten, die Sie verwenden können, die nur das Wort-default-ohne Bindestriche, Allos, die Sie senden jede Aufforderung, die nicht mit einer anderen bestehenden Muster auf den Standard DID. + +
+
+
+ DID-Beschreibung - Das ist die Beschreibung von der DID-Routing-Eintrag. + +
+
+
+ DID-Aktive - Das ist der Bereich, in dem Sie die DID Eintrag aktiv oder nicht. Der Standardwert ist Y. + +
+
+
+ DID-Route - Diese Art der Route, die Sie der DID zu verwenden. Verlängerung wird ersucht, um die Erweiterung in unten, Voicemail senden Anrufe direkt an die Voicemail-Box eingetragen unter, der Agent wird Gespräche auf eine VICIDIAL Agenten, wenn sie angemeldet sind, TEL wird der Anruf zu einem ausgewählten Eintrag Telefone unter, IN_GROUP wird Senden Sie Anrufe direkt auf die angegebene Inbound-Gruppe. Standard ist die Erweiterung. CALLMENU wird der Anruf an die definierten Ruf-Menü. + +
+
+
+ Extension - , wenn die Erweiterung ist als der DID-Route, dann ist dies die Erweiterung dialplan, dass Anrufe werden an. Der Standardwert ist 9998811112, no-Service. + +
+
+
+ Erweiterung Kontext - , wenn die Erweiterung ist als der DID-Route, dann ist dies die dialplan Zusammenhang, dass Anrufe werden an. Die Voreinstellung ist Standard. + +
+
+
+ Voicemail-Box - Wenn Voicemail ist als der DID-Route, dann ist dies die Voicemail-Box, die Anrufe werden an. Der Standardwert ist leer. + +
+
+
+ Telefon Extension - Wenn PHONE ist als der DID-Route, dann ist das Telefon-Erweiterung, wird der Aufruf an. + +
+
+
+ Server-IP-Telefon - Wenn PHONE ist als der DID-Route, dann ist dies der Server-IP-Telefon für die Erweiterung, die Anrufe werden an. + +
+
+
+ Call-Menü - Wenn CALLMENU ist wie die DID-Route ausgewählt, dann ist dies der Ruf-Menü, dass Anrufe gesendet werden, werden. + +
+
+
+ User Agent - Wenn agent ist als der DID-Route, dann ist dies die VICIDIAL Agent, dass Anrufe werden an. + +
+
+
+ User-Aktion nicht verfügbar - Wenn agent ist als der DID-Route, und der Benutzer ist nicht angemeldet oder verfügbar sind, dann ist dies der Weg, den die Anrufe wird. + +
+
+
+ User-Einstellungen Route In-Group - Wenn agent ist als der DID-Route, dann ist dies die In-Group, die verwendet werden für die Queue-Einstellungen wie der Anrufer wartet, die an den Agenten. Der Standardwert ist AGENTDIRECT. + +
+
+
+ In-Group-ID - Wenn IN_GROUP ist als der DID-Route, dann ist dies die In-Group, die Anrufe werden an. + +
+
+
+ In-Group Call Handle Method - Wenn IN_GROUP ist wie die DID-Route ausgewählt, dann ist dies die Anrufannahme-Methode für diese Anrufe verwendet. CID wird eine neue Lead-Datensatz mit jedem Anruf mit der CallerID wie die Telefonnummer hinzufügen, wird CIDLOOKUP Versuch, die Telefonnummer, unter der CallerID im gesamten System-Lookup wird CIDLOOKUPRL Versuch, die Telefonnummer, unter der CallerID nur in einer speziellen Liste Lookup , wird CIDLOOKUPRC Versuch, die Telefonnummer, unter der CallerID in allen Listen, die auf die angegebene Kampagne gehören Lookup, CLOSER ist für VICIDIAL Closer fordert angegeben, wird eine neue ANI führen Datensatz hinzufügen bei jedem Anruf mit der ANI wie die Telefonnummer, ANILOOKUP wird versuchen, die Telefonnummer, unter der ANI im gesamten System-Lookup wird ANILOOKUPRL Versuch, die Telefonnummer, unter der ANI nur in einer speziellen Liste Lookup wird XDIGITID der Anrufer von einem X-stelligen Code prompt vor dem Aufruf wird gestellt werden, in der Warteschlange, wird der Anrufer VIDPROMPT prompt für ihre ID-Nummer und eine neue Lead-Satz mit dem CallerID wie die Telefonnummer und die ID als die Hersteller-ID zu erstellen, wird VIDPROMPTLOOKUP Versuch, die ID in das gesamte System-Lookup wird VIDPROMPTLOOKUPRL Versuch, Lookup die Hersteller-ID von der ID nur in einer speziellen Liste, wird VIDPROMPTLOOKUPRC Versuch, den Anbieter von der Lookup-ID ID in allen Listen, die auf die angegebene Kampagne gehören. Der Standardwert ist CID. + +
+
+
+ In-Group-Agent Suche Methode - Wenn IN_GROUP ist als der DID-Route, dann ist dies der Agent Suche Methode für die Inbound-Gruppe, LO ist Load-Balanced-Overflow und versuchen um den Ruf zu senden einem Agenten auf dem lokalen Server, bevor Sie versuchen, senden Sie sie an einen Agenten auf einem anderen Server, Load-LB ist ausgewogen und wird versuchen, um den Ruf zu senden, um zur nächsten Agent-Server, egal was sie sind, so ist nur Server-und nur versuchen, die Forderungen an Agenten auf dem Server, dass der Anruf kam auf. Der Standardwert ist LB. + +
+
+
+ In-Group-ID-Liste - Wenn IN_GROUP ist als der DID-Route, dann ist dies die ID-Liste führt, dass kann man suchen, durch und führt werden, wenn notwendig, in. + +
+
+
+ In-Group-ID-Kampagne - Wenn IN_GROUP ist als der DID-Route, dann ist dies die Kampagnen-ID, was kann man suchen, wenn das Gespräch mit Methode ist CIDLOOKUPRC. + +
+
+
+ In-Group Telefon Code - Wenn IN_GROUP ist als der DID-Route, dann ist das Telefon-Code verwendet, wenn eine neue Führung wird erstellt. + + + + +



+ + VICIDIAL_CALL MENUTABELLE

+
+
+ Menü-ID - Dies ist die ID für diesen Schritt der Aufforderung Menü. Dies wird auch angezeigt, wie der Kontext, die in der dialplan für diesen Aufruf ist im Menü. + +
+
+
+ Menu Name - Dieses Feld ist die Bezeichnung für den Aufruf im Menü. + +
+
+
+ Prompt Menu - Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu Beginn dieses Menüs spielen. Sie können mehrere propmts in dieses Feld eingeben und den anderen Bereichen, prompt, indem Sie diese mit einem Pipe-Zeichen. + +
+
+
+ Menü-Timeout - Dieses Feld ist, wo Sie den Timeout in Sekunden einstellen, dass das Menü wird für den Anrufer in einer DTMF-Wahl geben, warten. Festlegen dieses Feld auf Null 0 bedeutet, dass es keine Wartezeit nach der Eingabeaufforderung geben wird gespielt. + +
+
+
+ Menü-Timeout Prompt - Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu spielen, wenn das Zeitlimit erreicht ist. Default ist keiner, der nicht bei Audio-Timeout spielen. + +
+
+
+ Prompt Menu Ungültige - Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu spielen, wenn der Anrufer eine ungültige Option ausgewählt hat. Default ist keiner, der keine Audio-Wiedergabe auf ungültige. + +
+
+
+ Menü wiederholen - Dieses Feld ist, wo Sie die Anzahl der Male, dass das Menü nach dem ersten Mal, wenn keine gültige Wahl ist vom Anrufer aus spielen wird, zu definieren. Der Standardwert ist 1, um das Menü einmal wiederholen. + +
+
+
+ Menü Time Check - Dieses Feld ist, wo Sie wählen, ob der Ruf-Menü Zugriff auf die spezifischen Stunden in der ausgewählten Call Time eingerichtet eingeschränkt werden kann. Wenn der Call Time leer ist, wird diese Einstellung ignoriert. Der Standardwert ist 0 für Behinderte. + +
+
+
+ Anrufzeit ID - Dies ist die Call Time-ID, die verwendet werden, zu berufen, mal zu beschränken, wenn die Menü-Time Check Option aktiviert ist. + +
+
+
+ Track fordert in Real-Time-Report - Dieses Feld ist, wo Sie wählen, ob Sie den Anruf wollen, in das Echtzeit-Bildschirm als einen eingehenden IVR Call verfolgt werden können. Der Standardwert ist 1 für aktive. + +
+
+
+ Tracking-Fraktion - Dies ist die ID, die Sie für Anrufe an dieser Aufforderung Menü Länge, wenn man die IVR-Bericht verwenden können. Die Liste enthält CALLMENU als Standard-sowie alle In-Gruppen. + +
+
+
+ Optionswert - Dieses Feld ist, wo Sie den Menüpunkt definieren, Wahlmöglichkeiten: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Die besondere TIMECHECK Option kann nur verwendet werden, wenn Sie Menü Time Check aktiviert und es gibt einen Call Time definiert für die Menü -. Um eine Option zu löschen, einfach die Route zu entfernen und die Option wird gelöscht, wenn Sie auf den Submit-Button. + +
+
+
+ Option Beschreibung - Dieses Feld ist, wo Sie die Möglichkeit, beschreiben kann, wird diese Beschreibung in den dialplan als Kommentar über die Möglichkeit genommen werden. + +
+
+
+ Option Route - Dieses Menü enthält die Optionen für die, wo der Anruf gesendet wird, falls diese Option ausgewählt ist: CALLMENU, Eigen-, DID, HANGUP, ERWEITERUNG, TEL. Für CALLMENU, sollte die Route Wert auf die Menü-ID des Call-Menü sein, dass Sie den Anruf an. Für die Eigen-, In-Gruppe, die Sie wollen, dass die Aufforderung an die Bedürfnisse geschickt werden, um ausgewählt werden, sowie die anderen 5 Optionen, die Notwendigkeit, ordnungsgemäß Route einen Anruf an eine Inbound-Gruppe eingestellt werden. Für DID, muss der Wert für die Route der DID-Muster, das Sie wollen, um den Anruf zu senden. Für HANGUP kann die Route Wert ist der Name einer Audio-Datei vor dem Aufhängen der Aufforderung zu spielen. DIE ERWEITERUNG, muss der Wert für die Route der dialplan Erweiterung, die Sie möchten den Anruf zu senden, und die Route Preis-Kontext ist der Kontext, dass die Verlängerung in der Lage ist, wenn leer gelassen Rahmen wird standardmäßig auf Standard. Für Telefon, muss die Route Preis zu sein Telefon anmelden Wert für die Handys Eintrag, den Sie möchten den Anruf zu senden. Für Voicemail, muss die Route Wert für die Voice-Mailbox-Nummer, die nicht verfügbar mesage wird abgespielt. Für AGI, muss die Route Wert für die AGI-Skript und alle Werte, die an sie übergeben werden. + +
+
+
+ Option Route Preis - Dieses Feld ist, wo Sie den Wert, der festlegt, wo in der gewählten Route Option, dass der Anruf eingeben, um die Anweisung bekommen,. + +
+
+
+ Option Route Preis Kontext - Dieses Feld ist optional und nur für die Extension Option Routen eingesetzt. + +
+
+
+ Custom Dilplan Eintrag - Dieses Feld ermöglicht es Ihnen, in jedem dialplan Elemente, die Sie für die Call-Menü eingeben wollen. @@ -3912,1127 +4634,1415 @@ if ($SSoutbound_autodial_active > 0)



- VICIDIAL SELBSTALT VORWAHLKNOPF-STATUS

-
+ VICIDIAL_REMOTE_AGENTSTABELLE

+

- Wenn das SelbstAlt-zahl Wählen wird eingestellt auffangen,dann die Leitungen, die sind, unter diesen Vorwahlknopfstatus desAutomobils Alt haben ihr alt_phone dispositioned, und-oder address3gewählt, nachdem irgendwelche von diesen Status kein-antworten,werden eingestellt auffängt. - - - - - -



- -VICIDIAL MITTEL-PAUSE CODES

-
-
-Wenn die Mittel-Pause aktives kodiert, fangen Sie wirdeingestellt auf aktives dann die Mittel in der LageIST, von diesenPause Codes vorzuwählen auf, wenn sie an die PAUSE Taste auf ihrenSchirmen klicken. Diese Daten werden dann im vicidialMittelmaschinenbordbuch gespeichert. Der Pause Code muß nurBuchstaben und Zahlen lang enthalten und kleiner als 7 Buchstabensein. Der Pause Codename kann nicht mehr als 30 Buchstaben sein. - - - - - -



- -VICIDIAL_USER_GROUPSTABELLE

-
-
-Benutzer-Gruppe - Dieses ist der kurze Name einer VicidialBenutzergruppe, der Versuch, zum keiner Räume zu benutzen, oderInterpunktion für dieses fangen Maximum 20 Buchstaben,Minimum von 2 Buchstaben auf. - -
-
-
-Gruppe Name - Dieses ist die Beschreibung des vicidialBenutzergruppe Maximums von 40 Buchstaben. - -
-
-
-ForceTimeclock Login - Diese Option ermöglicht es Ihnen, nicht zulassen, ein Agent der Anmeldung an der VICIDIAL Agent-Schnittstelle, wenn sie nicht angemeldet haben, in die timeclock. Der Standardwert ist N. Es ist eine Option zu befreien admin Benutzer, Stufen 8 und 9. - -
-
-
-Shift Vollstreckung - Diese Einstellung ermöglicht es Ihnen, Agenten-Logins auf der Grundlage der Veränderungen, die ausgewählt werden. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Standardeinstellung ist Aus. - -
-
-
-Gruppe Verschiebungen - Dies ist eine Liste der wählbaren Schichten, die sich die Agenten anmelden, Zeit auf dem System. - -
-
-
-Erlaubte Kampagnen - dieses ist eine auswählbare Liste der Kampagnen,zu denen Mitglieder dieser Benutzergruppe innen protokollieren könnenin. Die ALL-CAMPAIGNS Wahl erlaubt den Benutzern in dieser Gruppe, injeder möglicher Kampagne auf dem System innen zu sehen und zuprotokollieren. - - 0) - { - ?> -
-
-
- QC erlaubt Kampagnen - Dies ist eine Liste der wählbaren Kampagnen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-KAMPAGNEN Option ermöglicht es dem Benutzer in dieser Gruppe, QC einer Kampagne auf dem System. + Benutzernummer Anfang - Dieses ist die beginnende Benutzernummer,die verwendet wird, wenn die Remotemitteleintragungen in das Systemeingesetzt werden. Wenn die Zeilenzahl in hohem Grade als 1eingestellt wird, wird diese Zahl durch eine erhöht, bis jede Linieeine Eintragung hat. Stellen Sie, ein neues VICIDIAL Benutzerkonto miteinem Benutzerniveau von 4 zu verursachen oder groß sicher, wenn Siesie in der LageSEIN wünschen, die vdremote.php Seite fürRemotenetzzugang dieses Kontos zu benutzen.
-
+
- QC erlaubt Inbound Gruppen - Dies ist eine Liste der wählbaren Eingang Gruppen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-GRUPPEN Option ermöglicht es dem Benutzer in dieser Benutzergruppe zu QC jede eingehende Gruppe über das System. - + Zeilenzahl - Dieses definiert, wievieles Remotemittel Eintragungendas System verursacht, und stellt fest, wieviele Linien es denkt, daßes zur Zahl unter sicher senden kann. + +
+
+
+ Bediener IP - Eine Remotemitteleintragung ist für einenspezifischen Bediener, ist hier nur gut, wo Sie vorwählen, dasBediener Sie wünschen. + +
+
+
+ Externe Verlängerung - Dieses ist die Zahl, daß Sie die Anrufewünschen, die zu nachgeschickt werden. Überprüfen Sie, ob es einevolle dial plan Zahl ist und daß, wenn Sie 9 am Anfang benötigen, Sieihn innen hier setzen. Prüfen Sie, indem Sie diese Nummer von einemTelefon auf dem System wählen. + +
+
+
+ Status - Ist hier, wo Sie das Remotemittel an und abstellen.Sobald das Mittel aktiv ist, nimmt das System an, daß es Anrufe zuihm schicken kann. Es kann bis 30 Sekunden dauern, sobald Sie denStatus zu unaktiviertem ändern, um Anrufe, zu empfangen zu stoppen. + +
+
+
+ Kampagne - Ist hier, wo Sie die Kampagne vorwählen, daß dieseRemotemittel in geloggt werden. Inbound Notwendigkeiten, die GENAUEREKampagne zu verwenden und die inbound Kampagnen unter dervorzuwählen, die Sie Anrufe von empfangen möchten. + +
+
+
+ Inbound Gruppen - Ist hier, wo Sie die inbound Gruppen vorwählen,die Sie Anrufe von empfangen möchten, wenn Sie die GENAUERE Kampagnevorgewählt haben. - - -



- -VICIDIAL_INDEXETABELLE

-
-
-Index Identifikation - Dieses ist der kurze Name eines VicidialIndexes. Dieser muß ein einzigartiger Bezeichner sein. Der Versuch,zum keiner Räume oder die Interpunktion für dieses zu benutzenfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf. - -
-
-Index-Name - Dieses ist der Titel einem Vicidial Index. Dieses isteine kurze Zusammenfassung der Indexmaximum 50 Buchstaben, Minimum von2 Buchstaben. Es sollte keine Räume geben, oder Interpunktionirgendwie der Art in den theis fangen auf. - -
-
-Index kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Index wie - geändert, um Aufsteigen an Sept. 23 freizugeben-. Maximum 255 Buchstaben setzen können, Minimum von 2 Buchstaben. - -
-
-Index-Text - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: - -
-<iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&phone=--A--phone--B--" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> -</iframe> -
- -
-
-
-Aktiv - Dieses stellt fest, ob dieser Index vorgewählt werdenkann, durch eine Kampagne verwendet zu werden. - - - - - - 0) - { - ?>



- VICIDIAL_LEAD_FILTERTABELLE

-
+ VICIDIAL_CAMPAIGN_LISTEN

+

- Filter Identifikation - Dieses ist der kurze Name eines VicidialLeitung Filter. Dieser muß ein einzigartiger Bezeichner sein.Benutzen Sie keine Räume, oder Interpunktion für diesesfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf. + Die Listen innerhalb dieser Kampagne werden hier verzeichnet, ob siewerden bezeichnet durch das Y aktiv sind, oder N und Sie zum ListeSchirm gehen können, indem sie auf der Liste Identifikation in derersten Spalte klicken. + +



+ + VICIDIAL_CAMPAIGN_STATUSESTABELLE

+

-
- Filter-Name - Dieses ist ein beschreibenderer Name des Filter.Dieses ist eine kurze Zusammenfassung der Filtermaximum 30 Buchstaben,Minimum von 2 Buchstaben. + Durch den Gebrauch von kundenspezifischen Kampagne Status, können SieStatus haben, die nur für eine spezifische Kampagne bestehen. DerStatus muß 1-8 Buchstaben lang sein, muß die Beschreibung 2-30Buchstaben lang sein und auswählbar definiert, ob es oben in VICIDIALals Einteilung zeigt. Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend. Die Kategorie Wahl erlaubt Ihnen, einige Status in ein catogy zugruppieren, das für statistische Analyse verwendet werden kann. -
-
- Filter kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Filter wie - Anrufe alle Kalifornien Leitungen -. Maximum 255Buchstaben setzen können, Minimum von 2 Buchstaben. -
-
- Filter SQL - Dieses ist, wohin Sie das SQL Frage Fragment setzen,das Sie vorbei filtern möchten anfangen nicht, oder Ende mit UND, dasdurch den Zufuhrbehälter cron Index automatisch hinzugefügt wird.eine Beispiel SQL Frage, die hier arbeiten würde, ist called_count \4 und called_count \. - + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYSTABELLE

+
+
+ Durch den Gebrauch von kundenspezifischen Kampagne hot keys, benenntVertreter, die verwenden, der vicidial Netz-Klient Dose Hängezustandund Einteilung, gerade indem sie einen einzelnen Schlüssel auf ihrerTastatur betätigen. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. -



-VICIDIAL_AnrufzeitenTABELLE

-
-
-Anrufzeit ID - Dies ist der kurze Name von einer Vicidial Anrufzeit Definition. Es muss ein eindeutiger Bezeichner sein. Leerzeichen und Punkte sind in diesem Feld nicht erlaubt. Maximal 10 Zeichen, mindestens 2. +



-
-
-Anrufzeit Name - Dies ist ein besser beschreibender Name für die Anrufzeit Definition. Es ist eine kurze Zusammenfassung der Anrufzeit Definition. Maximal 30 Zeichen, mindestens 2. - -
-
-Anrufzeit Kommentare - Hier können Sie Kommentare für eine Vicidial Anrufzeit Definition wie -10 bis 14 Uhr mit eigenen Beschränkungen für das angerufene Land- machen. Maximal 255 Zeichen. - -
-
-Standard Start and Stop Zeiten - Dies ist die Standardzeit, zu der Anrufe innerhalb der Anrufzeitdefinition gestartet oder gestoppt werden dürfen, wenn die Wochentag Startzeit nicht definiert ist. 0 ist Mitternacht. Um Anrufe komplett zu verhindern den Wert auf 2400 und die Standard Stopzeit ebenfalls auf 2400 setzen. Um Anrufe für 24 Stunden am Tag zu erlauben die Startzeit auf 0 und die Stopzeit auf 2400 setzen. - -
-
-Wochentag Start and Stop Zeit - Dies sind die speziellen Zeiten pro Tag, welche für die Anrufzeit Definition gesetzt werden können. Es gelten die selben Regeln wie für Start und Stop Zeiten. - -
-
-Land Anrufzeit Definition - Dies ist die Liste der landspezifischen Anrufzeit Definitionen, die von dieser Anrufzeit Definition beachtet werden. - -
-
-Landesspezifische Anrufzeit Definition - Dies ist der zwei Buchstaben Code für das Land, für das die Anrufzeit Definition gilt. Damit diese ausgeführt wird muss die in der Kampagne gesetzte lokale Anrufzeit diese landesspezifische Anrufzeit Aufzeichnung enthalten, genauso wie alle anzurufenden Anschlüsse den landesspezifischen zwei Buchstaben Code enthalten müssen . + VICIDIAL_LEAD_RECYCLETABELLE

+
+
+ Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. -



-VICIDIAL_SHIFTSTABELLE

-
-
-Shift-ID - Das ist der kurze Name der Vicidial Shift Definition. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder Satzzeichen für dieses Feld. max 20 Zeichen, mindestens 2-Zeichen. +



-
-
-Shift Name - Dies ist eine beschreibende Bezeichnung der Shift Definition. Dies ist eine kurze Zusammenfassung der Shift Definition. max 50 Zeichen, mindestens 2-Zeichen. + VICIDIAL SELBSTALT VORWAHLKNOPF-STATUS

+
+
+ Wenn das SelbstAlt-zahl Wählen wird eingestellt auffangen,dann die Leitungen, die sind, unter diesen Vorwahlknopfstatus desAutomobils Alt haben ihr alt_phone dispositioned, und-oder address3gewählt, nachdem irgendwelche von diesen Status kein-antworten,werden eingestellt auffängt. -
-
-Start Time Shift - Es ist an der Zeit, dass die Kampagne Schicht beginnt. Darf nur Zahlen, 9:30 AM wäre 0930 und 5:00 PM wäre 1700. - -
-
-Shift Länge - Das ist die Zeit in Stunden und Minuten, dass die Kampagne Schicht dauert. 8 Stunden wäre 08:00 Uhr und 7 Stunden und 30 Minuten würde 07:30. - -
-
-Shift Wochentage - In diesem Abschnitt sollten Sie die Tage der Woche, dass diese Verschiebung ist aktiv. - - - - 0) - { + + +



- VICIDIAL LISTE LADEVORRICHTUNG FUNKTIONALITÄT

-
+ VICIDIAL MITTEL-PAUSE CODES

+

- Die VICIDIAL grundlegende Netz-gegründete Leitung Ladevorrichtung isteinfach entworfen, um eine Leitung Akte zu nehmen - bis zu 8MB in derGröße - die entweder Vorsprung oder das abgegrenzte Rohr und es indie vicidial_list Tabelle zu laden ist. Die Leitung Ladevorrichtungläßt auffangen das Wählen zu und TXT- deutlich Text, CSV-Komma getrennte Werte und XLS- übertreffen Akte Formate. Die LeitungLadevorrichtung tut nicht Datenprüfung, aber sie erlaubt Ihnen, aufDuplikate in sich, innerhalb der Kampagne oder innerhalb des gesamtenSystems zu überprüfen. Auch überprüfen Sie, ob Sie die Listeerstellt haben, daß diese Leitungen darunter sein sollen, damit Siesie benutzen können. Ist hier eine Liste von auffängt inihrem korrekten Auftrag für die Leitung Akten: -
    -
  1. Verkäufer-Leitung Code - zeigt oben im Verkäufer, den Identifikationvom GUI auffangen -
  2. Quellenprogramm - interner Gebrauch nur für admins und DBAs -
  3. Liste Identifikation - die Liste Zahl, die diese Leitungen obendarunter zeigen -
  4. Telefon-Code - das Präfix für die Telefonnummer - 1 für US, 01144für Großbritannien, 01161 für AUS, usw. -
  5. Telefonnummer - muß mindestens 8 Stellen lang sein -
  6. Titel - Titel dem Kunden - Herr Ms Mrs, usw.... -
  7. Vorname -
  8. Mittlere Initiale -
  9. Letzter Name -
  10. Adresse Linie 1 -
  11. Adresse Linie 2 -
  12. Adresse Linie 3 -
  13. Stadt -
  14. Zustand - begrenzt auf 2 Buchstaben -
  15. Provinz -
  16. Postcode -
  17. Land -
  18. Geschlecht -
  19. Geburtsdatum -
  20. Wechselnde Telefonnummer - Sicherheit Phrase -
  21. Anmerkungen -
+ Wenn die Mittel-Pause aktives kodiert, fangen Sie wirdeingestellt auf aktives dann die Mittel in der LageIST, von diesenPause Codes vorzuwählen auf, wenn sie an die PAUSE Taste auf ihrenSchirmen klicken. Diese Daten werden dann im vicidialMittelmaschinenbordbuch gespeichert. Der Pause Code muß nurBuchstaben und Zahlen lang enthalten und kleiner als 7 Buchstabensein. Der Pause Codename kann nicht mehr als 30 Buchstaben sein. -
ANMERKUNGEN: Die übertreffenleitung Ladevorrichtung Funktionalitätwird durch eine Reihe Perl Indexe ermöglicht und muß eine richtigzusammengebaute /etc/astguiclient.conf Akte im Platz auf dem webserver haben. Auch ein Paarperl Module müssen für sie, um außerdemzu arbeiten - OLE-Storage_Lite-Storage_Lite undVerteilungsbogen-ParseExcel geladen werden. Sie können aufLaufzeitfehler in diesen überprüfen, indem Sie Ihre Apache error_logAkte betrachten. Auch für Doppelprüfungen gegen gampaignverzeichnet, die Liste, die neue Leitungen hat, in es einzusteigenmuß im System verursacht werden, bevor Sie beginnen, die Leitungen zuladen.



- - - - - -TELEFON-TABELLE

-
-
-Telefonverlängerung - Dieses fangen ist auf, wohin Sieden Telefonnamen setzen, während er scheint, nicht einschließlichdas Protokoll oder den Schrägstrich am Anfang mit einem Sternchenzuversehen. Z.B.: für das SIP Telefon SIP\/test101 würde dieTelefonverlängerung test101 sein. Auch denn Telefone IAX2 stellen Siesicher, daß Sie den vollen Telefonnamen verwenden:IAX2\/IAXphone1@IAXphone1 würde IAXphone1@IAXphone1 sein. Für ZapTelefone sicherstellen, daß Sie die volle Führung setzen: Zap/25-1würde 25-1 sein. Eine andere Anmerkung, stellen sicher, daß Sie dasProtokoll unten richtig für Ihre Art des Telefons einstellen. - -
-
-
-Dial Plan Zahl - This field is for the number you dial to have the phone ring. This number is defined in the extensions.conf file of your Asterisk server - -
-
-
-Voicemail Kasten - Dieses fangen ist für den voicemailKasten auf, daß die Anzeigen für zum Benutzer dieses Telefons gehen.Wir verwenden dieses, um auf voicemail Anzeigen und auf den Benutzerzu überprüfen, zum in der Lage zuSEIN, die VOICEMAIL Taste aufastGUIclient APP zu benutzen. - -
-
-
-Outbound CallerID - Dieses fangen ist auf, wo Sie diecallerID Zahl eintragen würden, die Sie möchten, daß auf outboundAnrufe gesetzter Form der astguiclient Netz-Klient aussieht. Diesesarbeitet nicht auf RBS, non-PRI, T1/Eß. - -
-
-
-Telefon-IP address - Dieses fangen ist für IP addressdes Telefons auf, wenn es ein VOIP Telefon ist. Dieses istauffangen ein wahlweise freigestelltes - -
-
-
-Computer-IP address - Dieses fangen ist für IP addressComputer des Benutzers auf. Dieses ist auffangen einwahlweise freigestelltes - -
-
-
-Bediener IP - Dieses Menü ist, wo Sie vorwählen, dem Bedienerdas Telefon auf aktiv ist. - -
-
-
-LOGON - Der LOGON gewöhnt ge$$$WESEN für den Telefonbenutzer anLOGON zu den Klient Anwendungen. - -
-
-
-Kennwort - Das Kennwort gewöhnt ge$$$WESEN für denTelefonbenutzer an LOGON zu den Klient Anwendungen. - -
-
-
-Status - Der Status des Telefons im System, die AKTIVEN und ADMINdürfen, damit GUI Klienten arbeiten. Admin erlaubt Zugang zu dieseradministrativen Web site. Alle weiteren Status erlauben nicht GUI oderAdmin Netzzugang. - -
-
-
-Aktives Konto - Ob das Telefon aktiv ist, es in die Liste im GUIKlienten einzusetzen. - -
-
-
-Telefon-Art - Lediglich für administrative Anmerkungen. - -
-
-
-Voller Name - Verwendet durch das GUIclient in der Liste deraktiven Telefone. - -
-
-
-Firma - Lediglich für administrative Anmerkungen. - -
-
-
-Abbildung - Nicht schon eingeführt. - -
-
-
-Neue Anzeigen - Zahl der neuen voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener. - -
-
-
-Alte Anzeigen - Zahl der alten voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener. - -
-
-
-Klient Protokoll - Das Protokoll, das das Telefon verwendet, anden Sternchenbediener anzuschließen: Sip, IAX2, Zap. Auch, es gibtexternal für Remotevorwahlknopfzahlen oder GeschwindigkeitVorwahlknopfzahlen, die Sie als Telefone verzeichnen möchten. - -
-
-
-Lokales GMT - Der Unterschied Greenwich-Zeit von oder VON DERZULU-Zeit, in der das Telefon lokalisiert wird. STELLEN SIE NICHT AUFTAGESLICHT-SPARUNGEN ZEIT EIN. Dieses wird durch die VICIDIAL Kampagneverwendet, um die Zeit und Kunde Zeit genau anzuzeigen. - -
-
-
-Manager-LOGON - Dieses ist der LOGON, dem die GUI Klienten fürdieses Telefon pflegen, die Datenbank zugänglich zu machen, in derdie Bedienerdaten liegen. - -
-
-
-Manager-Geheimnis - Dieses ist das Kennwort, dem die GUI Klientenfür dieses Telefon pflegen, die Datenbank zugänglich zu machen, inder die Bedienerdaten liegen. - -
-
-
-VICIDIAL Rückstellung Benutzer - Dieses soll einen Default-Wertin den VICIDIAL Benutzer legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Benutzer. - -
-
-
-VICIDIAL Rückstellung Durchlauf - Dieses soll einen Default-Wertin das VICIDIAL Kennwort legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Durchlauf. - -
-
-
-VICIDIAL Rückstellung Kampagne - Dieses soll einen Default-Wertin die VICIDIAL Kampagne legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keine Kampagne. - -
-
-
-Park Exten - Dieses ist die Rückstellung Parkenverlängerung fürdie Klient apps. Überprüfen Sie, daß ein unterschiedliches manarbeitet, bevor Sie dieses ändern. - -
-
-
-Conf Exten - This is the default Conference park extension for the client apps. Verify that a different one works before you change this. - -
-
-
-VICIDIAL Park Exten - Dieses ist die RückstellungParkenverlängerung für VICIDIAL Klient APP. Überprüfen Sie, daßein unterschiedliches man arbeitet, bevor Sie dieses ändern. - -
-
-
-VICIDIAL Park-Akte - Dieses ist der Rückstellung VICIDIALPark-Verlängerung Dateiname für die Klient apps. Überprüfen Sie,daß ein unterschiedliches man arbeitet, bevor Sie dieses ändern, daszu 10 Buchstaben begrenzt wird. - -
-
-
-Überwachen Sie Präfix - This is the dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records. - -
-
-
-Aufnahme Exten - Dieses ist die dial plan Verlängerung für dieAufnahmeverlängerung, die verwendet wird, um in meetme Konferenzen zufallen, um sie zu notieren. Es dauert normalerweise bis zu einerStunde, wenn es nicht gestoppt wird, überprüft mit extensions.confAkte, bevor es ändert. - -
-
-
-VMAIL Hauptexten - Dieses ist die dial plan Verlängerung, diegeht, Ihr voicemail. zu überprüfen, überprüfen mit extensions.confAkte, bevor es ändert. - -
-
-
-VMAIL Dump Exten - Dieses ist das dial plan Präfix, das verwendetwird, um Anrufe direkt zum voicemail eines Benutzers von einemPhasenanruf in der astGUIclient APP zu schicken, überprüfen mitextensions.conf Akte, bevor es ändert. - -
-
-
-Exten Kontext - Dieses ist der dial plan Kontext, den diesesTelefon hauptsächlich verwendet. Es wird angenommen, daß alleNummern, die durch die Klient apps gewählt werden, diesen Kontextverwenden, also es eine gute Idee ist sicherzustellen, daß dieses derbreiteste Kontext ist, der möglich ist, überprüfen mitextensions.conf Akte, bevor es ändert. - -
-
-
-DTMF senden Führung - Dieses ist die Führung Zeichenkette, diebenutzt wird, um DTMF Töne in meetme Konferenzen von den Klient appszu senden. Überprüfen Sie, daß und Kontext mit der extensions.confAkte exten. - -
-
-
-Outbound Anruf-Gruppe - Dieses ist die Kanalgruppe, daß outboundAnrufe von diesem Telefon aus gesetzt werden. Es gibt Programme einesPaares in den Klient apps, die dieses verwenden. Für Zap Führungen,die Sie etwas wie Zap/g2 verwenden möchten, denn Stämme IAX2 Siedas volle IAX Präfix wie IAX2/VICItest1:secret@10.10.10.15:4569würden verwenden wollen. Überprüfen Sie die Stämme mit derextensions.conf Akte, es ist normalerweise, was Sie als die globaleVariable des STAMMES an der Oberseite der Akte definiert haben. - -
-
-
-Datenbanksuchroutine-Position - Dieses ist auf nur UNIX/LINUXKlienten, der absolute Weg zu Mozilla anwendbar, oder FirefoxDatenbanksuchroutine auf der Maschine überprüfen dieses, indem siemanuell es ausstößt. - -
-
-
-Anbringen Sie Verzeichnis - Dieses ist der Platz, in dem dieastGUIclient und astVICIDIAL Indexe auf Ihrer Maschine sind. FürWin32 sollte es etwas wie C:\\AST_VICI sein und für UNIX sollte esetwas wie /usr/local/perl_TK. sein überprüft dieses manuell. - -
-
-
-CallerID URL - Dieses ist die Netzadresse der Seite, die benutztwird, um kundenspezifische callerID Nachschlagen zu tun, Rückstellungprüfen, dieadresse ist:http://astguiclient.sf.net/test_callerid_output.php - -
-
-
-VICIDIAL Rückstellung URL - Dieses ist die Netzadresse der Seite,die benutzt wird, um kundenspezifische VICIDIAL Netz-Formfragen zutun, Rückstellung prüfen, dieadresse ist:http://astguiclient.sf.net/test_VICIDIAL_output.php - -
-
-
-Anruf-Protokollierung - Dieses wird eingestellt, um auszurichten,wenn die call_log.agi Akte im Platz in der extensions.conf Akte füralles outbound ist und die Verlängerungen des Hängezustands ' h ',zum alle zu loggen benennt. Diese sollte 1, weil es für vieleastGUIclient und DIE VICIDIAL manditory ist Eigenschaften immer sein,zum richtig zu arbeiten. - -
-
-
-Benutzer-Schaltung - Set to true to allow user to switch to another user account. NOTE: If user switches they can initiate recording on the new user's phone conversation - -
-
-
-Conferencing - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, Konferenzanrufe mit bis zu sechs externen Linien zubeginnen. - -
-
-
-Admin Hängezustand - um Benutzer zu erlauben auszurichten Satz,zum Hängezustand irgendeine Linie am Willen durch astGUIclient in derLage zuSEIN. Gute Idee, diesem für Admin Benutzer nur zuermöglichen. - -
-
-
-Admin Straßenräuber - Stellen Sie ein, um auszurichten, umBenutzer zu erlauben, in der Lage zuSEIN, zu ihrer Verlängerung jedemögliche Linie zu ergreifen und umzuadressieren am Willen durchastGUIclient. Gute Idee, diesem für Admin Benutzer nur zuermöglichen. Aber ist für Manager sehr nützlich. - -
-
-
-Admin Monitor - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, in der Lage zuSEIN, zu ihrer Verlängerung jede möglicheLinie zu ergreifen und umzuadressieren am Willen durch astGUIclient.Gute Idee, diesem für Admin Benutzer nur zu ermöglichen. Aber istfür Manager und als Training Werkzeug sehr nützlich. - -
-
-
-Parkschaltung - um Benutzer zu erlauben auszurichten der Satz, inder Lage zuSEIN zu parken ersucht um astGUIclient Einfluß, von jedemanderen astGUIclient Benutzer auf dem System aufgehoben zu werden.Anrufe bleiben auf Einfluß für bis zu einen halbe Stunde dannHängezustand. Normalerweise ermöglicht für alle. - -
-
-
-Updater Überprüfung - Stellen Sie ein, um auszurichten, um einepopup Warnung anzuzeigen, die die updater Zeit nicht in 20 Sekundengeändert hat. Nützlich für Admin Benutzer. - -
-
-
-Af Protokollierung - Stellen Sie ein, um auszurichten, um vieleTätigkeiten des astGUIclient Verbrauches in einer Textakte auf demComputer des Benutzers zu protokollieren. - -
-
-
-Warteschlange ermöglichte - um Klient apps auszurichten Satz dasSternchen-zentrale Warteschlange System benutzen zu lassen. Erfordertfür VICIDIAL und für alle Benutzer empfohlen. - -
-
-
-CallerID Popup - Stellen Sie ein, um auszurichten, um die Zahlenzuzulassen, die in der extensions.conf Akte definiert werden, umCallerID popup Schirme zu schicken den astGUIclient Benutzern. - -
-
-
-VMail Taste - Stellen Sie ein, um auszurichten, um die VOICEMAILTaste anzuzeigen und die Anzeigen zählen Anzeige auf astGUIclient. - -
-
-
-Schnell erneuern Sie - Stellen Sie ein, um auszurichten, um einerneuen Rate von zu ermöglichen erneuern von den Anrufinformationenfür das astGUIclient. Rückstellung arbeitsunfähige Rate ist 1000zweite des Ms.1. Kann Anlagen-Belastung erhöhen, wenn Sie diese Zahlsenken. - -
-
-
-Schnell erneuern Sie Rate - in den Millisekunden. Nur verwendet,wenn schnell, erneuern Sie wird ermöglicht. Rückstellungarbeitsunfähige Rate ist 1000 zweite des Ms.1. Kann Anlagen-Belastungerhöhen, wenn Sie diese Zahl senken. - -
-
-
-Persistant MySQL - Wenn er ermöglicht wird, bleibt derastGUIclient Anschluß angeschlossen, anstatt, jede Sekundeanzuschließen. Nützlich, wenn Sie ein schnelles die eingestellteRate erneuern lassen. Sie erhöht die Zahl Anschlüssen auf IhrerMySQL Maschine. - -
-
-
-Selbstvorwahlknopf-folgende Zahl - wenn er ermöglicht wird,wählt der VICIDIAL Klient die folgende Nummer auf der Listeautomatisch nach Einteilung eines Anrufs, es sei denn sie vorwählten"auf, dem Einteilung Schirm zu wählen zu stoppen". - -
-
-
-Stoppen Sie Rec nach jedem Anruf - wenn er ermöglicht wird,stoppt der VICIDIAL Klient, was Aufnahme weitergeht, nachdem jederAnruf dispositioned gewesen ist. Nützlich, wenn Sie eine MengeAufnahme tun oder Sie benutzen eine Netzform, um Aufnahme auszulösen. - -
-
-
-Ermöglichen Sie SIPSAK Anzeigen - wenn er ermöglicht wird, schicktder Bediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Eigenschaft arbeitet nurmit SIP Telefonen und erfordert sipsak Anwendung, auf das web serverangebracht zu werden. Rückstellung ist 0. - -
-
-
-DBX Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an. - -
-
-
-DBX Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen. - -
-
-
-DBX Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron. - -
-
-
-DBX Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234. - -
-
-
-DBX Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306. - -
-
-
-DBY Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an. Zweitensserver, nicht z.Z. verwendet. - -
-
-
-DBY Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen. Zweitensserver, nicht z.Z. verwendet. - -
-
-
-DBY Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron. Zweitensserver, nicht z.Z. verwendet. - -
-
-
-DBY Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234. Zweitensserver, nicht z.Z. verwendet. - -
-
-
-DBY Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306. Zweitensserver, nicht z.Z. verwendet. - -
-
-
-Alias-ID - Die ID des Alias verwendet, um für Telefon-Lastenausgleich Logins. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein. - -
-
-
-Alias-Name - Der Name für die Bezeichnung eines Handys Alias, muss zwischen 2 und 50 Zeichen lang sein. - -
-
-
-Telefone Logins List - Das Komma getrennt Liste der Telefonnummern Logins verwendet, wenn ein Agent meldet sich mit Telefon Lastenausgleich Logins. Der Agent-Anwendung finden Sie die Aktive Server mit den wenigsten Makler eingeloggt ist und ein Anruf aus, dass der Server-Agent bei der Anmeldung. - -
-
-
-Telefon E-Mail - Die E-Mail-Adresse im Zusammenhang mit diesem Telefon-Eintrag. Dies ist für die Mailbox-Einstellungen. - -
-
-
-Vorlagen-ID - Das ist die conf Datei template-ID, die dieses Telefon-Eintrag wird für die Asterisk-Einstellungen. Standard ist - KEINE --. - -
-
-
-Conf Override Settings - If populated, and the Vorlagen-ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. - -
-
-
-Alias-ID-Gruppe - die ID der Gruppe Alias von Agenten wählen Sie fordert von der VICIDIAL Agent-Schnittstelle mit verschiedenen Caller-IDs. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein. - -
-
-
-Alias-Name-Fraktion - Der Name für die Bezeichnung einer Gruppe Alias, muss zwischen 2 und 50 Zeichen lang sein. - -
-
-
-Anrufer-ID-Nummer - Die Caller-ID-Nummer, die in dieser Gruppe Alias. Muss nur Ziffern. - -
-
-
-Anrufer-ID Name - Die Anrufer-ID-Namen ein, können mit dieser Gruppe Alias. Soweit wir wissen, wird dies nur funktionieren, in Kanada über den PRI-Leitungen und mit einer Schleife IAX Stamm durch Asterisk. - - - - -



- -BEDIENER-TABELLE

-
-
-Bediener Identifikation - Dieses fangen ist, wohin Sieden Sternchenbedienernamen setzen, doesnt müssen ein amtliches GebietUnterseeboot, gerade ein Spitzname sein auf, um den Bediener zu denAdmin Benutzern zu kennzeichnen. - -
-
-
-Bediener-Beschreibung - auffangen, wo Sie eine kleine Phraseverwenden, um den Sternchenbediener zu beschreiben. - -
-
-
-Bediener-IP address - auffangen, wo Sie das Netz-IP addressdes Sternchenbedieners setzten. - -
-
-
-Aktiv - Stellen Sie ein, ob der Sternchenbediener aktiv oderunaktiviert ist. - -
-
-
-System Load - Diese beiden Statistiken zeigen, die loadavg ein System mal 100 und die CPU-Auslastung Anteil des Bediener und wird jede Minute aktualisiert. Die loadavg sollte im Durchschnitt unter 100 multipliziert mit der Anzahl der CPU-Kernen Ihr System hat, für eine optimale Leistung zu erzielen. Die CPU-Auslastung Prozentsatz sollte Aufenthalt unter 50 für eine optimale Leistung zu erzielen. - -
-
-
-Live-Channels - Dieses Feld zeigt die aktuelle Anzahl der Asterisk-Kanäle, die sich live über das System jetzt. Es ist wichtig zu beachten, dass die Anzahl der Kanäle Asterisk ist in der Regel viel höher als die tatsächliche Zahl der Anrufe auf einem System. Dieses Feld wird einmal pro Minute aktualisiert. - -
-
-
-Disk Usage - Dieses Feld wird die Nutzung der Festplatte für jede Partition auf diesem Server. Dieses Feld wird einmal pro Minute aktualisiert. - -
-
-
-Sternchen-Version - Stellen Sie die Version des Sternchens ein,die Sie auf diesen Bediener angebracht haben. Beispiele: ' 1.2 ', '1.0.8 ', ' 1.0.7 ', ' CVS_HEAD ', ' WIRKLICH ALTES ', usw.... Dieseswird verwendet, weil Versionen 1.0.8 und 1.0.9 eine andere Methode desBeschäftigens Local/ Führungen, eine Wanze, die in CVS v1.0geregelt worden ist, und Notwendigkeit, anders als behandelt zu werdenhaben, wenn die Behandlung ihres Local/ lenkt. Auch gegenwärtigesCVS_HEAD und der 1.2 Freigabebaumgebrauch unterschiedlicher Managerund Befehl gaben aus, also muß es anders als außerdem behandeltwerden. - -
-
-
-Maximale VICIDIAL Stämme - Dieses fangen feststellt diemaximale Zeilenzahl auf, um denen der VICIDIAL Auto-dialer versucht,diesen Bediener zu ersuchen. Wenn Sie zwei volle PRI Tß VICIDIALingauf einem Bediener einweihen möchten dann, würden Sie dieses bis 46einstellen. Rückstellung ist 96. - -
-
-
-Max Calls pro Sekunde - Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Ausgang Auto-Einwahl-Script auf diesem Server pro Sekunde. Muss zwischen 1 und 100. Der Standardwert ist 20. - -
-
-
-Telnet Wirt - Dieses ist die Adresse oder der Name desSternchenbedieners und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Wenn sie auf den Sternchenbedienerlaufen, dann ist die Rückstellung von ' localhost ' fein. - -
-
-
-Telnet Tor - Dieses ist das Tor des SternchenbedienerManageranschlußes und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Die Rückstellung von ' 5038 ' istfein für einen Standard anbringen. - -
-
-
-Manager-Benutzer - Das username oder der LOGON verwendeten, an denSternchenbedienermanager genericly anzuschließen. Rückstellung ist 'cron ' - -
-
-
-Manager-Geheimnis - Das Geheimnis oder das Kennwort verwendeten,an den Sternchenbedienermanager genericly anzuschließen.Rückstellung ist ' 1234 ' - -
-
-
-Manager-Update-Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für dieUpdateindexe optimiert wurde. Fallen Sie ist ' updatecron ' undannimmt das gleiche Geheimnis wie der generische Benutzer zurück. - -
-
-
-Manager hören Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die nur auf Ausgang hören. Fallen Sie ist 'listencron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück. - -
-
-
-Manager senden Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die dem Manager nur Tätigkeiten schicken. Fallen Sieist ' sendcron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück. - -
-
-
-Bediener GMT versetzt - Der Unterschied bezüglich der Stunden vonder GMT Zeit eingestellt nicht auf Tageslicht-Sparung-Zeit desBedieners. Rückstellung ist ' - 5 ' - -
-
-
-VMail Dump Exten - Das Verlängerung Präfix verwendet auf diesemBediener, um Anrufe direkt durch agc zu einem spezifischen voicemailKasten zu schicken. Rückstellung ist ' 85026666666666 ' - -
-
-
-VICIDIAL ANZEIGE Verlängerung - Die Rückstellung Verlängerung,wenn keines in der Kampagne anwesend ist, Anrufe für VICIDIAL zumSelbstwählen zu schicken. Rückstellung ist ' 8365 ' - -
-
-
-Rückstellung Kontext - Der Rückstellung dial plan Kontextverwendet für Indexe, die für diesen Bediener funktionieren.Rückstellung ist ' Rückstellung ' - -
-
-
-System Leistung - die Einstellung dieser Wahl auf Y ermöglicht derProtokollierung von System Leistung Notfall für die Bedienermaschineeinschließlich Anlagen-Belastung, System Prozesse undSternchenführungen im Gebrauch. Rückstellung ist N. - -
-
-
-Bediener-Maschinenbordbücher - die Einstellung dieser Wahl auf Yermöglicht der Protokollierung aller VICIDIAL bezogenen Indexe zuihren Textmaschinenbordbuchakten. Die Einstellung dieses auf N stopptSchreiben Maschinenbordbücher zu den Akten für diese Prozesse, auchdie Schirmprotokollierung des Sternchens ist untauglich, wenn diesesauf N eingestellt wird, wenn Sternchen begonnen wird. Rückstellungist Y. - -
-
-
-AGI ausgegeben - die Einstellung dieser Wahl auf KEINE sperrt Ausgangvon allen VICIDIAL bezogenen AGI Indexen. Die Einstellung dieses aufSTDERR schickt das AGI, das zum Sternchen CLI ausgegeben wird. DieEinstellung dieses auf AKTE schickt den Ausgang zu einer Akte imMaschinenbordbuchverzeichnis. Die Einstellung dieses auf BEIDE schicktAusgang zum Sternchen CLI und zu einer Maschinenbordbuchakte.Rückstellung ist AKTE. - -
-
-
-VICIDIAL Balance Wählen - dieses einstellend, fangen Sie zuY läßt den Bediener Balance Anrufe für Kampagnen in VICIDIAL legenauf, damit das definierte Vorwahlknopfniveau getroffen werden kann,selbst wenn es keine Mittel gibt, die in diese Kampagne auf diesemBediener geloggt werden. Rückstellung ist N. - -
-
-
-VICIDIAL Balance Offlimits - diese Einstellung definiert die ZahlStämmen, um die VICIDIAL Balance nicht zu erlauben, die wählt, um zuverwenden. Z.B. wenn Sie haben, wird 40 maximale vicidial Stämme undBalance offlimits bis 10 eingestellt, die Sie nur in der LageSIND, 30Hauptluftlinien für VICIDIAL Balance das Wählen zu benutzen.Rückstellung ist 0. - -
-
-
-Aufnahme Web-Link - Diese Einstellung erlaubt es Ihnen, sich über die Standard in der Anzeige der Aufnahme-Link im Admin-Web-Seiten. Der Standardwert ist SERVER_IP. - -
-
-
-Alternate Recording Bediener IP - Diese Einstellung können Sie eine Server-IP oder andere Rechner-Namen ein, kann anstelle der server_ip in die Links zu den Aufnahmen in der Admin-Web-Seiten. Der Standardwert ist leer. - -
-
-
-Aktive Server Asterisk - , wenn Asterisk läuft nicht auf diesem Server, oder, wenn VICIDIAL sollten nicht mit diesem Server, oder, wenn es nur mit diesem Server für andere Skripte wie die Be-Hopper Skript ausführen möchten, um dies zu N. Standard ist Y. - -
-
-
-Conf-Dateien erzeugen - Wenn Sie möchten, dass das System für die automatische Generierung von Sternchen conf-Dateien auf der Grundlage der Telefone Einträge, Träger Einträge und Load-Balancing-Setup in VICIDIAL dann dies auf Y. Der Standardwert ist Y. - -
-
-
-Rebuild conf Dateien - Wenn Sie wollen, um einen Wiederaufbau der Asterisk conf-Dateien, oder wenn eines der Handys oder Carrier-Einträge geändert haben, dann sollte so eingestellt werden, dass Y. Nach der conf-Dateien wurden erzeugt und Asterisk hat wurden neu geladen, so wird diese Veränderung zu N. Voreingestellt ist Y. - - - - - -



- -vicidial_conf_templatesTABELLE

-
-
-Vorlagen-ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die conf Vorlage des gesamten Systems. - -
-
-
-Template Name - Dies ist der beschreibende Name der Conf-Datei-Vorlage Eintrag. - -
-
-
-Template Inhalt - Dieses Feld ist, wo können Sie in den Einstellungen, die von allen Telefonen und-oder Luftfahrtunternehmen, die für die Verwendung dieser Vorlage conf. Bereiche, die nicht in diesem Feld sind: geheim, accountcode, Konto, Benutzernamen und Mailbox. - - - - - -



- -vicidial_server_carriersTABELLE

-
-
-Carrier-ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die Träger für diesen speziellen Eintrag im gesamten System. - -
-
-
-Carrier Name - Dies ist der beschreibende Name des Beförderers Eintrag. - -
-
-
-Anmeldung String - Dieses Feld ist, wo können Sie in die genaue String benötigt, der SIP-oder IAX-Konfigurations-Datei zu registrieren, um den Anbieter. Optional, aber dringend empfohlen, wenn Ihr durch die Registrierung. - -
-
-
-Vorlagen-ID - Dieses optionale Feld ermöglicht es Ihnen, wählen Sie eine conf-Datei-Vorlage für dieses Luftfahrtunternehmen Eintrag. - -
-
-
-Konto-Eintrag - Dieses Feld wird verwendet, wenn Sie nicht ausgewählt haben eine Vorlage zu verwenden, und es ist, wo können Sie in den spezifischen Einstellungen, die für diesen Träger. Wenn Sie sich in eingehenden Anrufen von diesem Luftfahrtunternehmen Stamm möchten Sie vielleicht die context = trunkinbound in diesem Bereich, so dass Sie verwenden können, der DID-Handling innerhalb VICIDIAL. - -
-
-
-Protokoll - Mit diesem Feld können Sie festlegen, das Protokoll zu verwenden für die Carrier-Eintrag. Derzeit werden nur IAX-und SIP unterstützt werden. - -
-
-
-Global String - Dieses optionale Feld können Sie die Definition einer globalen Variablen, die für die Träger in der dialplan. - -
-
-
-Dialplan Eintrag - Dieses optionale Feld können Sie festlegen, eine Reihe von dialplan Einträge, die für diesen Träger. - -
-
-
-Bediener IP - Dies ist der Server, dass dieser besondere Träger wird im Zusammenhang mit. - -
-
-
-Aktive - Diese legt fest, ob der Träger wird in den automatisch generierten conf-Dateien oder nicht. - - - - - -



- -KONFERENZTISCH

-
-
-Konferenz-Zahl - Dieses fangen ist auf, wohin Sie diemeetme Konferenz dialpna Zahl setzen. Es wird auch empfohlen, daß diemeetme Zahl in meetme.conf diese Zahl für jede Eintragungzusammenbringt. Dieses ist für die Konferenzen in astGUIclient undwird für leave-3way-call Funktionalität in VICIDIAL verwendet. - -
-
-
-Bediener IP - Das Menü, wo Sie den Sternchenbediener vorwählen,daß diese Konferenz eingeschaltet ist. - - - - - 0) - { + VICIDIAL_USER_GROUPSTABELLE

+
+
+ Benutzer-Gruppe - Dieses ist der kurze Name einer VicidialBenutzergruppe, der Versuch, zum keiner Räume zu benutzen, oderInterpunktion für dieses fangen Maximum 20 Buchstaben,Minimum von 2 Buchstaben auf. + +
+
+
+ Gruppe Name - Dieses ist die Beschreibung des vicidialBenutzergruppe Maximums von 40 Buchstaben. + +
+
+
+ ForceTimeclock Login - Diese Option ermöglicht es Ihnen, nicht zulassen, ein Agent der Anmeldung an der VICIDIAL Agent-Schnittstelle, wenn sie nicht angemeldet haben, in die timeclock. Der Standardwert ist N. Es ist eine Option zu befreien admin Benutzer, Stufen 8 und 9. + +
+
+
+ Shift Vollstreckung - Diese Einstellung ermöglicht es Ihnen, Agenten-Logins auf der Grundlage der Veränderungen, die ausgewählt werden. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Standardeinstellung ist Aus. + +
+
+
+ Gruppe Verschiebungen - Dies ist eine Liste der wählbaren Schichten, die sich die Agenten anmelden, Zeit auf dem System. + +
+
+
+ Erlaubte Kampagnen - dieses ist eine auswählbare Liste der Kampagnen,zu denen Mitglieder dieser Benutzergruppe innen protokollieren könnenin. Die ALL-CAMPAIGNS Wahl erlaubt den Benutzern in dieser Gruppe, injeder möglicher Kampagne auf dem System innen zu sehen und zuprotokollieren. + +
+
+
+ Agent Status Sichtbare Gruppen - Dies ist eine Liste der wählbaren Benutzer-Gruppen und User-Funktionen, auf die Mitglieder dieser Benutzergruppe den Status sowie die Übertragung Anrufe innerhalb des Agent-Bildschirm anzeigen können. Der ALL-GRUPPEN Option ermöglicht es dem Benutzer in dieser Gruppe zu sehen und Anrufe für jeden Benutzer auf dem System. Die Kampagnen-AGENTUREN Option können Benutzer in dieser Gruppe zu sehen und Anrufe für jeden Benutzer in der Kampagne, dass sie angemeldet sind, in. + +
+
+
+ Agent Status View Time - Diese Option legt fest, ob der Agent die Höhe der Zeit, dass die Nutzer in ihrer Bevollmächtigten Seitenleiste in ihren aktuellen Status zu sehen gewesen sein wird. Der Standardwert ist N nicht oder deaktiviert. + + 0) + { + ?> +
+
+
+ QC erlaubt Kampagnen - Dies ist eine Liste der wählbaren Kampagnen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-KAMPAGNEN Option ermöglicht es dem Benutzer in dieser Gruppe, QC einer Kampagne auf dem System. + +
+
+
+ QC erlaubt Inbound Gruppen - Dies ist eine Liste der wählbaren Eingang Gruppen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-GRUPPEN Option ermöglicht es dem Benutzer in dieser Benutzergruppe zu QC jede eingehende Gruppe über das System. + + + + +



- VICIDIAL_SERVER_TrunksTABELLE

-
+ VICIDIAL_INDEXETABELLE

+

- VICIDIAL Bediener-Stämme erlaubt Ihnen, die gehenden Leitungeneinzuschränken, die auf diesem Bediener für die Kampagne benutztwerden, die auf einer Prokampagne Grundlage wählt. Sie haben dieWahl, zum einer spezifischen Zeilenzahl durch nur eine Kampagneverwendet zu werden aufzuheben,, sowie das Lassen dieser Kampagneüber seine reservierten Linien laufen in was Linien geöffnetbleiben, wie, lang an den Gruppenzeilen, die durch vicidial auf diesemBediener benutzt werden, sind kleiner als die Maximum VICIDIALStammeinstellung. Erlaubt Haben nicht irgendwelche dieserAufzeichnungen die Kampagne, die die Linie zuerst wählt, um da vieleLinien zu haben, während sie unter der Maximum VICIDIAL erhalten kannStammeinstellung. - + Index Identifikation - Dieses ist der kurze Name eines VicidialIndexes. Dieser muß ein einzigartiger Bezeichner sein. Der Versuch,zum keiner Räume oder die Interpunktion für dieses zu benutzenfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf. + +
+
+ Index-Name - Dieses ist der Titel einem Vicidial Index. Dieses isteine kurze Zusammenfassung der Indexmaximum 50 Buchstaben, Minimum von2 Buchstaben. Es sollte keine Räume geben, oder Interpunktionirgendwie der Art in den theis fangen auf. + +
+
+ Index kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Index wie - geändert, um Aufsteigen an Sept. 23 freizugeben-. Maximum 255 Buchstaben setzen können, Minimum von 2 Buchstaben. + +
+
+ Index-Text - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Aktiv - Dieses stellt fest, ob dieser Index vorgewählt werdenkann, durch eine Kampagne verwendet zu werden. -



-SYSTEM_SETTINGSTABELLE

-
-
-Gebrauch Nicht-Lateinisch - diese Wahl erlaubt Ihnen, den NetzanzeigeIndex auf Buchstaben des Gebrauches UTF8 zurückzufallen und keinenfilternden Lateinisch-Buchstabefamilie regelmäßigen Ausdruck zu tunoder Formatierung anzuzeigen. Rückstellung ist 0. + 0) + { + ?> +



-
-
-
-Webroot schreibbar - diese Einstellung erlaubt Ihnen zu definieren, obTemperatur Akten und Authentisierung Akten in das webroot auf Ihr webserver gelegt werden sollten. Rückstellung ist 1. + VICIDIAL_LEAD_FILTERTABELLE

+
+
+ Filter Identifikation - Dieses ist der kurze Name eines VicidialLeitung Filter. Dieser muß ein einzigartiger Bezeichner sein.Benutzen Sie keine Räume, oder Interpunktion für diesesfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf. -
-
-
-VICIDIAL Mittel sperren Anzeige - diese fangen wirdverwendet, vorzuwählen auf, wann man einem Mittel zeigt, wann ihrLernabschnitt durch das System, eine Managertätigkeit oder durch einexternes Maß gesperrt worden ist. Die NOT_ACTIVE Einstellung sperrtdie Anzeige auf dem Mittelschirm. Die LIVE_MITTELEinstellung zeigt nurdie untaugliche Anzeige, wenn die Mittel vicidial_auto_callsAufzeichnung entfernt worden ist, wie während ein Kraft Logout oderDringlichkeitslogout an. +
+
+ Filter-Name - Dieses ist ein beschreibenderer Name des Filter.Dieses ist eine kurze Zusammenfassung der Filtermaximum 30 Buchstaben,Minimum von 2 Buchstaben. -
-
-
-Erlauben Sie SIPSAK Anzeigen - wenn Satz bis 1, dieses dieTelefontabelle Einstellung richtig arbeiten läßt, schickt derBediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Diese Eigenschaft arbeitetnur mit SIP Telefonen und erfordert sipsak Anwendung, auf das webserver angebracht zu werden. Rückstellung ist 0. +
+
+ Filter kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Filter wie - Anrufe alle Kalifornien Leitungen -. Maximum 255Buchstaben setzen können, Minimum von 2 Buchstaben. -
-
-
-Agent API Aktive - Wenn auf 1 gesetzt, wird die Agent-API-Schnittstelle zu funktionieren. Standard ist 0. - -
-
-
-Admin Haupt-URL - dieses ist die URL oder Web site Adresse, daß Siegehen, wenn Sie an die HAUPTVERBINDUNG an der Oberseite der admin.phpSeite klicken. - -
-
-
-Ermöglichen Sie Vertreter-Übergangsprotokolldatei - diese Wahlprotokolliert in einer Textprotokolldatei auf dem webserver, jedesmalwenn ein Anruf auf ein Mittel gebracht wird. Rückstellung ist 0,gesperrt. - -
-
-
-Timeclock End of Day - Diese Einstellung legt fest, wenn alle Benutzer werden automatisch abgemeldet der timeclock System. Läuft nur einmal pro Tag. darf nur 4 Ziffern 2 Digit Stunden und 2 Minuten in Ziffer 24 Stunden Zeit. Standard ist 0000. - -
-
-
-LetzteTimeclock Auto Logout - Dieses Feld zeigt das Datum der letzten Auto-logout. - -
-
-
-Agent Screen Header Datum Format - Mit diesem Menü können Sie das Format des Datums, das zeigt sich an der Spitze der VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist MS_DASH_24HR
-MS_DASH_24HR 2008-06-24 23:59:59 - Standard-Datum-Format Jahr Monat Tag gefolgt von 24-Stunden-Zeit
-US_SLASH_24HR 06/24/2008 23:59:59 - USA Datum-Format mit Monat Tag Jahr gefolgt von 24-Stunden-Zeit
-EU_SLASH_24HR 24/06/2008 23:59:59 - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 24-Stunden-Zeit
-AL_TEXT_24HR JUN 24 23:59:59 - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 24-Stunden-Zeit
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Standard-Datum-Format Jahr Monat Tag gefolgt von 12-Stunden-Zeit
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA Datum-Format mit Monat Tag Jahr gefolgt von 12-Stunden-Zeit
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 12-Stunden-Zeit
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 12-Stunden-Zeit
- -
-
-
-Agent Screen Kunden Datum Format - Mit diesem Menü können Sie das Format des Kunden Zeitzone Datum, zeigt sich an der Spitze der Customer Information des VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist AL_TEXT_AMPM
-MS_DASH_24HR 2008-06-24 23:59:59 - Standard-Datum-Format Jahr Monat Tag gefolgt von 24-Stunden-Zeit
-US_SLASH_24HR 06/24/2008 23:59:59 - USA Datum-Format mit Monat Tag Jahr gefolgt von 24-Stunden-Zeit
-EU_SLASH_24HR 24/06/2008 23:59:59 - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 24-Stunden-Zeit
-AL_TEXT_24HR JUN 24 23:59:59 - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 24-Stunden-Zeit
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Standard-Datum-Format Jahr Monat Tag gefolgt von 12-Stunden-Zeit
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA Datum-Format mit Monat Tag Jahr gefolgt von 12-Stunden-Zeit
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 12-Stunden-Zeit
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 12-Stunden-Zeit
- -
-
-
-Agent Screen Kunden Telefon Format - Mit diesem Menü können Sie das Format des Kunden Rufnummer, zeigt sich in den Status des Agenten VICIDIAL Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist US_PARN
-US_DASH 000-000-0000 - USA Bindestrich getrennt Telefonnummer
-US_PARN (000)000-0000 - USA Bindestrich getrennt Nummer mit Vorwahl in Klammern
-MS_NODS 0000000000 - Keine Formatierung
-UK_DASH 00 0000-0000 - UK Bindestrich getrennt Telefonnummer mit Leerzeichen nach Stadt-Code
-AU_SPAC 000 000 000 - Australia Leerzeichen getrennt Telefonnummer
-IT_DASH 0000-000-000 - Italy Bindestrich getrennt Telefonnummer
-FR_SPAC 00 00 00 00 00 - France Leerzeichen getrennt Telefonnummer
- -
-
-
-Agent interface API Access Aktive - This option allows you to enable or disable the agent interface API. Default is 0. - -
-
-
-QC Funktionen Aktive - Mit dieser Option können Sie aktivieren oder deaktivieren Sie die QC oder Quality Control-Funktionen. Der Standardwert ist 0 für inaktiv. - -
-
-
-Outbound Auto-Dial Aktive - Mit dieser Option können Sie aktivieren oder deaktivieren Sie ausgehende Auto-Einwahl in VICIDIAL, in diesem Bereich auf 0 werden die Listen und Filter Abschnitte und viele Felder aus der Kampagne Änderung Bildschirme. Manuelle Eingabe Wählfeld wird noch innerhalb der zulässigen Agent-Bildschirm, aber keine Liste Einwahl möglich sein wird. Der Standardwert ist 1 für aktive. - -
-
-
-Max-FILL fordert pro Sekunde - Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Automobil-füllen Sie Outbound-Dialing-Skript automatisch für alle Server, pro Sekunde. Muss zwischen 1 und 200. Der Standardwert ist 40. - -
-
-
-Ermöglichen Sie der QueueMetrics Protokollierung - diese Einstellungerlaubt Ihnen zu definieren, ob VICIDIAL Maschinenbordbucheintragungenin die queue_log Datenbanktabelle einsetzt, wieSternchen-Warteschlangen Tätigkeit. QueueMetrics ist,Geschlossenquellenstatistische Analyse Programm ein alleinstehendes.Sie müssen QueueMetrics haben bereits angebracht und zusammengebaut,bevor Sie dieser Eigenschaft ermöglichen. Rückstellung ist 0. - -
-
-
-QueueMetrics Bediener IP - dieses ist das IP address der Datenbankfür Ihre QueueMetrics Installation. - -
-
-
-QueueMetrics Datenbank-Name - dieses ist der Datenbankname für IhreQueueMetrics Datenbank. - -
-
-
-QueueMetrics Datenbank-LOGON - dieses ist der Benutzername, derverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren. - -
-
-
-QueueMetrics Datenbank-Kennwort - dieses ist das Kennwort, dasverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren. - -
-
-
-QueueMetrics URL - Dieses ist die URL oder Web site Adresse, dieverwendet wird, um zu Ihrer QueueMetrics Installation zu kommen. - -
-
-
-QueueMetrics Maschinenbordbuch Identifikation - dieses ist derBediener Identifikation, den alle VICIDIAL Maschinenbordbücher, diein die QueueMetrics Datenbank einsteigen, als Bezeichner für jedeAufzeichnung benutzen. - -
-
-
-QueueMetrics EnterQueue stellen voran - dieses fangen wirdverwendet, das Voranstellen von einer der vicidial_list Datenzuzulassen auffängt vor der Telefonnummer des Kunden fürkundengebundene QueueMetrics Berichte auf. Rückstellung ist KEINE,alles nicht zu bevölkern. - -
-
-
-Aktivieren vtiger Integration - Diese Einstellung erlaubt es Ihnen zu ermöglichen vtiger Integration mit VICIDIAL. Derzeit Links zu vtiger admin und als auch als Nutzer Replikation sind die einzigen Integration Features zur Verfügung stehen. Standard ist 0. - -
-
-
-Vtiger HE Bediener IP - Das ist die IP-Adresse der Datenbank für Ihre vtiger-Installation. - -
-
-
-Vtiger Datenbankname - Dies ist die Datenbank-Namen für Ihre Datenbank vtiger. - -
-
-
-Vtiger Datenbank Login - Das ist die Benutzernamen verwendet, um sich in Ihrem vtiger-Datenbank. - -
-
-
-Vtiger Passwort für die Datenbank - Dies ist das Passwort für die Anmeldung in Ihrem vtiger-Datenbank. - -
-
-
-Vtiger URL - Das ist die URL oder Website-Adresse, um an Ihr vtiger-Installation. - - -



- -VICIDIAL_STATUSESTABELLE

-
-
-Durch den Gebrauch von Systemstatus, können Sie Status haben, diefür Kampagne und Ingruppe bestehen. Der Status muß 1-6 Buchstabenlang sein, muß die Beschreibung 2-30 Buchstaben lang sein undauswählbar definiert, ob es oben in VICIDIAL als Mitteleinteilungzeigt. Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend. Die Kategorie Wahl erlaubtIhnen, einige Status in ein catogy zu gruppieren, das fürstatistische Analyse verwendet werden kann. - - -



- -VICIDIAL_STATUS_CATEGORIESTABELLE

-
-
-Durch den Gebrauch von Systemstatuskategorien, können Sie diezusammen gruppieren Status, um statistische Analyse auf einer GruppeStatus zuzulassen. Die Kategorie Identifikation muß 2-20 Buchstabenlang ohne Räume sein, muß der Name 2-50 Buchstaben lang sein, istdie Beschreibung wahlweise freigestellt und TimeonVDAD Anzeigedefiniert, ob dieser Status einer von bis zu 4 Status ist, die auf derZeit auf VDAD Realzeitreport errechnet werden und angezeigt werdenkönnen. Der Verkauf Kategorie und Dead Lead Kategorie sind auch die von den US-Vorschlag, wenn die Analyse Liste Statistiken. - - - 0) - { +
+
+ Filter SQL - Dieses ist, wohin Sie das SQL Frage Fragment setzen,das Sie vorbei filtern möchten anfangen nicht, oder Ende mit UND, dasdurch den Zufuhrbehälter cron Index automatisch hinzugefügt wird.eine Beispiel SQL Frage, die hier arbeiten würde, ist called_count \4 und called_count \. + + + + +



- VICIDIAL QC-Status-Codes

-
+ VICIDIAL_AnrufzeitenTABELLE

+

- Das Quality Control QC-System innerhalb VICIDIAL hat seinen eigenen Satz der Status-Codes, getrennt von denen der Call-Handling Funktionen der VICIDIAL. QC statuse Codes muss zwischen 2 und 8 Zeichen lang sein und keine Sonderzeichen wie Leerzeichen oder Doppelpunkt. Die QK-Status-Code Beschreibung muss zwischen 2 und 30 Zeichen lang sein. - Anrufzeit ID -
Dies ist der kurze Name von einer Vicidial Anrufzeit Definition. Es muss ein eindeutiger Bezeichner sein. Leerzeichen und Punkte sind in diesem Feld nicht erlaubt. Maximal 10 Zeichen, mindestens 2. + +
+
+ Anrufzeit Name - Dies ist ein besser beschreibender Name für die Anrufzeit Definition. Es ist eine kurze Zusammenfassung der Anrufzeit Definition. Maximal 30 Zeichen, mindestens 2. + +
+
+ Anrufzeit Kommentare - Hier können Sie Kommentare für eine Vicidial Anrufzeit Definition wie -10 bis 14 Uhr mit eigenen Beschränkungen für das angerufene Land- machen. Maximal 255 Zeichen. + +
+
+ Standard Start and Stop Zeiten - Dies ist die Standardzeit, zu der Anrufe innerhalb der Anrufzeitdefinition gestartet oder gestoppt werden dürfen, wenn die Wochentag Startzeit nicht definiert ist. 0 ist Mitternacht. Um Anrufe komplett zu verhindern den Wert auf 2400 und die Standard Stopzeit ebenfalls auf 2400 setzen. Um Anrufe für 24 Stunden am Tag zu erlauben die Startzeit auf 0 und die Stopzeit auf 2400 setzen. + +
+
+ Wochentag Start and Stop Zeit - Dies sind die speziellen Zeiten pro Tag, welche für die Anrufzeit Definition gesetzt werden können. Es gelten die selben Regeln wie für Start und Stop Zeiten. + +
+
+ Land Anrufzeit Definition - Dies ist die Liste der landspezifischen Anrufzeit Definitionen, die von dieser Anrufzeit Definition beachtet werden. + +
+
+ Landesspezifische Anrufzeit Definition - Dies ist der zwei Buchstaben Code für das Land, für das die Anrufzeit Definition gilt. Damit diese ausgeführt wird muss die in der Kampagne gesetzte lokale Anrufzeit diese landesspezifische Anrufzeit Aufzeichnung enthalten, genauso wie alle anzurufenden Anschlüsse den landesspezifischen zwei Buchstaben Code enthalten müssen . + + + + +



+ + VICIDIAL_SHIFTSTABELLE

+
+
+ Shift-ID - Das ist der kurze Name der Vicidial Shift Definition. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder Satzzeichen für dieses Feld. max 20 Zeichen, mindestens 2-Zeichen. + +
+
+ Shift Name - Dies ist eine beschreibende Bezeichnung der Shift Definition. Dies ist eine kurze Zusammenfassung der Shift Definition. max 50 Zeichen, mindestens 2-Zeichen. + +
+
+ Start Time Shift - Es ist an der Zeit, dass die Kampagne Schicht beginnt. Darf nur Zahlen, 9:30 AM wäre 0930 und 5:00 PM wäre 1700. + +
+
+ Shift Länge - Das ist die Zeit in Stunden und Minuten, dass die Kampagne Schicht dauert. 8 Stunden wäre 08:00 Uhr und 7 Stunden und 30 Minuten würde 07:30. + +
+
+ Shift Wochentage - In diesem Abschnitt sollten Sie die Tage der Woche, dass diese Verschiebung ist aktiv. + + + + + +



+
+ Audio-Store - Dieses Dienstprogramm ermöglicht es Ihnen, Audio-Dateien-Upload auf den Webserver, so dass sie auf alle ViciDial Server in einer Multi-Server-Cluster verteilt werden. Ein wichtiger Hinweis, nur zwei Audio-Dateitypen funktionieren wird,. Wav-Dateien, die PCM 16bit und 8k. GSM-Dateien, die 8bit 8k sind. Bitte überprüfen Sie, dass Ihre Dateien vor dem Upload korrekt formatiert sind sie hier. + + + +



+ + VICIDIAL_MUSIC_ON_HOLDTABELLE

+
+
+ Music On Hold ID - Dies ist der Kurzname eines Music On Hold Eintrag. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder sonstige Zeichen für dieses Feld. max 100 Zeichen, mindestens 2 Zeichen. + +
+
+ Music On Hold Name - Dies ist ein aussagekräftiger Name des Music On Hold Eintrag. Dies ist eine kurze Zusammenfassung der Music On Hold Kontext und wird als Kommentar in der musiconhold vicidial.conf-Datei zu zeigen. max 255 Zeichen, mindestens 2 Zeichen. + +
+
+ Aktive - Diese Option ermöglicht es Ihnen, die Wartemusik Eintrag aktiv oder inaktiv gesetzt. Inaktive wird entfernen Sie den Eintrag aus der conf-Dateien. + +
+
+ Zufälliger Reihenfolge - Diese Option ermöglicht es Ihnen, die Wiedergabe der Audio-Dateien in zufälliger Reihenfolge zu definieren. Wenn auf N dann die festgelegten Reihenfolge verwendet werden. + +
+
+ Filename - Um eine neue Audiodatei auf eine Music On Hold Eintrag hinzufügen, muss die Datei zuerst in der Audio zu speichern, dann können Sie die Datei auszuwählen und klicken Sie legt ihn in die Datei-Liste aufzunehmen. Music on Hold ist einmal pro Minute aktualisiert, wenn es zu Veränderungen vorgenommen. Alle Dateien, die nicht in der Wartemusik-Eintrag, der in der Musik präsentieren zu halten Ordner aufgeführt sind, werden gelöscht. + + + + +



+ + VICIDIAL_TTS_PROMPTSTABELLE

+
+
+ TTS-ID - Dies ist der Kurzname eines TTS-Eintrag. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder sonstige Zeichen für dieses Feld. max 50 Zeichen, mindestens 2 Zeichen. + +
+
+ TTS Name - Dies ist um einen beschreibenden Namen des TTS-Eintrag. Dies ist eine kurze Zusammenfassung der TTS-Definition. max 100 Zeichen, mindestens 2 Zeichen. + +
+
+ Aktive - Diese Option ermöglicht es Ihnen, die TTS-Eintrag aktiv oder inaktiv gesetzt. + +
+
+ TTS Text - Dies ist der eigentliche Text To Speech Datenfeld Cepstral, die für die Erstellung der Audio-Datei gesendet wird, um dem Kunden gespielt werden. Sie können Speech Synthesis Markup Language-SSML-Einsatz in diesem Bereich, zum Beispiel, <break time='1000ms'/> für 1 Sekunde Pause. Sie können auch mehrere Variablen wie Vorname, Nachname und Titel wie ViciDial Variablen wie Sie in einem Skript: - A - first_name - B -. Hier ist eine Liste der verfügbaren Variablen:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAILTABELLE

+
+
+ Voicemail-ID - Dies ist die Kennung der alle Zahlen dieses Postfach. Das darf nicht sein, ein Duplikat eines vorhandenen Voicemail-ID oder die Voicemail-ID eines Telefons auf dem System, mindestens 2 Zeichen. + +
+
+ Name - Dies ist der Name im Zusammenhang mit dieser Voicemail-Box. max 100 Zeichen, mindestens 2 Zeichen. + +
+
+ Password - Dies ist das Kennwort, das verwendet wird, um Zugriff auf die Voicemail-Box beim Wählen Nachrichten zu maximal 10 Zeichen, mindestens 2 Zeichen überprüfen zu gewinnen. + +
+
+ Aktive - Diese Option ermöglicht es Ihnen, die Voicemail-Box aktiv oder inaktiv gesetzt. Ist das Kontrollkästchen aktiviert kann man nicht die Nachrichten auf sie und man kann nicht kontrollieren Einträge in ihr. + +
+
+ Mit dieser Einstellung können Sie die Voicemail-Nachrichten geschickt haben eine E-Mail-Konto, wenn Ihr System so eingerichtet ist, senden E-Mail. Wenn dieses Feld leer ist, dann wird keine E-Mails verschickt werden. + +
+
+ Löschen Voicemail Nach E-Mail - Mit dieser Einstellung können Sie die Voicemail-Nachrichten aus dem System gelöscht haben, nachdem sie per E-Mail haben gewesen. Der Standardwert ist N. + + + + + 0) + { + ?> + +



+ + VICIDIAL LISTE LADEVORRICHTUNG FUNKTIONALITÄT

+
+
+ Die VICIDIAL grundlegende Netz-gegründete Leitung Ladevorrichtung isteinfach entworfen, um eine Leitung Akte zu nehmen - bis zu 8MB in derGröße - die entweder Vorsprung oder das abgegrenzte Rohr und es indie vicidial_list Tabelle zu laden ist. Die Leitung Ladevorrichtungläßt auffangen das Wählen zu und TXT- deutlich Text, CSV-Komma getrennte Werte und XLS- übertreffen Akte Formate. Die LeitungLadevorrichtung tut nicht Datenprüfung, aber sie erlaubt Ihnen, aufDuplikate in sich, innerhalb der Kampagne oder innerhalb des gesamtenSystems zu überprüfen. Auch überprüfen Sie, ob Sie die Listeerstellt haben, daß diese Leitungen darunter sein sollen, damit Siesie benutzen können. Ist hier eine Liste von auffängt inihrem korrekten Auftrag für die Leitung Akten: +
    +
  1. Verkäufer-Leitung Code - zeigt oben im Verkäufer, den Identifikationvom GUI auffangen +
  2. Quellenprogramm - interner Gebrauch nur für admins und DBAs +
  3. Liste Identifikation - die Liste Zahl, die diese Leitungen obendarunter zeigen +
  4. Telefon-Code - das Präfix für die Telefonnummer - 1 für US, 01144für Großbritannien, 01161 für AUS, usw. +
  5. Telefonnummer - muß mindestens 8 Stellen lang sein +
  6. Titel - Titel dem Kunden - Herr Ms Mrs, usw.... +
  7. Vorname +
  8. Mittlere Initiale +
  9. Letzter Name +
  10. Adresse Linie 1 +
  11. Adresse Linie 2 +
  12. Adresse Linie 3 +
  13. Stadt +
  14. Zustand - begrenzt auf 2 Buchstaben +
  15. Provinz +
  16. Postcode +
  17. Land +
  18. Geschlecht +
  19. Geburtsdatum +
  20. Wechselnde Telefonnummer + Sicherheit Phrase +
  21. Anmerkungen +
+ +
ANMERKUNGEN: Die übertreffenleitung Ladevorrichtung Funktionalitätwird durch eine Reihe Perl Indexe ermöglicht und muß eine richtigzusammengebaute /etc/astguiclient.conf Akte im Platz auf dem webserver haben. Auch ein Paarperl Module müssen für sie, um außerdemzu arbeiten - OLE-Storage_Lite-Storage_Lite undVerteilungsbogen-ParseExcel geladen werden. Sie können aufLaufzeitfehler in diesen überprüfen, indem Sie Ihre Apache error_logAkte betrachten. Auch für Doppelprüfungen gegen gampaignverzeichnet, die Liste, die neue Leitungen hat, in es einzusteigenmuß im System verursacht werden, bevor Sie beginnen, die Leitungen zuladen. + + + + +



+ + + + + + + TELEFON-TABELLE

+
+
+ Telefonverlängerung - Dieses fangen ist auf, wohin Sieden Telefonnamen setzen, während er scheint, nicht einschließlichdas Protokoll oder den Schrägstrich am Anfang mit einem Sternchenzuversehen. Z.B.: für das SIP Telefon SIP\/test101 würde dieTelefonverlängerung test101 sein. Auch denn Telefone IAX2 stellen Siesicher, daß Sie den vollen Telefonnamen verwenden:IAX2\/IAXphone1@IAXphone1 würde IAXphone1@IAXphone1 sein. Für ZapTelefone sicherstellen, daß Sie die volle Führung setzen: Zap/25-1würde 25-1 sein. Eine andere Anmerkung, stellen sicher, daß Sie dasProtokoll unten richtig für Ihre Art des Telefons einstellen. + +
+
+
+ Dial Plan Zahl - This field is for the number you dial to have the phone ring. This number is defined in the extensions.conf file of your Asterisk server + +
+
+
+ Voicemail Kasten - Dieses fangen ist für den voicemailKasten auf, daß die Anzeigen für zum Benutzer dieses Telefons gehen.Wir verwenden dieses, um auf voicemail Anzeigen und auf den Benutzerzu überprüfen, zum in der Lage zuSEIN, die VOICEMAIL Taste aufastGUIclient APP zu benutzen. + +
+
+
+ Outbound CallerID - Dieses fangen ist auf, wo Sie diecallerID Zahl eintragen würden, die Sie möchten, daß auf outboundAnrufe gesetzter Form der astguiclient Netz-Klient aussieht. Diesesarbeitet nicht auf RBS, non-PRI, T1/Eß. + +
+
+
+ Telefon-IP address - Dieses fangen ist für IP addressdes Telefons auf, wenn es ein VOIP Telefon ist. Dieses istauffangen ein wahlweise freigestelltes + +
+
+
+ Computer-IP address - Dieses fangen ist für IP addressComputer des Benutzers auf. Dieses ist auffangen einwahlweise freigestelltes + +
+
+
+ Bediener IP - Dieses Menü ist, wo Sie vorwählen, dem Bedienerdas Telefon auf aktiv ist. + +
+
+
+ LOGON - Der LOGON gewöhnt ge$$$WESEN für den Telefonbenutzer anLOGON zu den Klient Anwendungen. + +
+
+
+ Kennwort - Das Kennwort gewöhnt ge$$$WESEN für denTelefonbenutzer an LOGON zu den Klient Anwendungen. Wichtig ist dies das Passwort nur für den Agenten Weboberfläche Telefon anmelden, um die sip.conf oder iax.conf vergessen, oder geheim zu ändern, für dieses Telefon-Gerät müssen Sie die Conf-Datei Secret Feld weiter unten auf dieser Seite ändern. + +
+
+
+ Status - Der Status des Telefons im System, die AKTIVEN und ADMINdürfen, damit GUI Klienten arbeiten. Admin erlaubt Zugang zu dieseradministrativen Web site. Alle weiteren Status erlauben nicht GUI oderAdmin Netzzugang. + +
+
+
+ Aktives Konto - Ob das Telefon aktiv ist, es in die Liste im GUIKlienten einzusetzen. + +
+
+
+ Telefon-Art - Lediglich für administrative Anmerkungen. + +
+
+
+ Voller Name - Verwendet durch das GUIclient in der Liste deraktiven Telefone. + +
+
+
+ Firma - Lediglich für administrative Anmerkungen. + +
+
+
+ Telefon E-Mail - Die E-Mail-Adresse im Zusammenhang mit diesem Telefon-Eintrag. Dies ist für die Mailbox-Einstellungen. + +
+
+ Löschen Voicemail Nach E-Mail - Mit dieser Einstellung können Sie die Voicemail-Nachrichten aus dem System gelöscht haben, nachdem sie per E-Mail haben gewesen. Der Standardwert ist N. + +
+
+
+ Abbildung - Nicht schon eingeführt. + +
+
+
+ Neue Anzeigen - Zahl der neuen voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener. + +
+
+
+ Alte Anzeigen - Zahl der alten voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener. + +
+
+
+ Klient Protokoll - Das Protokoll, das das Telefon verwendet, anden Sternchenbediener anzuschließen: Sip, IAX2, Zap. Auch, es gibtexternal für Remotevorwahlknopfzahlen oder GeschwindigkeitVorwahlknopfzahlen, die Sie als Telefone verzeichnen möchten. + +
+
+
+ Lokales GMT - Der Unterschied Greenwich-Zeit von oder VON DERZULU-Zeit, in der das Telefon lokalisiert wird. STELLEN SIE NICHT AUFTAGESLICHT-SPARUNGEN ZEIT EIN. Dieses wird durch die VICIDIAL Kampagneverwendet, um die Zeit und Kunde Zeit genau anzuzeigen. + +
+
+
+ Telefon Ring Timeout - Dies ist die Zeit, in Sekunden, die das Telefon in der dialplan, bevor der Anruf an die Voicemail-Ring wird. Der Standardwert ist 60 Sekunden. + +
+
+
+ Manager-LOGON - Dieses ist der LOGON, dem die GUI Klienten fürdieses Telefon pflegen, die Datenbank zugänglich zu machen, in derdie Bedienerdaten liegen. + +
+
+
+ Manager-Geheimnis - Dieses ist das Kennwort, dem die GUI Klientenfür dieses Telefon pflegen, die Datenbank zugänglich zu machen, inder die Bedienerdaten liegen. + +
+
+
+ VICIDIAL Rückstellung Benutzer - Dieses soll einen Default-Wertin den VICIDIAL Benutzer legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Benutzer. + +
+
+
+ VICIDIAL Rückstellung Durchlauf - Dieses soll einen Default-Wertin das VICIDIAL Kennwort legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Durchlauf. + +
+
+
+ VICIDIAL Rückstellung Kampagne - Dieses soll einen Default-Wertin die VICIDIAL Kampagne legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keine Kampagne. + +
+
+
+ Park Exten - Dieses ist die Rückstellung Parkenverlängerung fürdie Klient apps. Überprüfen Sie, daß ein unterschiedliches manarbeitet, bevor Sie dieses ändern. + +
+
+
+ Conf Exten - This is the default Conference park extension for the client apps. Verify that a different one works before you change this. + +
+
+
+ VICIDIAL Park Exten - Dieses ist die RückstellungParkenverlängerung für VICIDIAL Klient APP. Überprüfen Sie, daßein unterschiedliches man arbeitet, bevor Sie dieses ändern. + +
+
+
+ VICIDIAL Park-Akte - Dieses ist der Rückstellung VICIDIALPark-Verlängerung Dateiname für die Klient apps. Überprüfen Sie,daß ein unterschiedliches man arbeitet, bevor Sie dieses ändern, daszu 10 Buchstaben begrenzt wird. + +
+
+
+ Überwachen Sie Präfix - This is the dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records. + +
+
+
+ Aufnahme Exten - Dieses ist die dial plan Verlängerung für dieAufnahmeverlängerung, die verwendet wird, um in meetme Konferenzen zufallen, um sie zu notieren. Es dauert normalerweise bis zu einerStunde, wenn es nicht gestoppt wird, überprüft mit extensions.confAkte, bevor es ändert. + +
+
+
+ VMAIL Hauptexten - Dieses ist die dial plan Verlängerung, diegeht, Ihr voicemail. zu überprüfen, überprüfen mit extensions.confAkte, bevor es ändert. + +
+
+
+ VMAIL Dump Exten - Dieses ist das dial plan Präfix, das verwendetwird, um Anrufe direkt zum voicemail eines Benutzers von einemPhasenanruf in der astGUIclient APP zu schicken, überprüfen mitextensions.conf Akte, bevor es ändert. + +
+
+
+ Exten Kontext - Dies ist die Wählplan Zusammenhang, dass der Agent-Anwendungen, wie ViciDial, in erster Linie zu verwenden. Es wird davon ausgegangen, dass alle Zahlen, die durch den Client-Anwendungen gewählt diesem Zusammenhang verwenden, so ist es eine gute Idee, um sicherzustellen, das ist die am weitesten Kontext möglich ist. extensions.conf überprüfen, ob die Datei vor dem Wechsel. Standardmäßig ist der Standard -. + +
+
+
+ Telefon Kontext - Dies ist die Wählplan Zusammenhang, dass dieses Handy für die Einwahl zu verwenden. Wenn Sie ein Call-Center ausgeführt werden und Sie nicht möchten, dass Ihre Mitarbeiter in der Lage sein zu wählen, die außerhalb des ViciDial Anwendung zum Beispiel, dann würden Sie dieses Feld auf ein dialplan Zusammenhang, dass es nicht gibt, so etwas wie agent-nodial. Standardmäßig ist der Standard -. + +
+
+
+ Conf-Datei Secret - Das ist das Geheimnis, oder das Passwort für das Telefon in der IAX oder SIP-auto-generated conf-Datei für dieses Telefon. Der Grenzwert beträgt 20 alphanumerischen Zeichen Bindestrich und Unterstrich akzeptiert. Default is test. + +
+
+
+ DTMF senden Führung - Dieses ist die Führung Zeichenkette, diebenutzt wird, um DTMF Töne in meetme Konferenzen von den Klient appszu senden. Überprüfen Sie, daß und Kontext mit der extensions.confAkte exten. + +
+
+
+ Outbound Anruf-Gruppe - Dieses ist die Kanalgruppe, daß outboundAnrufe von diesem Telefon aus gesetzt werden. Es gibt Programme einesPaares in den Klient apps, die dieses verwenden. Für Zap Führungen,die Sie etwas wie Zap/g2 verwenden möchten, denn Stämme IAX2 Siedas volle IAX Präfix wie IAX2/VICItest1:secret@10.10.10.15:4569würden verwenden wollen. Überprüfen Sie die Stämme mit derextensions.conf Akte, es ist normalerweise, was Sie als die globaleVariable des STAMMES an der Oberseite der Akte definiert haben. + +
+
+
+ Datenbanksuchroutine-Position - Dieses ist auf nur UNIX/LINUXKlienten, der absolute Weg zu Mozilla anwendbar, oder FirefoxDatenbanksuchroutine auf der Maschine überprüfen dieses, indem siemanuell es ausstößt. + +
+
+
+ Anbringen Sie Verzeichnis - Dieses ist der Platz, in dem dieastGUIclient und astVICIDIAL Indexe auf Ihrer Maschine sind. FürWin32 sollte es etwas wie C:\\AST_VICI sein und für UNIX sollte esetwas wie /usr/local/perl_TK. sein überprüft dieses manuell. + +
+
+
+ CallerID URL - Dieses ist die Netzadresse der Seite, die benutztwird, um kundenspezifische callerID Nachschlagen zu tun, Rückstellungprüfen, dieadresse ist:http://astguiclient.sf.net/test_callerid_output.php + +
+
+
+ VICIDIAL Rückstellung URL - Dieses ist die Netzadresse der Seite,die benutzt wird, um kundenspezifische VICIDIAL Netz-Formfragen zutun, Rückstellung prüfen, dieadresse ist:http://astguiclient.sf.net/test_VICIDIAL_output.php + +
+
+
+ Anruf-Protokollierung - Dieses wird eingestellt, um auszurichten,wenn die call_log.agi Akte im Platz in der extensions.conf Akte füralles outbound ist und die Verlängerungen des Hängezustands ' h ',zum alle zu loggen benennt. Diese sollte 1, weil es für vieleastGUIclient und DIE VICIDIAL manditory ist Eigenschaften immer sein,zum richtig zu arbeiten. + +
+
+
+ Benutzer-Schaltung - Set to true to allow user to switch to another user account. NOTE: If user switches they can initiate recording on the new user's phone conversation + +
+
+
+ Conferencing - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, Konferenzanrufe mit bis zu sechs externen Linien zubeginnen. + +
+
+
+ Admin Hängezustand - um Benutzer zu erlauben auszurichten Satz,zum Hängezustand irgendeine Linie am Willen durch astGUIclient in derLage zuSEIN. Gute Idee, diesem für Admin Benutzer nur zuermöglichen. + +
+
+
+ Admin Straßenräuber - Stellen Sie ein, um auszurichten, umBenutzer zu erlauben, in der Lage zuSEIN, zu ihrer Verlängerung jedemögliche Linie zu ergreifen und umzuadressieren am Willen durchastGUIclient. Gute Idee, diesem für Admin Benutzer nur zuermöglichen. Aber ist für Manager sehr nützlich. + +
+
+
+ Admin Monitor - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, in der Lage zuSEIN, zu ihrer Verlängerung jede möglicheLinie zu ergreifen und umzuadressieren am Willen durch astGUIclient.Gute Idee, diesem für Admin Benutzer nur zu ermöglichen. Aber istfür Manager und als Training Werkzeug sehr nützlich. + +
+
+
+ Parkschaltung - um Benutzer zu erlauben auszurichten der Satz, inder Lage zuSEIN zu parken ersucht um astGUIclient Einfluß, von jedemanderen astGUIclient Benutzer auf dem System aufgehoben zu werden.Anrufe bleiben auf Einfluß für bis zu einen halbe Stunde dannHängezustand. Normalerweise ermöglicht für alle. + +
+
+
+ Updater Überprüfung - Stellen Sie ein, um auszurichten, um einepopup Warnung anzuzeigen, die die updater Zeit nicht in 20 Sekundengeändert hat. Nützlich für Admin Benutzer. + +
+
+
+ Af Protokollierung - Stellen Sie ein, um auszurichten, um vieleTätigkeiten des astGUIclient Verbrauches in einer Textakte auf demComputer des Benutzers zu protokollieren. + +
+
+
+ Warteschlange ermöglichte - um Klient apps auszurichten Satz dasSternchen-zentrale Warteschlange System benutzen zu lassen. Erfordertfür VICIDIAL und für alle Benutzer empfohlen. + +
+
+
+ CallerID Popup - Stellen Sie ein, um auszurichten, um die Zahlenzuzulassen, die in der extensions.conf Akte definiert werden, umCallerID popup Schirme zu schicken den astGUIclient Benutzern. + +
+
+
+ VMail Taste - Stellen Sie ein, um auszurichten, um die VOICEMAILTaste anzuzeigen und die Anzeigen zählen Anzeige auf astGUIclient. + +
+
+
+ Schnell erneuern Sie - Stellen Sie ein, um auszurichten, um einerneuen Rate von zu ermöglichen erneuern von den Anrufinformationenfür das astGUIclient. Rückstellung arbeitsunfähige Rate ist 1000zweite des Ms.1. Kann Anlagen-Belastung erhöhen, wenn Sie diese Zahlsenken. + +
+
+
+ Schnell erneuern Sie Rate - in den Millisekunden. Nur verwendet,wenn schnell, erneuern Sie wird ermöglicht. Rückstellungarbeitsunfähige Rate ist 1000 zweite des Ms.1. Kann Anlagen-Belastungerhöhen, wenn Sie diese Zahl senken. + +
+
+
+ Persistant MySQL - Wenn er ermöglicht wird, bleibt derastGUIclient Anschluß angeschlossen, anstatt, jede Sekundeanzuschließen. Nützlich, wenn Sie ein schnelles die eingestellteRate erneuern lassen. Sie erhöht die Zahl Anschlüssen auf IhrerMySQL Maschine. + +
+
+
+ Selbstvorwahlknopf-folgende Zahl - wenn er ermöglicht wird,wählt der VICIDIAL Klient die folgende Nummer auf der Listeautomatisch nach Einteilung eines Anrufs, es sei denn sie vorwählten"auf, dem Einteilung Schirm zu wählen zu stoppen". + +
+
+
+ Stoppen Sie Rec nach jedem Anruf - wenn er ermöglicht wird,stoppt der VICIDIAL Klient, was Aufnahme weitergeht, nachdem jederAnruf dispositioned gewesen ist. Nützlich, wenn Sie eine MengeAufnahme tun oder Sie benutzen eine Netzform, um Aufnahme auszulösen. + +
+
+
+ Ermöglichen Sie SIPSAK Anzeigen - wenn er ermöglicht wird, schicktder Bediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Eigenschaft arbeitet nurmit SIP Telefonen und erfordert sipsak Anwendung, auf das web serverangebracht zu werden. Rückstellung ist 0. + +
+
+
+ DBX Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an. + +
+
+
+ DBX Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen. + +
+
+
+ DBX Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron. + +
+
+
+ DBX Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234. + +
+
+
+ DBX Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306. + +
+
+
+ DBY Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ Alias-ID - Die ID des Alias verwendet, um für Telefon-Lastenausgleich Logins. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein. + +
+
+
+ Alias-Name - Der Name für die Bezeichnung eines Handys Alias, muss zwischen 2 und 50 Zeichen lang sein. + +
+
+
+ Telefone Logins List - Das Komma getrennt Liste der Telefonnummern Logins verwendet, wenn ein Agent meldet sich mit Telefon Lastenausgleich Logins. Der Agent-Anwendung finden Sie die Aktive Server mit den wenigsten Makler eingeloggt ist und ein Anruf aus, dass der Server-Agent bei der Anmeldung. + +
+
+
+ Vorlagen-ID - Das ist die conf Datei template-ID, die dieses Telefon-Eintrag wird für die Asterisk-Einstellungen. Standard ist - KEINE --. + +
+
+
+ Conf Override Settings - If populated, and the Vorlagen-ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Alias-ID-Gruppe - die ID der Gruppe Alias von Agenten wählen Sie fordert von der VICIDIAL Agent-Schnittstelle mit verschiedenen Caller-IDs. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein. + +
+
+
+ Alias-Name-Fraktion - Der Name für die Bezeichnung einer Gruppe Alias, muss zwischen 2 und 50 Zeichen lang sein. + +
+
+
+ Anrufer-ID-Nummer - Die Caller-ID-Nummer, die in dieser Gruppe Alias. Muss nur Ziffern. + +
+
+
+ Anrufer-ID Name - Die Anrufer-ID-Namen ein, können mit dieser Gruppe Alias. Soweit wir wissen, wird dies nur funktionieren, in Kanada über den PRI-Leitungen und mit einer Schleife IAX Stamm durch Asterisk. + + + + +



+ + BEDIENER-TABELLE

+
+
+ Bediener Identifikation - Dieses fangen ist, wohin Sieden Sternchenbedienernamen setzen, doesnt müssen ein amtliches GebietUnterseeboot, gerade ein Spitzname sein auf, um den Bediener zu denAdmin Benutzern zu kennzeichnen. + +
+
+
+ Bediener-Beschreibung - auffangen, wo Sie eine kleine Phraseverwenden, um den Sternchenbediener zu beschreiben. + +
+
+
+ Bediener-IP address - auffangen, wo Sie das Netz-IP addressdes Sternchenbedieners setzten. + +
+
+
+ Aktiv - Stellen Sie ein, ob der Sternchenbediener aktiv oderunaktiviert ist. + +
+
+
+ System Load - Diese beiden Statistiken zeigen, die loadavg ein System mal 100 und die CPU-Auslastung Anteil des Bediener und wird jede Minute aktualisiert. Die loadavg sollte im Durchschnitt unter 100 multipliziert mit der Anzahl der CPU-Kernen Ihr System hat, für eine optimale Leistung zu erzielen. Die CPU-Auslastung Prozentsatz sollte Aufenthalt unter 50 für eine optimale Leistung zu erzielen. + +
+
+
+ Live-Channels - Dieses Feld zeigt die aktuelle Anzahl der Asterisk-Kanäle, die sich live über das System jetzt. Es ist wichtig zu beachten, dass die Anzahl der Kanäle Asterisk ist in der Regel viel höher als die tatsächliche Zahl der Anrufe auf einem System. Dieses Feld wird einmal pro Minute aktualisiert. + +
+
+
+ Disk Usage - Dieses Feld wird die Nutzung der Festplatte für jede Partition auf diesem Server. Dieses Feld wird einmal pro Minute aktualisiert. + +
+
+
+ Sternchen-Version - Stellen Sie die Version des Sternchens ein,die Sie auf diesen Bediener angebracht haben. Beispiele: ' 1.2 ', '1.0.8 ', ' 1.0.7 ', ' CVS_HEAD ', ' WIRKLICH ALTES ', usw.... Dieseswird verwendet, weil Versionen 1.0.8 und 1.0.9 eine andere Methode desBeschäftigens Local/ Führungen, eine Wanze, die in CVS v1.0geregelt worden ist, und Notwendigkeit, anders als behandelt zu werdenhaben, wenn die Behandlung ihres Local/ lenkt. Auch gegenwärtigesCVS_HEAD und der 1.2 Freigabebaumgebrauch unterschiedlicher Managerund Befehl gaben aus, also muß es anders als außerdem behandeltwerden. + +
+
+
+ Maximale VICIDIAL Stämme - Dieses fangen feststellt diemaximale Zeilenzahl auf, um denen der VICIDIAL Auto-dialer versucht,diesen Bediener zu ersuchen. Wenn Sie zwei volle PRI Tß VICIDIALingauf einem Bediener einweihen möchten dann, würden Sie dieses bis 46einstellen. Rückstellung ist 96. + +
+
+
+ Max Calls pro Sekunde - Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Ausgang Auto-Einwahl-Script auf diesem Server pro Sekunde. Muss zwischen 1 und 100. Der Standardwert ist 20. + +
+
+
+ Telnet Wirt - Dieses ist die Adresse oder der Name desSternchenbedieners und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Wenn sie auf den Sternchenbedienerlaufen, dann ist die Rückstellung von ' localhost ' fein. + +
+
+
+ Telnet Tor - Dieses ist das Tor des SternchenbedienerManageranschlußes und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Die Rückstellung von ' 5038 ' istfein für einen Standard anbringen. + +
+
+
+ Manager-Benutzer - Das username oder der LOGON verwendeten, an denSternchenbedienermanager genericly anzuschließen. Rückstellung ist 'cron ' + +
+
+
+ Manager-Geheimnis - Das Geheimnis oder das Kennwort verwendeten,an den Sternchenbedienermanager genericly anzuschließen.Rückstellung ist ' 1234 ' + +
+
+
+ Manager-Update-Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für dieUpdateindexe optimiert wurde. Fallen Sie ist ' updatecron ' undannimmt das gleiche Geheimnis wie der generische Benutzer zurück. + +
+
+
+ Manager hören Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die nur auf Ausgang hören. Fallen Sie ist 'listencron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück. + +
+
+
+ Manager senden Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die dem Manager nur Tätigkeiten schicken. Fallen Sieist ' sendcron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück. + +
+
+
+ Conf-Datei Secret - Das ist das Geheimnis, oder das Passwort für den Server in die IAX automatisch generierte conf für diesen Server auf anderen Servern benötigt. Der Grenzwert beträgt 20 alphanumerischen Zeichen Bindestrich und Unterstrich akzeptiert. Default is test. + +
+
+
+ Bediener GMT versetzt - Der Unterschied bezüglich der Stunden vonder GMT Zeit eingestellt nicht auf Tageslicht-Sparung-Zeit desBedieners. Rückstellung ist ' - 5 ' + +
+
+
+ VMail Dump Exten - Das Verlängerung Präfix verwendet auf diesemBediener, um Anrufe direkt durch agc zu einem spezifischen voicemailKasten zu schicken. Rückstellung ist ' 85026666666666 ' + +
+
+
+ VICIDIAL ANZEIGE Verlängerung - Die Rückstellung Verlängerung,wenn keines in der Kampagne anwesend ist, Anrufe für VICIDIAL zumSelbstwählen zu schicken. Rückstellung ist ' 8365 ' + +
+
+
+ Rückstellung Kontext - Der Rückstellung dial plan Kontextverwendet für Indexe, die für diesen Bediener funktionieren.Rückstellung ist ' Rückstellung ' + +
+
+
+ System Leistung - die Einstellung dieser Wahl auf Y ermöglicht derProtokollierung von System Leistung Notfall für die Bedienermaschineeinschließlich Anlagen-Belastung, System Prozesse undSternchenführungen im Gebrauch. Rückstellung ist N. + +
+
+
+ Bediener-Maschinenbordbücher - die Einstellung dieser Wahl auf Yermöglicht der Protokollierung aller VICIDIAL bezogenen Indexe zuihren Textmaschinenbordbuchakten. Die Einstellung dieses auf N stopptSchreiben Maschinenbordbücher zu den Akten für diese Prozesse, auchdie Schirmprotokollierung des Sternchens ist untauglich, wenn diesesauf N eingestellt wird, wenn Sternchen begonnen wird. Rückstellungist Y. + +
+
+
+ AGI ausgegeben - die Einstellung dieser Wahl auf KEINE sperrt Ausgangvon allen VICIDIAL bezogenen AGI Indexen. Die Einstellung dieses aufSTDERR schickt das AGI, das zum Sternchen CLI ausgegeben wird. DieEinstellung dieses auf AKTE schickt den Ausgang zu einer Akte imMaschinenbordbuchverzeichnis. Die Einstellung dieses auf BEIDE schicktAusgang zum Sternchen CLI und zu einer Maschinenbordbuchakte.Rückstellung ist AKTE. + +
+
+
+ VICIDIAL Balance Wählen - dieses einstellend, fangen Sie zuY läßt den Bediener Balance Anrufe für Kampagnen in VICIDIAL legenauf, damit das definierte Vorwahlknopfniveau getroffen werden kann,selbst wenn es keine Mittel gibt, die in diese Kampagne auf diesemBediener geloggt werden. Rückstellung ist N. + +
+
+
+ VICIDIAL Balance Rang - In diesem Feld können Sie die Reihenfolge, in der dieser Server ist für das Gleichgewicht Einwahl verwendet werden, wenn Gleichgewicht Einwahl aktivieren gesetzt ist. Der Server mit dem höchsten Rang wird zuerst zu platzieren Balance füllen Anrufe verwendet. Der Standardwert ist 0. + +
+
+
+ VICIDIAL Balance Offlimits - diese Einstellung definiert die ZahlStämmen, um die VICIDIAL Balance nicht zu erlauben, die wählt, um zuverwenden. Z.B. wenn Sie haben, wird 40 maximale vicidial Stämme undBalance offlimits bis 10 eingestellt, die Sie nur in der LageSIND, 30Hauptluftlinien für VICIDIAL Balance das Wählen zu benutzen.Rückstellung ist 0. + +
+
+
+ Aufnahme Web-Link - Diese Einstellung erlaubt es Ihnen, sich über die Standard in der Anzeige der Aufnahme-Link im Admin-Web-Seiten. Der Standardwert ist SERVER_IP. + +
+
+
+ Alternate Recording Bediener IP - Diese Einstellung können Sie eine Server-IP oder andere Rechner-Namen ein, kann anstelle der server_ip in die Links zu den Aufnahmen in der Admin-Web-Seiten. Der Standardwert ist leer. + +
+
+
+ Aktive Server Asterisk - , wenn Asterisk läuft nicht auf diesem Server, oder, wenn VICIDIAL sollten nicht mit diesem Server, oder, wenn es nur mit diesem Server für andere Skripte wie die Be-Hopper Skript ausführen möchten, um dies zu N. Standard ist Y. + +
+
+
+ Aktive Agent Server - Das Setzen dieser Option wird die N-Agenten verhindern, dass auf diesem Server durch die vicidial Anbieters Bildschirm anmelden. Dies ist sehr nützlich, wenn Sie ein Telefon anmelden Lastenausgleich Setup. Der Standardwert ist Y. + +
+
+
+ Conf-Dateien erzeugen - Wenn Sie möchten, dass das System für die automatische Generierung von Sternchen conf-Dateien auf der Grundlage der Telefone Einträge, Träger Einträge und Load-Balancing-Setup in VICIDIAL dann dies auf Y. Der Standardwert ist Y. + +
+
+
+ Rebuild conf Dateien - Wenn Sie wollen, um einen Wiederaufbau der Asterisk conf-Dateien, oder wenn eines der Handys oder Carrier-Einträge geändert haben, dann sollte so eingestellt werden, dass Y. Nach der conf-Dateien wurden erzeugt und Asterisk hat wurden neu geladen, so wird diese Veränderung zu N. Voreingestellt ist Y. + +
+
+
+ Rebuild Music On Hold - Wenn Sie ein Wiederaufbau der Wartemusik-Dateien Gewalt oder wenn die Wartemusik Einträge oder Server-Einträge geändert haben, dann sollte dies auf Y., nachdem die Wartemusik-Dateien wurden synchronisiert und geladen gesetzt dann geändert werden, um N. Standard ist Y. + +
+
+
+ Klingt Update - Wenn Sie einen Scheck von Sound-Dateien auf diesem Server erzwingen wollen, und die zentrale Audio-Shop ist als ein System Einstellung aktiviert ist, wird dieses Feld ermöglicht die Töne Updater auf der nächsten Spitze der Minute ausführen. Jedes Mal, wenn eine Audio-Datei wird von der Web-Oberfläche wird automatisch auf Y für alle Server, Asterisk aktive haben hochgeladen. Der Standardwert ist N. + +
+
+
+ ViciDial Recording-Limit - Dieses Feld ist, wo Sie die maximale Anzahl der Minuten, die Aufzeichnung eines Anrufs von ViciDial eingeleitet werden kann gesetzt. Der Standardwert ist 60 Minuten. + +
+
+
+ Carrier Aktive Logging - Diese Einstellung erlaubt Ihnen, alle hangup Return-Codes für jede ausgehende Liste Wählen log Anrufe, die Sie platzieren. Der Standardwert ist N. + + + + + + +



+ + vicidial_conf_templatesTABELLE

+
+
+ Vorlagen-ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die conf Vorlage des gesamten Systems. + +
+
+
+ Template Name - Dies ist der beschreibende Name der Conf-Datei-Vorlage Eintrag. + +
+
+
+ Template Inhalt - Dieses Feld ist, wo können Sie in den Einstellungen, die von allen Telefonen und-oder Luftfahrtunternehmen, die für die Verwendung dieser Vorlage conf. Bereiche, die nicht in diesem Feld sind: geheim, accountcode, Konto, Benutzernamen und Mailbox. + + + + + +



+ + vicidial_server_carriersTABELLE

+
+
+ Carrier-ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die Träger für diesen speziellen Eintrag im gesamten System. + +
+
+
+ Carrier Name - Dies ist der beschreibende Name des Beförderers Eintrag. + +
+
+
+ Carrier Beschreibung - Dies ist in den Kommentaren des Sternchens conf-Dateien über den dialplan und Account-Einträge setzen. Maximal 255 Zeichen. + +
+
+
+ Anmeldung String - Dieses Feld ist, wo können Sie in die genaue String benötigt, der SIP-oder IAX-Konfigurations-Datei zu registrieren, um den Anbieter. Optional, aber dringend empfohlen, wenn Ihr durch die Registrierung. + +
+
+
+ Vorlagen-ID - Dieses optionale Feld ermöglicht es Ihnen, wählen Sie eine conf-Datei-Vorlage für dieses Luftfahrtunternehmen Eintrag. + +
+
+
+ Konto-Eintrag - Dieses Feld wird verwendet, wenn Sie nicht ausgewählt haben eine Vorlage zu verwenden, und es ist, wo können Sie in den spezifischen Einstellungen, die für diesen Träger. Wenn Sie sich in eingehenden Anrufen von diesem Luftfahrtunternehmen Stamm möchten Sie vielleicht die context = trunkinbound in diesem Bereich, so dass Sie verwenden können, der DID-Handling innerhalb VICIDIAL. + +
+
+
+ Protokoll - Mit diesem Feld können Sie festlegen, das Protokoll zu verwenden für die Carrier-Eintrag. Derzeit werden nur IAX-und SIP unterstützt werden. + +
+
+
+ Global String - Dieses optionale Feld können Sie die Definition einer globalen Variablen, die für die Träger in der dialplan. + +
+
+
+ Dialplan Eintrag - Dieses optionale Feld können Sie festlegen, eine Reihe von dialplan Einträge, die für diesen Träger. + +
+
+
+ Bediener IP - Dies ist der Server, dass dieser besondere Träger wird im Zusammenhang mit. + +
+
+
+ Aktive - Diese legt fest, ob der Träger wird in den automatisch generierten conf-Dateien oder nicht. + + + + + +



+ + KONFERENZTISCH

+
+
+ Konferenz-Zahl - Dieses fangen ist auf, wohin Sie diemeetme Konferenz dialpna Zahl setzen. Es wird auch empfohlen, daß diemeetme Zahl in meetme.conf diese Zahl für jede Eintragungzusammenbringt. Dieses ist für die Konferenzen in astGUIclient undwird für leave-3way-call Funktionalität in VICIDIAL verwendet. + +
+
+
+ Bediener IP - Das Menü, wo Sie den Sternchenbediener vorwählen,daß diese Konferenz eingeschaltet ist. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_TrunksTABELLE

+
+
+ VICIDIAL Bediener-Stämme erlaubt Ihnen, die gehenden Leitungeneinzuschränken, die auf diesem Bediener für die Kampagne benutztwerden, die auf einer Prokampagne Grundlage wählt. Sie haben dieWahl, zum einer spezifischen Zeilenzahl durch nur eine Kampagneverwendet zu werden aufzuheben,, sowie das Lassen dieser Kampagneüber seine reservierten Linien laufen in was Linien geöffnetbleiben, wie, lang an den Gruppenzeilen, die durch vicidial auf diesemBediener benutzt werden, sind kleiner als die Maximum VICIDIALStammeinstellung. Erlaubt Haben nicht irgendwelche dieserAufzeichnungen die Kampagne, die die Linie zuerst wählt, um da vieleLinien zu haben, während sie unter der Maximum VICIDIAL erhalten kannStammeinstellung. + + + + + +



+ + SYSTEM_SETTINGSTABELLE

+
+
+ Gebrauch Nicht-Lateinisch - diese Wahl erlaubt Ihnen, den NetzanzeigeIndex auf Buchstaben des Gebrauches UTF8 zurückzufallen und keinenfilternden Lateinisch-Buchstabefamilie regelmäßigen Ausdruck zu tunoder Formatierung anzuzeigen. Rückstellung ist 0. + +
+
+
+ Webroot schreibbar - diese Einstellung erlaubt Ihnen zu definieren, obTemperatur Akten und Authentisierung Akten in das webroot auf Ihr webserver gelegt werden sollten. Rückstellung ist 1. + +
+
+
+ VICIDIAL Mittel sperren Anzeige - diese fangen wirdverwendet, vorzuwählen auf, wann man einem Mittel zeigt, wann ihrLernabschnitt durch das System, eine Managertätigkeit oder durch einexternes Maß gesperrt worden ist. Die NOT_ACTIVE Einstellung sperrtdie Anzeige auf dem Mittelschirm. Die LIVE_MITTELEinstellung zeigt nurdie untaugliche Anzeige, wenn die Mittel vicidial_auto_callsAufzeichnung entfernt worden ist, wie während ein Kraft Logout oderDringlichkeitslogout an. + +
+
+
+ Erlauben Sie SIPSAK Anzeigen - wenn Satz bis 1, dieses dieTelefontabelle Einstellung richtig arbeiten läßt, schickt derBediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Diese Eigenschaft arbeitetnur mit SIP Telefonen und erfordert sipsak Anwendung, auf das webserver angebracht zu werden. Rückstellung ist 0. + +
+
+
+ Agent API Aktive - Wenn auf 1 gesetzt, wird die Agent-API-Schnittstelle zu funktionieren. Standard ist 0. + +
+
+
+ Admin Haupt-URL - dieses ist die URL oder Web site Adresse, daß Siegehen, wenn Sie an die HAUPTVERBINDUNG an der Oberseite der admin.phpSeite klicken. + +
+
+
+ Ermöglichen Sie Vertreter-Übergangsprotokolldatei - diese Wahlprotokolliert in einer Textprotokolldatei auf dem webserver, jedesmalwenn ein Anruf auf ein Mittel gebracht wird. Rückstellung ist 0,gesperrt. + +
+
+
+ Timeclock End of Day - Diese Einstellung legt fest, wenn alle Benutzer werden automatisch abgemeldet der timeclock System. Läuft nur einmal pro Tag. darf nur 4 Ziffern 2 Digit Stunden und 2 Minuten in Ziffer 24 Stunden Zeit. Standard ist 0000. + +
+
+
+ LetzteTimeclock Auto Logout - Dieses Feld zeigt das Datum der letzten Auto-logout. + +
+
+
+ Agent Screen Header Datum Format - Mit diesem Menü können Sie das Format des Datums, das zeigt sich an der Spitze der VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Standard-Datum-Format Jahr Monat Tag gefolgt von 24-Stunden-Zeit
+ US_SLASH_24HR 06/24/2008 23:59:59 - USA Datum-Format mit Monat Tag Jahr gefolgt von 24-Stunden-Zeit
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 24-Stunden-Zeit
+ AL_TEXT_24HR JUN 24 23:59:59 - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 24-Stunden-Zeit
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Standard-Datum-Format Jahr Monat Tag gefolgt von 12-Stunden-Zeit
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA Datum-Format mit Monat Tag Jahr gefolgt von 12-Stunden-Zeit
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 12-Stunden-Zeit
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 12-Stunden-Zeit
+ +
+
+
+ Agent Screen Kunden Datum Format - Mit diesem Menü können Sie das Format des Kunden Zeitzone Datum, zeigt sich an der Spitze der Customer Information des VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Standard-Datum-Format Jahr Monat Tag gefolgt von 24-Stunden-Zeit
+ US_SLASH_24HR 06/24/2008 23:59:59 - USA Datum-Format mit Monat Tag Jahr gefolgt von 24-Stunden-Zeit
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 24-Stunden-Zeit
+ AL_TEXT_24HR JUN 24 23:59:59 - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 24-Stunden-Zeit
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Standard-Datum-Format Jahr Monat Tag gefolgt von 12-Stunden-Zeit
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA Datum-Format mit Monat Tag Jahr gefolgt von 12-Stunden-Zeit
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 12-Stunden-Zeit
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 12-Stunden-Zeit
+ +
+
+
+ Agent Screen Kunden Telefon Format - Mit diesem Menü können Sie das Format des Kunden Rufnummer, zeigt sich in den Status des Agenten VICIDIAL Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist US_PARN
+ US_DASH 000-000-0000 - USA Bindestrich getrennt Telefonnummer
+ US_PARN (000)000-0000 - USA Bindestrich getrennt Nummer mit Vorwahl in Klammern
+ MS_NODS 0000000000 - Keine Formatierung
+ UK_DASH 00 0000-0000 - UK Bindestrich getrennt Telefonnummer mit Leerzeichen nach Stadt-Code
+ AU_SPAC 000 000 000 - Australia Leerzeichen getrennt Telefonnummer
+ IT_DASH 0000-000-000 - Italy Bindestrich getrennt Telefonnummer
+ FR_SPAC 00 00 00 00 00 - France Leerzeichen getrennt Telefonnummer
+ +
+
+
+ Agent interface API Access Aktive - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Agent Only Rückruf-Lock-Kampagne - Diese Option legt fest, ob AGENTONLY Rückrufe an der Kampagne, dass der Agent ursprünglich erstellt wurde ihnen im Rahmen gesperrt sind. Sie diesen Wert auf 1 bedeutet, dass der Agent kann nur wählen sie aus der Kampagne wurden sie unter festgelegten, 0 bedeutet, dass der Agent auf sie zugreifen, egal was sie in Aktion protokolliert werden können. Der Standardwert ist 1. + +
+
+
+ Central Sound Control Aktive - Diese Option legt fest, ob der Ton-Synchronisierung System aktiv ist, auf allen Servern. Der Standardwert ist 0 für inaktive. + +
+
+
+ Sounds Web Server - Dies ist die Server-Namen oder die IP-Adresse des Web-Server, der die Sound-Dateien auf diesem System Handling wird, muss dieses Spiel den Server-Namen oder die IP des Rechners, den Sie versuchen, die audio_store.php Webseite über den Zugang oder es wird nicht funktionieren . Standard ist 127.0.0.1. + +
+
+
+ Sounds Web-Verzeichnis - Diese automatisch generierten Verzeichnis-Name wird zufällig vom System als den Ort, dass die Audio-Lager gehalten werden geschaffen. Alle Audio-Dateien befinden sich in diesem Verzeichnis. + +
+
+
+ Aktive Voicemail-Server - Im Multi-Server-Systemen, ist dies der Server, der alle Voicemailboxen behandelt. Dieser Server ist auch, wenn die Einwahl-Anweisungen generiert werden aus hochgeladen werden, die 8168 Aufnahmen. + +
+
+
+ Outbound Auto-Dial Aktive - Mit dieser Option können Sie aktivieren oder deaktivieren Sie ausgehende Auto-Einwahl in VICIDIAL, in diesem Bereich auf 0 werden die Listen und Filter Abschnitte und viele Felder aus der Kampagne Änderung Bildschirme. Manuelle Eingabe Wählfeld wird noch innerhalb der zulässigen Agent-Bildschirm, aber keine Liste Einwahl möglich sein wird. Der Standardwert ist 1 für aktive. + +
+
+
+ Ratio Dial Limit - Dies ist die maximale Grenze der automatische Einwahl-Ebene in die Kampagne Bildschirm. + +
+
+
+ Max-FILL fordert pro Sekunde - Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Automobil-füllen Sie Outbound-Dialing-Skript automatisch für alle Server, pro Sekunde. Muss zwischen 1 und 200. Der Standardwert ist 40. + +
+
+
+ Lassen Sie Custom Dialplan Einträge - Diese Option ermöglicht es Ihnen, benutzerdefinierte dialplan Zeilen in Call-Menüs geben. Der Standardwert ist 0 für inaktive. + +
+
+
+ User Gebiete Aktive - Diese Einstellung erlaubt Ihnen, damit die User Gebiete setttings vom Benutzer Änderung Bildschirm. Diese Funktion wurde hinzugefügt, um für mehr Integration mit einem angepassten vtiger-Installation erlauben, aber können Anwendungen in einer reinen ViciDial System haben könnte. Der Standardwert ist 0 für Behinderte. + +
+
+
+ Aktivieren Zweiten Webform - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Aktivieren TTS Integration - Diese Einstellung ermöglicht es Ihnen zu ermöglichen, Text-to-Speech Integration mit Cepstral. Dies ist derzeit nur für Outbound-Kampagnen Art Umfrage. Der Standardwert ist 0 für Behinderte. + +
+
+
+ QC Funktionen Aktive - Mit dieser Option können Sie aktivieren oder deaktivieren Sie die QC oder Quality Control-Funktionen. Der Standardwert ist 0 für inaktiv. + +
+
+
+ Ermöglichen Sie der QueueMetrics Protokollierung - diese Einstellungerlaubt Ihnen zu definieren, ob VICIDIAL Maschinenbordbucheintragungenin die queue_log Datenbanktabelle einsetzt, wieSternchen-Warteschlangen Tätigkeit. QueueMetrics ist,Geschlossenquellenstatistische Analyse Programm ein alleinstehendes.Sie müssen QueueMetrics haben bereits angebracht und zusammengebaut,bevor Sie dieser Eigenschaft ermöglichen. Rückstellung ist 0. + +
+
+
+ QueueMetrics Bediener IP - dieses ist das IP address der Datenbankfür Ihre QueueMetrics Installation. + +
+
+
+ QueueMetrics Datenbank-Name - dieses ist der Datenbankname für IhreQueueMetrics Datenbank. + +
+
+
+ QueueMetrics Datenbank-LOGON - dieses ist der Benutzername, derverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren. + +
+
+
+ QueueMetrics Datenbank-Kennwort - dieses ist das Kennwort, dasverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren. + +
+
+
+ QueueMetrics URL - Dieses ist die URL oder Web site Adresse, dieverwendet wird, um zu Ihrer QueueMetrics Installation zu kommen. + +
+
+
+ QueueMetrics Maschinenbordbuch Identifikation - dieses ist derBediener Identifikation, den alle VICIDIAL Maschinenbordbücher, diein die QueueMetrics Datenbank einsteigen, als Bezeichner für jedeAufzeichnung benutzen. + +
+
+
+ QueueMetrics EnterQueue stellen voran - dieses fangen wirdverwendet, das Voranstellen von einer der vicidial_list Datenzuzulassen auffängt vor der Telefonnummer des Kunden fürkundengebundene QueueMetrics Berichte auf. Rückstellung ist KEINE,alles nicht zu bevölkern. + +
+
+
+ Aktivieren vtiger Integration - Diese Einstellung erlaubt es Ihnen zu ermöglichen vtiger Integration mit VICIDIAL. Derzeit Links zu vtiger admin und als auch als Nutzer Replikation sind die einzigen Integration Features zur Verfügung stehen. Standard ist 0. + +
+
+
+ Vtiger HE Bediener IP - Das ist die IP-Adresse der Datenbank für Ihre vtiger-Installation. + +
+
+
+ Vtiger Datenbankname - Dies ist die Datenbank-Namen für Ihre Datenbank vtiger. + +
+
+
+ Vtiger Datenbank Login - Das ist die Benutzernamen verwendet, um sich in Ihrem vtiger-Datenbank. + +
+
+
+ Vtiger Passwort für die Datenbank - Dies ist das Passwort für die Anmeldung in Ihrem vtiger-Datenbank. + +
+
+
+ Vtiger URL - Das ist die URL oder Website-Adresse, um an Ihr vtiger-Installation. + + +



+ + VICIDIAL_STATUSESTABELLE

+
+
+ Durch den Gebrauch von Systemstatus, können Sie Status haben, diefür Kampagne und Ingruppe bestehen. Der Status muß 1-6 Buchstabenlang sein, muß die Beschreibung 2-30 Buchstaben lang sein undauswählbar definiert, ob es oben in VICIDIAL als Mitteleinteilungzeigt. Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend. Die Kategorie Wahl erlaubtIhnen, einige Status in ein catogy zu gruppieren, das fürstatistische Analyse verwendet werden kann. Außerdem gibt es 5 zusätzliche Einstellungen, die die Art Status:Verkauf, DNC, Kundenkontakt, nicht daran interessiert, nicht praktikabel definieren wird. + + + +



+ + VICIDIAL_STATUS_CATEGORIESTABELLE

+
+
+ Durch den Gebrauch von Systemstatuskategorien, können Sie diezusammen gruppieren Status, um statistische Analyse auf einer GruppeStatus zuzulassen. Die Kategorie Identifikation muß 2-20 Buchstabenlang ohne Räume sein, muß der Name 2-50 Buchstaben lang sein, istdie Beschreibung wahlweise freigestellt und TimeonVDAD Anzeigedefiniert, ob dieser Status einer von bis zu 4 Status ist, die auf derZeit auf VDAD Realzeitreport errechnet werden und angezeigt werdenkönnen. Der Verkauf Kategorie und Dead Lead Kategorie sind auch die von den US-Vorschlag, wenn die Analyse Liste Statistiken. + + + 0) + { + ?> +



+ + VICIDIAL QC-Status-Codes

+
+
+ Das Quality Control QC-System innerhalb VICIDIAL hat seinen eigenen Satz der Status-Codes, getrennt von denen der Call-Handling Funktionen der VICIDIAL. QC statuse Codes muss zwischen 2 und 8 Zeichen lang sein und keine Sonderzeichen wie Leerzeichen oder Doppelpunkt. Die QK-Status-Code Beschreibung muss zwischen 2 und 30 Zeichen lang sein. + + + + +







+







+ DAS ENDE +
+ - - - -







-







-DAS ENDE -
-\n"; - echo "\n"; - echo "\n"; - echo ""; - - $stmt="SELECT dial_statuses,local_call_time,lead_filter_id from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $dial_statuses = $row[0]; - $local_call_time = $row[1]; - if ($lead_filter_id=='') { - $lead_filter_id = $row[2]; - if ($lead_filter_id=='') + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') { - $lead_filter_id='NONE'; + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Zeige Anzahl anrufbarer Anschlüsse -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTEN: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; } - - $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; - $rslt=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rslt); - $camp_lists=''; - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; - if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} - } - $camp_lists = eregi_replace(".$","",$camp_lists); - - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} else - {$fSQL = '';} - - - echo "

\n"; - echo "Zeige Anzahl anrufbarer Anschlüsse -

\n"; - echo "CAMPAIGN: $campaign_id
\n"; - echo "LISTEN: $camp_lists
\n"; - echo "STATUSES: $dial_statuses
\n"; - echo "FILTER: $lead_filter_id
\n"; - echo "CALL TIME: $local_call_time

\n"; - - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - - echo "

\n"; - echo "\n"; - - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } - else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; - } -} ###################### @@ -5141,7 +6154,7 @@ if ($ADD==7111111) $country_code = 'USA'; $gender = 'M'; $date_of_birth = '1970-01-01'; - $alt_phone = '3125551212'; + $alt_phone = '3125551111'; $email = 'test@test.com'; $security_phrase = 'SECUTIRY'; $comments = 'COMMENTS FIELD'; @@ -5159,17 +6172,32 @@ if ($ADD==7111111) $RGserver_ip = '10.10.10.15'; $RGSIPexten = 'SIP/gs102'; $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; echo "\n"; echo "\n"; echo "\n"; echo ""; - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $script_name = $row[1]; - $script_text = $row[3]; + $script_text = stripslashes($row[3]); if (eregi("iframe src",$script_text)) { @@ -5210,6 +6238,21 @@ if ($ADD==7111111) $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); } $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); @@ -5250,6 +6293,21 @@ if ($ADD==7111111) $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); $script_text = eregi_replace("\n","
",$script_text); @@ -5289,6 +6347,17 @@ if ($ADD=="1") { if ($LOGmodify_users==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; @@ -5296,7 +6365,14 @@ if ($ADD=="1") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Benutzer-Zahl: $NWB#vicidial_users-user$NWE
Benutzer-Zahl: Auto-Generated $NWB#vicidial_users-user$NWE
Benutzer-Zahl: $NWB#vicidial_users-user$NWE
Kennwort:$NWB#vicidial_users-pass$NWE
Voller Name: $NWB#vicidial_users-full_name$NWE
Benutzer-Niveau:
\n"; echo ""; @@ -5352,7 +6439,14 @@ if ($ADD=="1A") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -5394,26 +6488,99 @@ if ($ADD==11) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Benutzer-Zahl: $NWB#vicidial_users-user$NWE
Benutzer-Zahl: Auto-Generated $NWB#vicidial_users-user$NWE
Benutzer-Zahl: $NWB#vicidial_users-user$NWE
Kennwort:$NWB#vicidial_users-pass$NWE
Voller Name: $NWB#vicidial_users-full_name$NWE
\n"; echo ""; echo "
ADDIEREN Sie Eine NEUE KAMPAGNE
\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; @@ -5424,7 +6591,11 @@ if ($ADD==11) echo "\n"; - echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
Kampagne Identifikation: $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Identifikation: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Identifikation: $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Name: $NWB#vicidial_campaigns-campaign_name$NWE
Kampagne Beschreibung: $NWB#vicidial_campaigns-campaign_description$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Park-Verlängerung: $NWB#vicidial_campaigns-park_ext$NWE
Park-Dateiname: $NWB#vicidial_campaigns-park_file_name$NWE
Netz-Form: $NWB#vicidial_campaigns-web_form_address$NWE
Netz-Form: $NWB#vicidial_campaigns-web_form_address$NWE
Erlauben Sie Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_campaigns-next_agent_call$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_campaigns-next_agent_call$NWE
Ortsgespräch-Zeit: $NWB#vicidial_campaigns-local_call_time$NWE
Index: $NWB#vicidial_campaigns-campaign_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_campaigns-get_call_launch$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; } @@ -5444,13 +6615,31 @@ if ($ADD==12) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
KopierenEine KAMPAGNE\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
Kampagne Identifikation: $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Identifikation: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Identifikation: $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Name: $NWB#vicidial_campaigns-campaign_name$NWE
Quellkampagne:
\n"; echo ""; echo "
ADD A NEW LIST\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Liste Identifikation: (nur Stellen)$NWB#vicidial_lists-list_id$NWE
Liste Identifikation: Auto-Generated $NWB#vicidial_lists-list_id$NWE
Liste Identifikation: (nur Stellen)$NWB#vicidial_lists-list_id$NWE
Liste Name: $NWB#vicidial_lists-list_name$NWE
Liste Beschreibung: $NWB#vicidial_lists-list_description$NWE
Kampagne: \n"; echo "
\n"; echo "\n"; echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } echo "\n"; echo "
List:
Telefon-Nummern:

(einer Telefonnummer pro Zeile nur)
$NWB#vicidial_list-dnc$NWE
Hinzufügen oder Löschen:
\n"; } @@ -5628,24 +6898,45 @@ if ($ADD==1111) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ADDIEREN Sie Eine NEUE INBOUND GRUPPE\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
Gruppe Identifikation: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Identifikation: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Identifikation: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Name: $NWB#vicidial_inbound_groups-group_name$NWE
Gruppe Farbe: $NWB#vicidial_inbound_groups-group_color$NWE
Aktiv:$NWB#vicidial_inbound_groups-active$NWE
Netz-Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Netz-Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Voicemail: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Fronter Anzeige: $NWB#vicidial_inbound_groups-fronter_display$NWE
Index: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; } @@ -5665,13 +6956,31 @@ if ($ADD==1211) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
COPY INBOUND GRUPPE\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
Gruppe Identifikation: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Identifikation: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Identifikation: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Name: $NWB#vicidial_inbound_groups-group_name$NWE
Source Gruppe Identifikation:
\n"; + echo ""; + + echo "
ADD A NEW CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menü-ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menü-ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menü-ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menü-ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
Quelle Menü: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + ###################### # ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN ###################### @@ -5821,13 +7238,31 @@ if ($ADD==111111) { if ($LOGmodify_usergroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ADDIEREN SIE NEUE BENUTZER-GRUPPE\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Gruppe: (keine Räume oder Interpunktion)$NWB#vicidial_user_groups-user_group$NWE
Gruppe:Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Gruppe: (keine Räume oder Interpunktion)$NWB#vicidial_user_groups-user_group$NWE
Beschreibung: (Beschreibung der Gruppe)$NWB#vicidial_user_groups-group_name$NWE
\n"; @@ -5848,13 +7283,32 @@ if ($ADD==1111111) { if ($LOGmodify_scripts==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ADD NEW SCRIPT\n"; echo "\n"; + echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -5898,6 +7352,16 @@ if ($ADD==1111111) echo ""; echo ""; echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; echo ""; echo "
"; # END Insert Field @@ -5921,13 +7385,31 @@ if ($ADD==11111111) { if ($LOGmodify_filters==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Index Identifikation: (keine Räume oder Interpunktion)$NWB#vicidial_scripts-script_id$NWE
Index Identifikation: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
Index Identifikation: (keine Räume oder Interpunktion)$NWB#vicidial_scripts-script_id$NWE
Index-Name: (Titel dem Index)$NWB#vicidial_scripts-script_name$NWE
Index-Anmerkungen: $NWB#vicidial_scripts-script_comments$NWE
Aktiv:$NWB#vicidial_scripts-active$NWE
\n"; echo ""; echo "
ADDIEREN SIE NEUEN FILTER\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6051,6 +7533,17 @@ if ($ADD==11111111111) { if ($LOGast_admin_access==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Filter Identifikation: (keine Räume oder Interpunktion)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter Identifikation:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter Identifikation: (keine Räume oder Interpunktion)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter-Name: (kurze Beschreibung des Filter)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Filter-Anmerkungen: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filter Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; echo ""; @@ -6059,7 +7552,14 @@ if ($ADD==11111111111) echo "
\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6231,6 +7731,7 @@ if ($ADD==141111111111) echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "
Telefonverlängerung: $NWB#phones-extension$NWE
Telefonverlängerung: Auto-Generated $NWB#phones-extension$NWE
Telefonverlängerung: $NWB#phones-extension$NWE
Dial Plan Zahl: (nur Stellen)$NWB#phones-dialplan_number$NWE
Voicemail-Box: (nur Stellen)$NWB#phones-voicemail_id$NWE
Outbound CallerID: (nur Stellen)$NWB#phones-outbound_cid$NWE
Carrier-ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Carrier Name: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Beschreibung: $NWB#vicidial_server_carriers-carrier_description$NWE
Anmeldung String: $NWB#vicidial_server_carriers-registration_string$NWE
Vorlagen-ID:
\n"; + echo ""; + + echo "
ADD NEW TTS ENTRY\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS-ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Name: $NWB#vicidial_tts_prompts-tts_name$NWE
Aktiv:
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC ON HOLD ENTRY\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $NWB#vicidial_music_on_hold-moh_id$NWE
Music On Hold Name: $NWB#vicidial_music_on_hold-moh_name$NWE
Zufälliger Reihenfolge:
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW Voicemail-Box\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Voicemail-ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Aktiv:
E-Mail:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + ###################### # ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN ###################### @@ -6359,6 +7952,20 @@ if ($ADD==11111111111111) if ($ADD=="2") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6371,13 +7978,14 @@ if ($ADD=="2") { $user = 'AUTOGENERA'; } - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) { - echo "
BENUTZER NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
voller Name und Kennwort müssen mindestens 2 Buchstaben lang sein\n"; + echo "
BENUTZER NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
voller Name und Kennwort müssen mindestens 2 Buchstaben lang sein\n"; + echo "
Sie müssen sich für eine Benutzergruppe\n"; } - else + else { if (ereg('AUTOGENERA',$user)) { @@ -6495,8 +8103,8 @@ if ($ADD=="2") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6504,7 +8112,7 @@ if ($ADD=="2") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6626,6 +8234,20 @@ if ($ADD=="2") if ($ADD=="2A") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6634,14 +8256,14 @@ if ($ADD=="2A") {echo "
BENUTZER NICHT ADDIERT - es gibt bereits einen Benutzer im System mitdieser Benutzerzahl\n";} else { - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) { - echo "
BENUTZER NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
voller Name und Kennwort müssen mindestens 2 Buchstaben lang sein\n"; - echo "\n"; + echo "
BENUTZER NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
voller Name und Kennwort müssen mindestens 2 Buchstaben lang sein\n"; + echo "\n"; } - else + else { if (ereg('AUTOGEN',$user)) { @@ -6680,7 +8302,7 @@ if ($ADD=="2A") $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; $rslt=mysql_query($stmt, $link); } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -6763,8 +8385,8 @@ if ($ADD=="2A") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6772,7 +8394,7 @@ if ($ADD=="2A") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6899,6 +8521,20 @@ if ($ADD=="2A") if ($ADD==21) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6914,17 +8550,17 @@ if ($ADD==21) {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) { - echo "
KAMPAGNE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; - echo "
Kampagne Name muß zwischen 6 und 40 Buchstaben lang sein\n"; + echo "
KAMPAGNE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + echo "
Kampagne Name muß zwischen 6 und 40 Buchstaben lang sein\n"; } - else + else { echo "
KAMPAGNE ADDIERT: $campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED');"; + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; @@ -6949,6 +8585,20 @@ if ($ADD==21) if ($ADD==20) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6957,41 +8607,49 @@ if ($ADD==20) {echo "
KAMPAGNE NICHT ADDIERT - es gibt bereits eine Kampagne im System mitdieser Identifikation\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else { - echo "
KAMPAGNE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; - echo "
source Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; - } - else - { - echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
KAMPAGNE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + echo "
source Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias from vicidial_campaigns where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=31; @@ -7018,17 +8676,17 @@ if ($ADD==22) {echo "
KAMPAGNE STATUS NICHT ADDIERT - es gibt bereits einen Globalstatus imSystem mit diesem Namen\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
KAMPAGNE STATUS NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; - echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; - echo "
Statusname muß zwischen 2 und 30 Buchstaben lang sein\n"; + echo "
KAMPAGNE STATUS NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; + echo "
Statusname muß zwischen 2 und 30 Buchstaben lang sein\n"; } - else + else { echo "
KAMPAGNE STATUS ADDIERT: $campaign_id - $status\n"; - $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -7064,13 +8722,13 @@ if ($ADD==23) {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
KAMPAGNE HOT KEY NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; - echo "
hotkey must be a single character between 1 and 9 \n"; - echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; + echo "
KAMPAGNE HOT KEY NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; } - else + else { echo "
KAMPAGNE HOT KEY FÜGTE HINZU: $campaign_id - $status - $hotkey\n"; @@ -7106,14 +8764,14 @@ if ($ADD==25) {echo "
KAMPAGNE LEITUNG BEREITEN NICHT HINZUGEFÜGT auf - es gibt bereitseine Führenwiederverwertung für diese Kampagne mit diesem Status\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
KAMPAGNE LEITUNG BEREITEN NICHT HINZUGEFÜGT auf - gehen Sie bittezurück und betrachten Sie die Daten, die Sie eingaben\n"; - echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; - echo "
Versuch verzögert muß mindestens 120 Sekunden sein und weniger als 43.200 Sekunden oder 12 Stunden\n"; - echo "
maximale Versuche müssen von 1 bis 10 sein\n"; + echo "
KAMPAGNE LEITUNG BEREITEN NICHT HINZUGEFÜGT auf - gehen Sie bittezurück und betrachten Sie die Daten, die Sie eingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + echo "
Versuch verzögert muß mindestens 120 Sekunden sein und weniger als 43.200 Sekunden oder 12 Stunden\n"; + echo "
maximale Versuche müssen von 1 bis 10 sein\n"; } - else + else { echo "
KAMPAGNE LEITUNG BEREITEN HINZUGEFÜGT AUF: $campaign_id - $status - $attempt_delay\n"; @@ -7149,12 +8807,12 @@ if ($ADD==26) {echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT ADDIERT - es gibt bereits eine Eintragung für diese Kampagne mit diesem Status\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; } - else + else { echo "
SELBSTALT VORWAHLKNOPF-STATUS FÜGTE HINZU: $campaign_id - $status\n"; @@ -7195,13 +8853,13 @@ if ($ADD==27) {echo "
MITTEL-PAUSE CODE NICHT ADDIERT - es gibt bereits eine Eintragung für diese Kampagne mit diesem PauseCode\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
MITTEL-PAUSE CODE NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
pause code must be between 1 and 6 characters in length\n"; - echo "
pause Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; + echo "
MITTEL-PAUSE CODE NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; } - else + else { echo "
MITTEL-PAUSE CODE FÜGTE HINZU: $campaign_id - $pause_code - $pause_code_name\n"; @@ -7237,12 +8895,12 @@ if ($ADD==28) {echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ADDIERT - es gibt bereits eine Eintragung für diese Kampagne mit diesem Status\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; } - else + else { echo "
KAMPAGNE VORWAHLKNOPF-STATUS ADDIERT: $campaign_id - $status\n"; @@ -7275,6 +8933,20 @@ if ($ADD==28) if ($ADD==211) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); @@ -7283,14 +8955,14 @@ if ($ADD==211) {echo "
LISTE NICHT ADDIERT - es gibt bereits eine Liste im System mit dieserIdentifikation\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) { - echo "
LISTE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; - echo "
Liste Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; - echo "
Liste Name muß mindestens 2 Buchstaben lang sein\n"; - echo "
Liste Identifikation must be greater than 100\n"; - } - else + echo "
LISTE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Liste Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + echo "
Liste Name muß mindestens 2 Buchstaben lang sein\n"; + echo "
Liste Identifikation must be greater than 100\n"; + } + else { echo "
LISTE ADDIERT: $list_id\n"; @@ -7317,6 +8989,20 @@ if ($ADD==211) if ($ADD==2111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7332,15 +9018,15 @@ if ($ADD==2111) {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) { - echo "
GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; - echo "
Gruppe Identifikation muß zwischen 2 und 20 Buchstaben lang sein undNr. enthalten ' -+'.\n"; - echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; + echo "
GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Gruppe Identifikation muß zwischen 2 und 20 Buchstaben lang sein undNr. enthalten ' -+'.\n"; + echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch');"; + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,web_form_address_two,start_call_url,dispo_call_url) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; @@ -7368,6 +9054,20 @@ if ($ADD==2111) if ($ADD==2011) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7376,26 +9076,34 @@ if ($ADD==2011) {echo "
GRUPPE NICHT ADDIERT - es gibt bereits eine Gruppe im System mitdieser Identifikation\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else { - echo "
GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; - echo "
Gruppe Identifikation muß zwischen 2 und 20 Buchstaben lang sein undNr. enthalten ' -+'.\n"; - echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; - } - else - { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias from vicidial_inbound_groups where group_id=\"$source_group_id\";"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Gruppe Identifikation muß zwischen 2 und 20 Buchstaben lang sein undNr. enthalten ' -+'.\n"; + echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); - echo "
GRUPPE FÜGTE HINZU: $group_id\n"; + echo "
GRUPPE FÜGTE HINZU: $group_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN COPY INBOUND GRUPPE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN COPY INBOUND GRUPPE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=3111; @@ -7423,12 +9131,12 @@ if ($ADD==2311) {echo "
NICHT HINZUGEFÜGT - Es gibt bereits eine DID in das System mit dieser Erweiterung\n";} else { - if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) { - echo "
NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; $rslt=mysql_query($stmt, $link); @@ -7468,14 +9176,14 @@ if ($ADD==2411) {echo "
NICHT HINZUGEFÜGT - Es gibt bereits eine DID in das System mit dieser Erweiterung\n";} else { - if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) { - echo "
NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code from vicidial_inbound_dids where did_id=\"$source_did\";"; + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; $rslt=mysql_query($stmt, $link); $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; @@ -7498,6 +9206,115 @@ if ($ADD==2411) } +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NOT ADDED - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL MENU NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Call Menü-ID muss zwischen 2 und 50 Zeichen lang sein und enthalten keine ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU ADDED: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NOT ADDED - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL MENU NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Call Menü-ID muss zwischen 2 und 50 Zeichen lang sein und enthalten keine ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL MENU ADDED: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + ###################### # ADD=21111 adds new remote agents to the system ###################### @@ -7512,12 +9329,12 @@ if ($ADD==21111) {echo "
REMOTEMITTEL NICHT ADDIERT - es gibt bereits eineRemotemitteleintragung beginnend mit diesem userID\n";} else { - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
REMOTEMITTEL NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; - echo "
Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein\n"; - } - else + echo "
REMOTEMITTEL NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein\n"; + } + else { $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; $rslt=mysql_query($stmt, $link); @@ -7542,6 +9359,20 @@ if ($ADD==21111) if ($ADD==211111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -7550,12 +9381,12 @@ if ($ADD==211111) {echo "
BENUTZER-GRUPPE NICHT ADDIERT - es gibt bereits eine BenutzergruppeEintragung mit diesem Namen\n";} else { - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
BENUTZER-GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; - echo "
Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein\n"; - } - else + echo "
BENUTZER-GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein\n"; + } + else { $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; $rslt=mysql_query($stmt, $link); @@ -7621,8 +9452,8 @@ if ($ADD==211111) else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -7630,7 +9461,7 @@ if ($ADD==211111) if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -7656,6 +9487,20 @@ if ($ADD==211111) if ($ADD==2111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); @@ -7664,16 +9509,16 @@ if ($ADD==2111111) {echo "
INDEX NICHT ADDIERT - es gibt bereits eine Indexeintragung mit diesem Namen\n";} else { - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
INDEX NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Indexname, -beschreibung und -text müssen mindestens 2 Buchstabenlang sein\n"; - } - else + echo "
INDEX NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Indexname, -beschreibung und -text müssen mindestens 2 Buchstabenlang sein\n"; + } + else { - $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','$script_text','$active');"; + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; $rslt=mysql_query($stmt, $link); - + if ($DB > 0) {echo "|$stmt|";} echo "
INDEX FÜGTE HINZU: $script_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7695,6 +9540,20 @@ if ($ADD==2111111) if ($ADD==21111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; $rslt=mysql_query($stmt, $link); @@ -7703,16 +9562,17 @@ if ($ADD==21111111) {echo "
FILTER NICHT ADDIERT - es gibt bereits eine Filtereintragung mitdieser Identifikation\n";} else { - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTER NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Filtern Sie Identifikation, Namen und SQL muß mindestens 2 Buchstabenlang sein\n"; - } - else + echo "
FILTER NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Filtern Sie Identifikation, Namen und SQL muß mindestens 2 Buchstabenlang sein\n"; + } + else { - $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='$lead_filter_sql';"; + $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
FILTER ADDIERT: $lead_filter_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7742,15 +9602,16 @@ if ($ADD==211111111) {echo "
Anrufzeit Definition nicht hinzugefügt - Es existiert bereits ein Anrufzeiteintrag mit dieser ID\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
Anrufzeit Definition nicht hinzugefügt - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Anrufzeit ID und Name müssen mindestens 2 Zeichen Länge haben\n"; - } - else + echo "
Anrufzeit Definition nicht hinzugefügt - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID und Name müssen mindestens 2 Zeichen Länge haben\n"; + } + else { $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
Anrufzeit hinzugefügt: $call_time_id\n"; @@ -7781,15 +9642,16 @@ if ($ADD==2111111111) {echo "
Landesspezifische Anrufzeitdefinition nicht hinzugefügt - Es existiert bereits ein Anrufzeiteintrag mit dieser ID\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
Landesspezifische Anrufzeitdefinition nicht hinzugefügt - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Landesspezifische Anrufzeit ID, Name und Land müssen mindestens 2 Zeichen Länge haben\n"; - } - else + echo "
Landesspezifische Anrufzeitdefinition nicht hinzugefügt - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Landesspezifische Anrufzeit ID, Name und Land müssen mindestens 2 Zeichen Länge haben\n"; + } + else { $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
landesspezifische Anrufzeiten hinzugefügt: $call_time_id\n"; @@ -7812,6 +9674,20 @@ if ($ADD==2111111111) if ($ADD==231111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; $rslt=mysql_query($stmt, $link); @@ -7821,14 +9697,14 @@ if ($ADD==231111111) else { $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - echo "
UMSCHALT DEFINITION NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Shift-ID und Name muss mindestens 2 Zeichen lang sein\n"; - echo "
Start Time Shift muss aus 4 Ziffern in der Länge und eine gültige Uhrzeit\n"; - echo "
Shift Länge muss mindestens 5 Zeichen lang sein und 24 Stunden oder weniger\n"; - } - else + echo "
UMSCHALT DEFINITION NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Shift-ID und Name muss mindestens 2 Zeichen lang sein\n"; + echo "
Start Time Shift muss aus 4 Ziffern in der Länge und eine gültige Uhrzeit\n"; + echo "
Shift Länge muss mindestens 5 Zeichen lang sein und 24 Stunden oder weniger\n"; + } + else { $p=0; $shift_weekdays_ct = count($shift_weekdays); @@ -7839,6 +9715,7 @@ if ($ADD==231111111) } $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
UMSCHALT ANGEFÜGT:$shift_id\n"; @@ -7861,6 +9738,20 @@ if ($ADD==231111111) if ($ADD==21111111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; $rslt=mysql_query($stmt, $link); @@ -7883,25 +9774,36 @@ if ($ADD==21111111111) {echo "
PHONE NOT ADDED - Es gibt bereits eine Telefon-Alias in das System mit diesem Login\n";} else { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
TELEFON NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n";} - else + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a Voicemail-ID in the system with this ID\n";} + else { - echo "
TELEFON FÜGTE HINZU\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
TELEFON NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Die folgenden Felder müssen Daten: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
TELEFON FÜGTE HINZU\n"; - $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } @@ -7931,9 +9833,9 @@ if ($ADD==22111111111) {echo "
TEL ALIAS NOT ADDED - Es gibt bereits eine Telefon-Login in das System mit dieser ID\n";} else { - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) {echo "
TEL ALIAS NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else + else { echo "
TEL ALIAS ADDED\n"; @@ -7972,9 +9874,9 @@ if ($ADD==23111111111) {echo "
GROUP ALIAS NOT ADDED - Sie können keine reservierten Wörter in der Gruppe Aliase\n";} else { - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) {echo "
GROUP ALIAS NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else + else { echo "
GROUP ALIAS ADDED\n"; @@ -8009,16 +9911,16 @@ if ($ADD==211111111111) {echo "
BEDIENERNOT ADDED - there is already a server in the system with this ID\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) {echo "
BEDIENERNOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else + else { echo "
BEDIENERADDED\n"; $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; $rslt=mysql_query($stmtA, $link); ### LOG INSERTION Admin Log Table ### @@ -8064,14 +9966,14 @@ if ($ADD==221111111111) {echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - es gibt bereits eine Bediener-Stamm Aufzeichnung für diese Kampagne\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) { - echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Kampagne muß zwischen 3 und 8 Buchstaben lang sein\n"; - echo "
server_ip verzögert muß mindestens 7 Buchstaben sein\n"; - echo "
Stämme müssen eine Stelle von 0 bis 9999 sein\n"; + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne muß zwischen 3 und 8 Buchstaben lang sein\n"; + echo "
server_ip verzögert muß mindestens 7 Buchstaben sein\n"; + echo "
Stämme müssen eine Stelle von 0 bis 9999 sein\n"; } - else + else { echo "
VICIDIAL BEDIENER-STAMM-SATZ ADDIERT: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; @@ -8106,9 +10008,9 @@ if ($ADD==231111111111) {echo "
CONF-Vorlagen nicht ADDED - Es gibt bereits eine Vorlage in das System mit dieser ID\n";} else { - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) {echo "
CONF-Vorlagen nicht ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else + else { echo "
CONF TEMPLATE ADDED\n"; @@ -8142,13 +10044,13 @@ if ($ADD==241111111111) {echo "
CARRIER NOT ADDED - Es gibt bereits ein Luftfahrtunternehmen in das System mit dieser ID\n";} else { - if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) {echo "
CARRIER NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else + else { echo "
CARRIER ADDED\n"; - $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N');"; + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; $rslt=mysql_query($stmt, $link); $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; @@ -8167,6 +10069,130 @@ if ($ADD==241111111111) } +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS Eintrag nicht ADDED - Es gibt bereits eine tts Eintrag in das System mit dieser ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS Eintrag nicht ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
TTS Entry Hinzugefügt\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MUSIC ON HOLD Eintrag nicht ADDED - Es gibt bereits eine moh Eintrag in das System mit dieser ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD Eintrag nicht ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
MUSIC ON HOLD Entry Hinzugefügt\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Voicemail-Box NOT ADDED - Es gibt bereits eine Voicemail-Box im System mit dieser ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Voicemail-Box NOT ADDED - gibt es bereits eine Telefonnummer in das System mit dieser Voicemail-ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
Voicemail-Box NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
Voicemail-Box ADDED\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + ###################### # ADD=2111111111111 adds new conference to the system ###################### @@ -8181,9 +10207,9 @@ if ($ADD==2111111111111) {echo "
KONFERENZ NICHT ADDIERT - es gibt bereits eine Konferenz im System mitdieser Identifikation und Bediener\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
KONFERENZ NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} - else + else { echo "
KONFERENZ FÜGTE HINZU\n"; @@ -8209,9 +10235,9 @@ if ($ADD==21111111111111) {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
VICIDIAL KONFERENZ NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} - else + else { echo "
VICIDIAL KONFERENZ FÜGTE HINZU\n"; @@ -8244,17 +10270,17 @@ if ($ADD==221111111111111) {echo "
SYSTEMSTATUS NICHT ADDIERT - there is already a global-status in the system with this name\n";} else { - if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
SYSTEMSTATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; - echo "
Statusname muß zwischen 2 und 30 Buchstaben lang sein\n"; + echo "
SYSTEMSTATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; + echo "
Statusname muß zwischen 2 und 30 Buchstaben lang sein\n"; } - else + else { echo "
SYSTEMSTATUS ADDIERT: $status_name - $status\n"; - $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category) values('$status','$status_name','$selectable','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -8285,13 +10311,13 @@ if ($ADD==231111111111111) {echo "
STATUS-KATEGORIE NICHT ADDIERT - es gibt bereits eine Statuskategorie im System mit dieserIdentifikation: $row[0]\n";} else { - if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) { - echo "
STATUS-KATEGORIE NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Identifikation muß zwischen 2 und 20 Buchstaben lang sein\n"; - echo "
Namensname muß zwischen 2 und 50 Buchstaben lang sein\n"; + echo "
STATUS-KATEGORIE NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Identifikation muß zwischen 2 und 20 Buchstaben lang sein\n"; + echo "
Namensname muß zwischen 2 und 50 Buchstaben lang sein\n"; } - else + else { echo "
STATUS KATEGORIE ADDED: $vsc_id - $vsc_name\n"; @@ -8335,13 +10361,13 @@ if ($ADD==241111111111111) {echo "
QK-Status-Code nicht ADDED- Es gibt bereits eine qc Status Code in das System mit diesem Namen: $row[0]\n";} else { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) { - echo "
QK-Status-Code nicht ADDED- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Code muss zwischen 1 und 8 Zeichen lang sein\n"; - echo "
Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; + echo "
QK-Status-Code nicht ADDED- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Code muss zwischen 1 und 8 Zeichen lang sein\n"; + echo "
Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; } - else + else { echo "
QK-Status-Code hinzuzufügen:$code_name - $code\n"; @@ -8375,232 +10401,232 @@ if ($ADD==241111111111111) ###################### if ($ADD=="4A") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; } - echo "
BENUTZER ÄNDERTE - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Aktive'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
BENUTZER ÄNDERTE - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### @@ -8608,233 +10634,232 @@ $ADD=3; # go to user modification below ###################### if ($ADD=="4B") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; } - echo "
BENUTZER ÄNDERTE - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Aktive'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
BENUTZER ÄNDERTE - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3; # go to user modification below } - else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; - } -$ADD=3; # go to user modification below -} - ###################### @@ -8842,233 +10867,233 @@ $ADD=3; # go to user modification below ###################### if ($ADD==4) -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; - } - else - { - echo "
BENUTZER ÄNDERTE: $user\n"; + echo ""; - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; + echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) + else { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
BENUTZER ÄNDERTE: $user\n"; - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Aktive'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# - ### user doesn't exist in vtiger, insert it - else + if ($enable_vtiger_integration > 0) { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) - { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### # ADD=41 submit campaign modifications to the system - DETAIL ###################### if ($ADD==41) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9082,7 +11107,7 @@ if ($ADD==41) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9117,6 +11142,7 @@ if ($ADD==41) $survey_xfer_exten = '8300'; $voicemail_ext = ''; $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; } if (ereg('list_activation',$stage)) { @@ -9146,20 +11172,31 @@ if ($ADD==41) } else { - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
der Kampagne Name muß mindestens 6 Buchstaben lang sein\n"; - echo "
|$campaign_name|$active|\n"; + echo "
KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
der Kampagne Name muß mindestens 6 Buchstaben lang sein\n"; + echo "
|$campaign_name|$active|\n"; } - else + else { echo "
KAMPAGNE ÄNDERTE: $campaign_id\n"; + if ( ($dial_method != 'MANUAL') and ($dial_method != 'INBOUND_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } if ($dial_method == 'MANUAL') { $auto_dial_level='0'; $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; } else { @@ -9188,7 +11225,7 @@ if ($ADD==41) if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) {$hopper_level='100';} - $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias' where campaign_id='$campaign_id';"; + $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -9217,124 +11254,127 @@ if ($ADD==41) } } } - else + else { echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; exit; } -$ADD=31; # go to campaign modification form below -} + $ADD=31; # go to campaign modification form below + } + ###################### # ADD=42 modify/delete campaign status in the system ###################### if ($ADD==42) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) - { - echo "
KAMPAGNE STATUS NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; - echo "
die Kampagne Kennzeichnung muß mindestens 2 Buchstaben lang sein\n"; - echo "
der Kampagne Status muß mindestens Buchstaben 1 lang sein\n"; - } - else - { - if (ereg('delete',$stage)) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
KUNDENSPEZIFISCHER KAMPAGNE STATUS GELÖSCHT: $campaign_id - $status\n"; - - $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); - - $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmtA, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
KAMPAGNE STATUS NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; + echo "
die Kampagne Kennzeichnung muß mindestens 2 Buchstaben lang sein\n"; + echo "
der Kampagne Status muß mindestens Buchstaben 1 lang sein\n"; } - if (ereg('modify',$stage)) + else { - echo "
KUNDENSPEZIFISCHER KAMPAGNE STATUS GEÄNDERT: $campaign_id - $status\n"; + if (ereg('delete',$stage)) + { + echo "
KUNDENSPEZIFISCHER KAMPAGNE STATUS GELÖSCHT: $campaign_id - $status\n"; - $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
KUNDENSPEZIFISCHER KAMPAGNE STATUS GEÄNDERT: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below } -$SUB=22; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=43 delete campaign hotkey in the system ###################### if ($ADD==43) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
KAMPAGNE HOT KEY NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; - echo "
die Kampagne Kennzeichnung muß mindestens 2 Buchstaben lang sein\n"; - echo "
der Kampagne Status muß mindestens Buchstaben 1 lang sein\n"; - echo "
the campaign hotkey needs to be at least 1 characters in length\n"; - } - else - { - echo "
KUNDENSPEZIFISCHE KAMPAGNE HOT KEY LÖSCHTE: $campaign_id - $status - $hotkey\n"; + echo ""; - $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
KAMPAGNE HOT KEY NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; + echo "
die Kampagne Kennzeichnung muß mindestens 2 Buchstaben lang sein\n"; + echo "
der Kampagne Status muß mindestens Buchstaben 1 lang sein\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
KUNDENSPEZIFISCHE KAMPAGNE HOT KEY LÖSCHTE: $campaign_id - $status - $hotkey\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Status:$status|HotKey: $hotkey';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Status:$status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below } -$SUB=23; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=44 submit campaign modifications to the system - Basic View ###################### if ($ADD==44) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9348,7 +11388,7 @@ if ($ADD==44) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9400,13 +11440,12 @@ if ($ADD==44) } else { - - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
der Kampagne Name muß mindestens 6 Buchstaben lang sein\n"; + echo "
KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
der Kampagne Name muß mindestens 6 Buchstaben lang sein\n"; } - else + else { echo "
KAMPAGNE ÄNDERTE: $campaign_id\n"; @@ -9464,153 +11503,155 @@ if ($ADD==44) } } } - else + else { echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; exit; } -$ADD=34; # go to campaign modification form below -} + $ADD=34; # go to campaign modification form below + } + ###################### # ADD=45 modify campaign lead recycle in the system ###################### if ($ADD==45) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; - echo "
Versuch verzögert muß mindestens 120 Sekunden sein und weniger als 43.200 Sekunden oder 12 Stunden\n"; - echo "
maximale Versuche müssen von 1 bis 10 sein\n"; - } - else - { - echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + echo ""; - $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + echo "
Versuch verzögert muß mindestens 120 Sekunden sein und weniger als 43.200 Sekunden oder 12 Stunden\n"; + echo "
maximale Versuche müssen von 1 bis 10 sein\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below } -$SUB=25; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=47 modify agent pause code in the system ###################### if ($ADD==47) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
MITTEL-PAUSE CODE NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
pause_code must be between 1 and 6 characters in length\n"; - echo "
pause_Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; - } - else - { - echo "
MITTELPAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + echo ""; - $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
MITTEL-PAUSE CODE NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; + } + else + { + echo "
MITTELPAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below } -$SUB=27; -$ADD=31; # go to campaign modification form below -} ###################### # ADD=48 modify campaign QC settings in the system ###################### if ($ADD==48) -{ + { if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
QK-EINSTELLUNGEN NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if (strlen($campaign_id) < 2) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
QK-EINSTELLUNGEN NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
QK-EINSTELLUNGEN MODIFIZIERT: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
QK-EINSTELLUNGEN MODIFIZIERT: $campaign_id\n"; - - $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below } -$SUB=28; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9618,39 +11659,39 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD=='40A') -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
UMFRAGE EINSTELLUNGEN NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - } - else - { - echo "
UMFRAGE EINSTELLUNGEN MODIFIZIERT: $campaign_id\n"; + echo ""; - $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); + if (strlen($campaign_id) < 2) + { + echo "
UMFRAGE EINSTELLUNGEN NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + } + else + { + echo "
UMFRAGE EINSTELLUNGEN MODIFIZIERT: $campaign_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below } -$SUB='20A'; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9658,143 +11699,70 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==49) -{ - if ($LOGmodify_campaigns==1) { - ##### MODIFY a list mix container entry ##### + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### if ($stage=='MODIFY') - { - echo ""; - - $Flist_mix_container = "list_mix_container_$vcl_id"; - $Fmix_method = "mix_method_$vcl_id"; - $Fstatus = "status_$vcl_id"; - $Fvcl_name = "vcl_name_$vcl_id"; - - if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} - elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} - if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} - elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} - if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} - elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} - if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} - elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} - $list_mix_container = preg_replace("/:$/","",$list_mix_container); - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name name must be between 2 and 30 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; - echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $vcl_name\n"; - } - } + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); - ##### ADD a list mix container entry ##### - if ($stage=='ADD') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $OLDlist_mix_container = $row[0]; - $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; - - $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $list_id\n"; - } - } - - ##### REMOVE a list mix container entry ##### - if ($stage=='REMOVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $MIXentries = $MT; - $MIXentries = explode(":", $row[0]); - $Ms_to_print = (count($MIXentries) - 0); - - if ($Ms_to_print < 2) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
LISTE MISCHUNG NICHT GEÄNDERT: Sie können nicht die letzte list_id Eintragung aus einer ListeMischung löschen\n"; + echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); - $MIXpercentPCT = $MIXdetailsPCT[2]; - - $q=0; - while ($Ms_to_print > $q) - { - if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) - { - if ( ($q==0) and ($mix_container_item > 0) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - if ( ($q==1) and ($mix_container_item < 1) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - $NEWlist_mix_container .= "$MIXentries[$q]:"; - } - } - } - $q++; - } - $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; $rslt=mysql_query($stmt, $link); @@ -9807,114 +11775,187 @@ if ($ADD==49) if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $list_id\n"; } } - } - ##### ADD a NEW list mix ##### - if ($stage=='NEWMIX') - { - echo ""; + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) - { - echo "
LISTE MISCHUNG NICHT ADDIERT- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) { - echo "
LISTE MISCHUNG NICHT ADDIERT- Es gibt bereits eine Liste Mischung mit dieser Identifikation imSystem\n"; + echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
LISTE MISCHUNG NICHT GEÄNDERT: Sie können nicht die letzte list_id Eintragung aus einer ListeMischung löschen\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
LISTE MISCHUNG NICHT ADDIERT- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
LISTE MISCHUNG NICHT ADDIERT- Es gibt bereits eine Liste Mischung mit dieser Identifikation imSystem\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG ADDIERT:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
LISTE MISCHUNG NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
LISTE MISCHUNG ADDIERT:$campaign_id - $vcl_id - $vcl_name\n"; + echo "
LISTE MISCHUNG LÖSCHTE:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
LISTE MISCHUNG NICHT AKTIVIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG AKTIVIERTE: $campaign_id - $vcl_id - $vcl_name\n"; } } } - - ##### DELETE an existing list mix ##### - if ($stage=='DELMIX') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
LISTE MISCHUNG NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
LISTE MISCHUNG LÖSCHTE:$campaign_id - $vcl_id - $vcl_name\n"; - } - } - - ##### Set list mix entry to active ##### - if ($stage=='SETACTIVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
LISTE MISCHUNG NICHT AKTIVIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
LISTE MISCHUNG AKTIVIERTE: $campaign_id - $vcl_id - $vcl_name\n"; - } - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below } -$SUB=29; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9922,60 +11963,62 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==411) -{ - if ($LOGmodify_lists==1) { - echo ""; - - if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + if ($LOGmodify_lists==1) { - echo "
LISTE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; - echo "
Liste Name muß mindestens 2 Buchstaben lang sein\n"; - } - else - { - echo "
LISTE ÄNDERTE: $list_id\n"; + echo ""; - $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate' where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - if ($reset_list == 'Y') + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) { - echo "
ZURÜCKSTELLEN VON VON LIST-CALLED-STATUS\n"; - $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; - $rslt=mysql_query($stmtB, $link); + echo "
LISTE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Liste Name muß mindestens 2 Buchstaben lang sein\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTE ÄNDERTE: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } - if ($campaign_id != "$old_campaign_id") - { - echo "
ENTFERNEN DER LISTE ZUFUHRBEHÄLTER-LEITUNGEN VOM ALTEN KAMPAGNEZUFUHRBEHÄLTER ($old_campaign_id)\n"; - $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; - $rslt=mysql_query($stmtC, $link); + + if ($reset_list == 'Y') + { + echo "
ZURÜCKSTELLEN VON VON LIST-CALLED-STATUS\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
ENTFERNEN DER LISTE ZUFUHRBEHÄLTER-LEITUNGEN VOM ALTEN KAMPAGNEZUFUHRBEHÄLTER ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311; # go to list modification form below } -$ADD=311; # go to list modification form below -} ###################### @@ -9983,58 +12026,88 @@ $ADD=311; # go to list modification form below ###################### if ($ADD==4111) -{ + { if ($LOGmodify_ingroups==1) - { - echo ""; - - if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - echo "
GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; - echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GRUPPE GEÄNDERT: $group_id\n"; + + $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
GRUPPE GEÄNDERT: $group_id\n"; - - $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias' where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111; # go to in-group modification form below } -$ADD=3111; # go to in-group modification form below -} - ###################### @@ -10042,81 +12115,222 @@ $ADD=3111; # go to in-group modification form below ###################### if ($ADD==4311) -{ + { if ($LOGmodify_dids==1) - { - echo ""; - - if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) { - echo "
NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
did_extension must be at least 1 character in length\n"; - } - else - { - echo "
DID VERÄNDERTE: $did_pattern\n"; + echo ""; - $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code' where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID VERÄNDERTE: $did_pattern\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3311; # go to did modification form below } -$ADD=3311; # go to did modification form below -} +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL MENU MODIFIED: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + ###################### # ADD=41111 modify remote agents info in the system ###################### if ($ADD==41111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo ""; - - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
REMOTEMITTEL NICHT GEÄNDERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; - echo "
Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein\n"; - } - else - { - $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
REMOTEMITTEL GEÄNDERT\n"; + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
REMOTEMITTEL NICHT GEÄNDERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
REMOTEMITTEL GEÄNDERT\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below } -$ADD=31111; # go to remote agents modification form below -} - ###################### @@ -10124,169 +12338,181 @@ $ADD=31111; # go to remote agents modification form below ###################### if ($ADD==411111) -{ + { if ($LOGmodify_usergroups==1) - { - echo ""; - - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
BENUTZER-GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; - echo "
Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein\n"; - } - else - { - $p=0; - $GROUP_shifts=' '; - $group_shifts_ct = count($group_shifts); - while ($p <= $group_shifts_ct) + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - $GROUP_shifts .= "$group_shifts[$p] "; - $p++; + echo "
BENUTZER-GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; + echo "
Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein\n"; } - $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement' where user_group='$OLDuser_group';"; - $rslt=mysql_query($stmt, $link); - - echo "
BENUTZER-GRUPPE GEÄNDERT\n"; - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY User Group', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
BENUTZER-GRUPPE GEÄNDERT\n"; - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY User Group', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $group_found_count = $row[0]; - $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### } - - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111; # go to user group modification form below } -$ADD=311111; # go to user group modification form below -} + ###################### # ADD=4111111 modify script in the system ###################### if ($ADD==4111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo ""; - - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
INDEX NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Indexname, -beschreibung und -text müssen mindestens 2 Buchstabenlang sein\n"; - } - else - { - $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='$script_text', active='$active' where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
INDEX ÄNDERTE\n"; + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
INDEX NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Indexname, -beschreibung und -text müssen mindestens 2 Buchstabenlang sein\n"; + } + else + { + $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='" . mysql_real_escape_string($script_text) . "', active='$active' where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INDEXE', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
INDEX ÄNDERTE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INDEXE', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111111; # go to script modification form below } -$ADD=3111111; # go to script modification form below -} ###################### @@ -10294,39 +12520,41 @@ $ADD=3111111; # go to script modification form below ###################### if ($ADD==41111111) -{ + { if ($LOGmodify_filters==1) - { - echo ""; - - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTER NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Filtern Sie Identifikation, Namen und SQL muß mindestens 2 Buchstabenlang sein\n"; - } - else - { - $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='$lead_filter_sql' where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
FILTER GEÄNDERT\n"; + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTER NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Filtern Sie Identifikation, Namen und SQL muß mindestens 2 Buchstabenlang sein\n"; + } + else + { + $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "' where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTER', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
FILTER GEÄNDERT\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTER', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111111; # go to filter modification form below } -$ADD=31111111; # go to filter modification form below -} ###################### @@ -10334,55 +12562,55 @@ $ADD=31111111; # go to filter modification form below ###################### if ($ADD==411111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
Anrufzeit nicht geändert - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Anrufzeit ID und Name müssen mindestens 2 Zeichen Länge haben\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
Anrufzeit geändert\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
Anrufzeit nicht geändert - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID und Name müssen mindestens 2 Zeichen Länge haben\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
Anrufzeit geändert\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111111; # go to call time modification form below } -$ADD=311111111; # go to call time modification form below -} ###################### @@ -10390,55 +12618,55 @@ $ADD=311111111; # go to call time modification form below ###################### if ($ADD==4111111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
Landesspezifische Anrufzeit nicht geändert - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Landesspezifische Anrufzeit ID, Name und Land müssen mindestens 2 Zeichen Länge haben\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
Landesspezifische Anrufzeit geändert\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
Landesspezifische Anrufzeit nicht geändert - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Landesspezifische Anrufzeit ID, Name und Land müssen mindestens 2 Zeichen Länge haben\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
Landesspezifische Anrufzeit geändert\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below } -$ADD=3111111111; # go to state call time modification form below -} ###################### @@ -10446,50 +12674,50 @@ $ADD=3111111111; # go to state call time modification form below ###################### if ($ADD==431111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; + { + echo ""; - $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) - { - echo "
SHIFT DEFINITION NOT MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Shift-ID und Name muss mindestens 2 Zeichen lang sein\n"; - echo "
Start Time Shift muss aus 4 Ziffern in der Länge und eine gültige Uhrzeit\n"; - echo "
Shift Länge muss mindestens 5 Zeichen lang sein und 24 Stunden oder weniger\n"; - } - else - { - $p=0; - $shift_weekdays_ct = count($shift_weekdays); - while ($p <= $shift_weekdays_ct) + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - $SHIFT_weekdays .= "$shift_weekdays[$p]"; - $p++; + echo "
SHIFT DEFINITION NOT MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Shift-ID und Name muss mindestens 2 Zeichen lang sein\n"; + echo "
Start Time Shift muss aus 4 Ziffern in der Länge und eine gültige Uhrzeit\n"; + echo "
Shift Länge muss mindestens 5 Zeichen lang sein und 24 Stunden oder weniger\n"; } - $shift_start_time = preg_replace('/\D/', '', $shift_start_time); - $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); - echo "
UMSCHALT VERÄNDERTE\n"; + echo "
UMSCHALT VERÄNDERTE\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=331111111; # go to shift modification form below } -$ADD=331111111; # go to shift modification form below -} ###################### @@ -10497,47 +12725,47 @@ $ADD=331111111; # go to shift modification form below ###################### if ($ADD==41111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) - {echo "
TELEFON NICHT GEÄNDERT - es gibt bereits ein Telefon im System mitdiesem extension/server\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
TELEFON NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} - else + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELEFON NICHT GEÄNDERT - es gibt bereits ein Telefon im System mitdiesem extension/server\n";} + else { - echo "
TELEFON GEÄNDERT: $extension\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELEFON NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
TELEFON GEÄNDERT: $extension\n"; - $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override' where extension='$old_extension' and server_ip='$old_server_ip';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN ÄNDERN SIE TELEFON', event_sql=\"$SQL_log\", event_notes='Bediener IP: $server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN ÄNDERN SIE TELEFON', event_sql=\"$SQL_log\", event_notes='Bediener IP: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below } -$ADD=31111111111; # go to phone modification form below -} ###################### @@ -10545,39 +12773,39 @@ $ADD=31111111111; # go to phone modification form below ###################### if ($ADD==42111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) - {echo "
TEL ALIAS NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else { - echo "
TEL ALIAS VERÄNDERTE: $alias_id\n"; + echo ""; - $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
TEL ALIAS NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
TEL ALIAS VERÄNDERTE: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFY TEL ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFY TEL ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below } -$ADD=32111111111; # go to phone alias modification form below -} ###################### @@ -10585,39 +12813,39 @@ $ADD=32111111111; # go to phone alias modification form below ###################### if ($ADD==43111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) - {echo "
GROUP ALIAS NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else { - echo "
GROUP ALIAS VERÄNDERTE: $alias_id\n"; + echo ""; - $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
GROUP ALIAS NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
GROUP ALIAS VERÄNDERTE: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFY GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFY GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below } -$ADD=33111111111; # go to group alias modification form below -} ###################### @@ -10625,55 +12853,55 @@ $ADD=33111111111; # go to group alias modification form below ###################### if ($ADD==411111111111) -{ - if ($LOGmodify_servers==1) { - echo ""; - - $stmt="SELECT count(*) from servers where server_id='$server_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_id != $old_server_id) ) - {echo "
BEDIENERNOT MODIFIED - there is already a server in the system with this server_id\n";} - else + if ($LOGmodify_servers==1) { - $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) - {echo "
BEDIENER NICHT GEÄNDERT - es gibt bereits einen Bediener im Systemmit diesem server_ip\n";} + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
BEDIENERNOT MODIFIED - there is already a server in the system with this server_id\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) - {echo "
BEDIENER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} - else + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
BEDIENER NICHT GEÄNDERT - es gibt bereits einen Bediener im Systemmit diesem server_ip\n";} + else { - echo "
BEDIENER GEÄNDERT: $server_ip\n"; + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
BEDIENER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); - $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second' where server_id='$old_server_id';"; - $rslt=mysql_query($stmt, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + echo "
BEDIENER GEÄNDERT: $server_ip\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN ÄNDERN SIE BEDIENER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN ÄNDERN SIE BEDIENER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111111111; # go to server modification form below } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10681,57 +12909,57 @@ $ADD=311111111111; # go to server modification form below ###################### if ($ADD==421111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $MAXvicidial_trunks = $rowx[0]; - - $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); - - if ($SUMvicidial_trunks > $MAXvicidial_trunks) { - echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - die Zahl vicidial Stämmen ist zu hoch: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - die Zahl vicidial Stämmen ist zu hoch: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne muß zwischen 3 und 8 Buchstaben lang sein\n"; + echo "
server_ip verzögert muß mindestens 7 Buchstaben sein\n"; + echo "
Stämme müssen eine Stelle von 0 bis 9999 sein\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
VICIDIAL BEDIENER-STAMM-SATZ ÄNDERTE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTrunks', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN ÄNDERN SIE BEDIENER TRUNK', event_sql=\"$SQL_log\", event_notes='Kampagne: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } } else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) - { - echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Kampagne muß zwischen 3 und 8 Buchstaben lang sein\n"; - echo "
server_ip verzögert muß mindestens 7 Buchstaben sein\n"; - echo "
Stämme müssen eine Stelle von 0 bis 9999 sein\n"; - } - else - { - echo "
VICIDIAL BEDIENER-STAMM-SATZ ÄNDERTE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; - - $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTrunks', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN ÄNDERN SIE BEDIENER TRUNK', event_sql=\"$SQL_log\", event_notes='Kampagne: $campaign_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; } + $ADD=311111111111; # go to server modification form below } - else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; - } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10739,39 +12967,39 @@ $ADD=311111111111; # go to server modification form below ###################### '$template_id','$template_name','$template_contents' if ($ADD==431111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) - {echo "
CONF-Vorlagen nicht VERÄNDERTE - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else { - echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + echo ""; - $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF-Vorlagen nicht VERÄNDERTE - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below } -$ADD=331111111111; # go to conf template modification form below -} ###################### @@ -10779,39 +13007,222 @@ $ADD=331111111111; # go to conf template modification form below ###################### if ($ADD==441111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) - {echo "
CARRIER NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} - else { - echo "
CARRIER VERÄNDERTE: $carrier_id\n"; + echo ""; - $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active' where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
CARRIER NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY CARRIER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
CARRIER VERÄNDERTE: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS Eintrag nicht MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS ENTRY MODIFIED: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD Eintrag nicht MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD ENTRY MODIFIED: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD Eintrag nicht MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD ENTRY MODIFIED: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
Voicemail-Box NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Voicemail-Box MODIFIED: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below } -$ADD=341111111111; # go to carrier modification form below -} ###################### @@ -10819,36 +13230,36 @@ $ADD=341111111111; # go to carrier modification form below ###################### if ($ADD==4111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
KONFERENZ NICHT GEÄNDERT - es gibt bereits eine Konferenz im Systemmit diesem Verlängerung-Bediener\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
KONFERENZ NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} - else - { - echo "
KONFERENZ ÄNDERTE: $conf_exten\n"; + echo ""; - $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
KONFERENZ NICHT GEÄNDERT - es gibt bereits eine Konferenz im Systemmit diesem Verlängerung-Bediener\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
KONFERENZ NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
KONFERENZ ÄNDERTE: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below } -$ADD=3111111111111; # go to conference modification form below -} ###################### @@ -10856,38 +13267,37 @@ $ADD=3111111111111; # go to conference modification form below ###################### if ($ADD==41111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
VICIDIAL KONFERENZ NICHT GEÄNDERT - es gibt bereits eine Konferenz im Systemmit diesem Verlängerung-Bediener\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
VICIDIAL KONFERENZ NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} - else + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL KONFERENZ NICHT GEÄNDERT - es gibt bereits eine Konferenz im Systemmit diesem Verlängerung-Bediener\n";} + else { - echo "
VICIDIAL KONFERENZ ÄNDERTE: $conf_exten\n"; + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL KONFERENZ NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
VICIDIAL KONFERENZ ÄNDERTE: $conf_exten\n"; - $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below } -$ADD=31111111111111; # go to vicidial conference modification form below -} - ###################### @@ -10902,7 +13312,7 @@ if ($ADD==411111111111111) echo "
VICIDIAL SYSTEM EINSTELLUNGEN GEÄNDERT WORDEN\n"; - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second';"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -10971,7 +13381,7 @@ if ($ADD==421111111111111) { echo "
SYSTEMSTATUS GEÄNDERT: $status\n"; - $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where status='$status';"; + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -11003,13 +13413,13 @@ if ($ADD==431111111111111) { echo ""; - if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) { echo "
STATUS-KATEGORIE NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; echo "
die Statuskategorie kann nicht eine reservierte Kategorie sein:UNDEFINED\n"; echo "
die Statuskategorie muß mindestens 2 Buchstaben lang sein\n"; } - else + else { if (ereg('delete',$stage)) { @@ -11066,67 +13476,67 @@ if ($ADD==431111111111111) ###################### if ($ADD==441111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) - { - echo ""; - - if (ereg('delete',$stage)) { - if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + echo ""; + + if (ereg('delete',$stage)) { - echo "
QC-Statuscode nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; - echo "
qc der Status-Code muss mindestens 1 Zeichen lang sein\n"; + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC-Statuscode nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
qc der Status-Code muss mindestens 1 Zeichen lang sein\n"; + } + else + { + echo "
QC-Statuscode gestrichen:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - else + if (ereg('modify',$stage)) { - echo "
QC-Statuscode gestrichen:$code\n"; + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QK-Status-Code nicht geändert- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
qc der Status-Code muss mindestens 1 Zeichen lang sein\n"; + echo "
qc Status der Code-Name muss mindestens 1 Zeichen lang sein\n"; + } + else + { + echo "
QK-Status-Code geändert:$code\n"; - $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - if (ereg('modify',$stage)) - { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) - { - echo "
QK-Status-Code nicht geändert- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
qc der Status-Code muss mindestens 1 Zeichen lang sein\n"; - echo "
qc Status der Code-Name muss mindestens 1 Zeichen lang sein\n"; - } - else - { - echo "
QK-Status-Code geändert:$code\n"; - - $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below } -$ADD=341111111111111; # go to qc status code modification form below -} @@ -11143,336 +13553,358 @@ $ADD=341111111111111; # go to qc status code modification form below ###################### if ($ADD==5) -{ + { echo ""; - if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) { - echo "
BENUTZER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
User be at least 2 characters in length\n"; + echo "
BENUTZER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
User be at least 2 characters in length\n"; } - else + else { echo "
BENUTZER-AUSLASSUNG BESTÄTIGUNG: $user\n"; echo "

Klicken Sie hier, um Benutzer zu löschen $user


\n"; } -$ADD='3'; # go to user modification below -} + $ADD='3'; # go to user modification below + } ###################### # ADD=51 confirmation before deletion of campaign ###################### if ($ADD==51) -{ + { echo ""; - if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) { - echo "
KAMPAGNE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Kampagne_id be at least 2 characters in length\n"; + echo "
KAMPAGNE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; } - else + else { echo "
KAMPAGNE AUSLASSUNG BESTÄTIGUNG: $campaign_id\n"; echo "

Klicken Sie hier, um Kampagne zu löschen $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=52 confirmation before logging all agents out of campaign of campaign ###################### if ($ADD==52) -{ + { echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
MITTEL GELOGGT NICHT AUS KAMPAGNE HERAUS - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Kampagne_id be at least 2 characters in length\n"; + echo "
MITTEL GELOGGT NICHT AUS KAMPAGNE HERAUS - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; } - else + else { echo "
MITTELLOGOUT-BESTÄTIGUNG: $campaign_id\n"; - echo "

Klicken Sie hier, um alle Mittel aus zu loggen $campaign_id


\n"; + echo "

Klicken Sie hier, um alle Mittel aus zu loggen $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record ###################### if ($ADD==53) -{ + { if (eregi('IN',$stage)) {$group_id=$campaign_id;} echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
VDAC NICHT LÖSCHTE FÜR KAMPAGNE - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Kampagne_id be at least 2 characters in length\n"; + echo "
VDAC NICHT LÖSCHTE FÜR KAMPAGNE - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; } - else + else { echo "
VDAC AUSLÖSEBESTÄTIGUNG: $campaign_id\n"; echo "

Klicken Sie hier, um das älteste zu löschen LEBEN Aufzeichnung inVDAC für $campaign_id


\n"; } -# go to campaign modification below -if (eregi('IN',$stage)) - {$ADD='3111';} -else - {$ADD='31';} -} + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } ###################### # ADD=511 confirmation before deletion of list ###################### if ($ADD==511) -{ + { echo ""; - if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) { - echo "
LISTE NICHT GELÖSCHT WORDEN - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
List_id be at least 2 characters in length\n"; + echo "
LISTE NICHT GELÖSCHT WORDEN - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
List_id be at least 2 characters in length\n"; } - else + else { echo "
LISTE AUSLASSUNG BESTÄTIGUNG: $list_id\n"; echo "

Klicken Sie hier, um Liste und alle seine Leitungen zu löschen $list_id


\n"; } -$ADD='311'; # go to campaign modification below -} + $ADD='311'; # go to campaign modification below + } ###################### # ADD=5111 confirmation before deletion of in-group ###################### if ($ADD==5111) -{ + { echo ""; - if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) { - echo "
IN-GROUP NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Group_id be at least 2 characters in length\n"; + echo "
IN-GROUP NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Group_id be at least 2 characters in length\n"; } - else + else { echo "
IN-GROUP AUSLASSUNG BESTÄTIGUNG: $group_id\n"; echo "

Klicken Sie hier, um Ingruppe zu löschen $group_id


\n"; } -$ADD='3111'; # go to in-group modification below -} + $ADD='3111'; # go to in-group modification below + } ###################### # ADD=5311 confirmation before deletion of did ###################### if ($ADD==5311) -{ + { echo ""; - if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) { - echo "
NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
did_id be at least 1 characters in length\n"; + echo "
NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
did_id be at least 1 characters in length\n"; } - else + else { - echo "
DID STREICHUNG BESTÄTIGUNG: $group_id\n"; + echo "
DID STREICHUNG BESTÄTIGUNG: $menu_id\n"; echo "

Klicken Sie hier, um zu löschenDID $did_id


\n"; } -$ADD='3311'; # go to did modification below -} + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CALL MENU Bestätigungsfenster: $menu_id\n"; + echo "

Klicken Sie hier, um zu löschen CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } ###################### # ADD=51111 confirmation before deletion of remote agent record ###################### if ($ADD==51111) -{ + { echo ""; - if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) { - echo "
REMOTEMITTEL NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Remote_agent_id be at least 2 characters in length\n"; + echo "
REMOTEMITTEL NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; } - else + else { echo "
REMOTEMITTEL-AUSLASSUNG BESTÄTIGUNG: $remote_agent_id\n"; echo "

Klicken Sie hier, um Remotemittel zu löschen $remote_agent_id


\n"; } -$ADD='31111'; # go to remote agent modification below -} + $ADD='31111'; # go to remote agent modification below + } ###################### # ADD=511111 confirmation before deletion of user group record ###################### if ($ADD==511111) -{ + { echo ""; - if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) { - echo "
BENUTZER-GRUPPE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
User_group be at least 2 characters in length\n"; + echo "
BENUTZER-GRUPPE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
User_group be at least 2 characters in length\n"; } - else + else { echo "
BENUTZER-GRUPPE AUSLASSUNG BESTÄTIGUNG: $user_group\n"; echo "

Klicken Sie hier, um Benutzergruppe zu löschen $user_group


\n"; } -$ADD='311111'; # go to user group modification below -} + $ADD='311111'; # go to user group modification below + } ###################### # ADD=5111111 confirmation before deletion of script record ###################### if ($ADD==5111111) -{ + { echo ""; - if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) { - echo "
INDEX NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Script_id must be at least 2 characters in length\n"; + echo "
INDEX NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Script_id must be at least 2 characters in length\n"; } - else + else { echo "
INDEX-AUSLASSUNG BESTÄTIGUNG: $script_id\n"; echo "

Klicken Sie hier, um Index zu löschen $script_id


\n"; } -$ADD='3111111'; # go to script modification below -} + $ADD='3111111'; # go to script modification below + } ###################### # ADD=51111111 confirmation before deletion of filter record ###################### if ($ADD==51111111) -{ + { echo ""; - if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) { - echo "
FILTER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Filter Identifikation muß mindestens 2 Buchstaben lang sein\n"; + echo "
FILTER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Filter Identifikation muß mindestens 2 Buchstaben lang sein\n"; } - else + else { echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; echo "

Klicken Sie hier, um Filter zu löschen$lead_filter_id


\n"; } -$ADD='31111111'; # go to filter modification below -} + $ADD='31111111'; # go to filter modification below + } ###################### # ADD=511111111 confirmation before deletion of call time record ###################### if ($ADD==511111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; + echo "
Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; } - else + else { echo "
Löschen der Anrufzeit bestätigen: $call_time_id\n"; echo "

Klicken Sie hier, um zu löschencall time $call_time_id


\n"; } -$ADD='311111111'; # go to call time modification below -} + $ADD='311111111'; # go to call time modification below + } ###################### # ADD=5111111111 confirmation before deletion of state call time record ###################### if ($ADD==5111111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
Landesspezifische Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; + echo "
Landesspezifische Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; } - else + else { echo "
Löschen der landesspezifischen Anrufzeit bestätigen: $call_time_id\n"; echo "

Klicken Sie hier, um zu löschenstate call time $call_time_id


\n"; } -$ADD='3111111111'; # go to state call time modification below -} + $ADD='3111111111'; # go to state call time modification below + } ###################### # ADD=531111111 confirmation before deletion of shift record ###################### if ($ADD==531111111) -{ + { echo ""; - if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
UMSCHALT nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Shift ID must be at least 2 characters in length\n"; + echo "
UMSCHALT nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Shift ID must be at least 2 characters in length\n"; } - else + else { echo "
UMSCHALT STREICHUNG Bestätigung:$shift_id\n"; echo "

Klicken Sie hier, um zu löschen Verschiebung $shift_id


\n"; } -$ADD='331111111'; # go to call time modification below -} + $ADD='331111111'; # go to call time modification below + } ###################### # ADD=51111111111 confirmation before deletion of phone record ###################### if ($ADD==51111111111) -{ + { echo ""; - if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
TELEFON NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Extension be at least 2 characters in length\n"; - echo "
Bediener IP be at least 7 characters in length\n"; + echo "
TELEFON NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; } - else + else { echo "
TELEFON-AUSLASSUNG BESTÄTIGUNG: $extension - $server_ip\n"; echo "

Klicken Sie hier, um Telefon zu löschen $extension - $server_ip


\n"; } -$ADD='31111111111'; # go to phone modification below -} + $ADD='31111111111'; # go to phone modification below + } ###################### @@ -11480,21 +13912,21 @@ $ADD='31111111111'; # go to phone modification below ###################### if ($ADD==52111111111) -{ + { echo ""; - if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
TEL ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Alias ID must be at least 2 characters in length\n"; + echo "
TEL ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Alias ID must be at least 2 characters in length\n"; } - else + else { echo "
TEL ALIAS STREICHUNG BESTÄTIGUNG: $alias_id\n"; echo "

Klicken Sie hier, um zu löschen Telefon Alias $alias_id


\n"; } -$ADD='32111111111'; # go to phone alias modification below -} + $ADD='32111111111'; # go to phone alias modification below + } ###################### @@ -11502,21 +13934,21 @@ $ADD='32111111111'; # go to phone alias modification below ###################### if ($ADD==53111111111) -{ + { echo ""; - if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
GROUP ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Alias-ID-Gruppe must be at least 2 characters in length\n"; + echo "
GROUP ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Alias-ID-Gruppe must be at least 2 characters in length\n"; } - else + else { echo "
GROUP ALIAS STREICHUNG BESTÄTIGUNG: $group_alias_id\n"; echo "

Klicken Sie hier, um Alias-Gruppe löschen $group_alias_id


\n"; } -$ADD='33111111111'; # go to group alias modification below -} + $ADD='33111111111'; # go to group alias modification below + } ###################### @@ -11524,22 +13956,22 @@ $ADD='33111111111'; # go to group alias modification below ###################### if ($ADD==511111111111) -{ + { echo ""; - if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
BEDIENERNOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Bediener Identifikation be at least 2 characters in length\n"; - echo "
Bediener IP be at least 7 characters in length\n"; + echo "
BEDIENERNOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Bediener Identifikation be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; } - else + else { echo "
BEDIENERDELETION CONFIRMATION: $server_id - $server_ip\n"; echo "

Klicken Sie hier, um Telefon zu löschen $server_id - $server_ip


\n"; } -$ADD='311111111111'; # go to server modification below -} + $ADD='311111111111'; # go to server modification below + } ###################### @@ -11547,21 +13979,21 @@ $ADD='311111111111'; # go to server modification below ###################### if ($ADD==531111111111) -{ + { echo ""; - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) { - echo "
CONF TEMPLATE nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Vorlagen-ID von mindestens 2 Zeichen lang sein\n"; + echo "
CONF TEMPLATE nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Vorlagen-ID von mindestens 2 Zeichen lang sein\n"; } - else + else { echo "
CONF TEMPLATE STREICHUNG BESTÄTIGUNG: $template_id - $template_name\n"; echo "

Klicken Sie hier, um zu löschen conf Vorlage $template_id - $template_name


\n"; } -$ADD='331111111111'; # go to conf template modification below -} + $ADD='331111111111'; # go to conf template modification below + } ###################### @@ -11569,21 +14001,87 @@ $ADD='331111111111'; # go to conf template modification below ###################### if ($ADD==541111111111) -{ + { echo ""; - if (strlen($carrier_id) < 2) + if (strlen($carrier_id) < 2) { - echo "
CARRIER nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Carrier-ID von mindestens 2 Zeichen lang sein\n"; + echo "
CARRIER nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Carrier-ID von mindestens 2 Zeichen lang sein\n"; } - else + else { echo "
CARRIER STREICHUNG BESTÄTIGUNG: $carrier_id - $carrier_name\n"; echo "

Klicken Sie hier, um zu löschen Träger $carrier_id - $carrier_name


\n"; } -$ADD='341111111111'; # go to carrier modification below -} + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
TTS-ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ENTRY Bestätigungsfenster: $tts_id - $tts_name\n"; + echo "

Klicken Sie hier, um den Eintrag zu löschen tts $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
MUSIC ON HOLD Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
MUSIC ON HOLD ENTRY Bestätigungsfenster: $moh_id - $moh_name\n"; + echo "

Klicken Sie hier, um Wartemusik Eintrag löschen $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
Voicemail-Box NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Voicemail-ID be at least 2 characters in length\n"; + } + else + { + echo "
Voicemail-Box Bestätigungsfenster: $voicemail_id - $fullname\n"; + echo "

Klicken Sie hier, um zu löschen Voicemail-Box $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } ###################### @@ -11591,22 +14089,22 @@ $ADD='341111111111'; # go to carrier modification below ###################### if ($ADD==5111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
Bediener IP be at least 7 characters in length\n"; + echo "
CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; } - else + else { echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Klicken Sie hier, um Telefon zu löschen $conf_exten - $server_ip


\n"; } -$ADD='3111111111111'; # go to conference modification below -} + $ADD='3111111111111'; # go to conference modification below + } ###################### @@ -11614,22 +14112,22 @@ $ADD='3111111111111'; # go to conference modification below ###################### if ($ADD==51111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
VICIDIAL CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
Bediener IP be at least 7 characters in length\n"; + echo "
VICIDIAL CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; } - else + else { echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Klicken Sie hier, um Telefon zu löschen $conf_exten - $server_ip


\n"; } -$ADD='31111111111111'; # go to vicidial conference modification below -} + $ADD='31111111111111'; # go to vicidial conference modification below + } @@ -11650,8 +14148,8 @@ if ($ADD==6) if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) { - echo "
BENUTZER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
User be at least 2 characters in length\n"; + echo "
BENUTZER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
User be at least 2 characters in length\n"; } else { @@ -11689,8 +14187,8 @@ if ($ADD==61) if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) { - echo "
KAMPAGNE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; - echo "
Kampagne_id be at least 2 characters in length\n"; + echo "
KAMPAGNE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; } else { @@ -11749,6 +14247,7 @@ if ($ADD==61) $ADD='10'; # go to campaigns list } + ###################### # ADD=62 Logout all agents from a campaign ###################### @@ -11766,8 +14265,174 @@ if ($ADD==62) } else { - $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -11833,7 +14498,7 @@ if ($ADD==63) if (eregi('IN',$stage)) {$ADD='3111';} else - {$ADD='31';} + {$ADD='31';} } @@ -11896,12 +14561,12 @@ if ($ADD==66) {echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT GELÖSCHT - dieser Vorwahlknopfstatus des Automobils Alt ist nicht in dieserKampagne\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; } - else + else { echo "
SELBSTALT VORWAHLKNOPF-STATUS GELÖSCHT: $campaign_id - $status\n"; @@ -11932,6 +14597,7 @@ if ($ADD==66) $ADD=31; # go to campaign modification form below } + ###################### # ADD=67 delete agent pause code in the system ###################### @@ -11942,12 +14608,12 @@ if ($ADD==67) { echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) { echo "
KAMPAGNE PAUSE CODE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; echo "
pause code must be between 1 and 6 characters in length\n"; } - else + else { echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; @@ -11989,12 +14655,12 @@ if ($ADD==68) {echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ENTFERNT - dieser Vorwahlknopfstatus wird nicht für diese Kampagne vorgewählt\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ENTFERNT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; } - else + else { echo "
KAMPAGNE VORWAHLKNOPF-STATUS ENTFERNT: $campaign_id - $status\n"; @@ -12108,6 +14774,7 @@ if ($ADD==6111) $ADD='1000'; # go to in-group list } + ###################### # ADD=6311 delete did record ###################### @@ -12141,6 +14808,42 @@ if ($ADD==6311) $ADD='1300'; # go to did list } +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU LÖSCHEN BEENDET: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + ###################### # ADD=61111 delete remote agent record ###################### @@ -12662,6 +15365,116 @@ if ($ADD==641111111111) } +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
TTS-ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
MUSIC ON HOLD Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MUSIC ON HOLD LÖSCHEN BEENDET: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Voicemail-Box NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Voicemail-ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Voicemail-Box LÖSCHEN BEENDET: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + ###################### # ADD=6111111111111 delete conference record ###################### @@ -12747,246 +15560,293 @@ if ($ADD==61111111111111) ###################### if ($ADD==3) -{ - if ($LOGmodify_users==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_level = $row[4]; - $user_group = $row[5]; - $phone_login = $row[6]; - $phone_pass = $row[7]; - $delete_users = $row[8]; - $delete_user_groups = $row[9]; - $delete_lists = $row[10]; - $delete_campaigns = $row[11]; - $delete_ingroups = $row[12]; - $delete_remote_agents = $row[13]; - $load_leads = $row[14]; - $campaign_detail = $row[15]; - $ast_admin_access = $row[16]; - $ast_delete_phones = $row[17]; - $delete_scripts = $row[18]; - $modify_leads = $row[19]; - $hotkeys_active = $row[20]; - $change_agent_campaign =$row[21]; - $agent_choose_ingroups =$row[22]; - $scheduled_callbacks = $row[24]; - $agentonly_callbacks = $row[25]; - $agentcall_manual = $row[26]; - $vicidial_recording = $row[27]; - $vicidial_transfers = $row[28]; - $delete_filters = $row[29]; - $alter_agent_interface_options =$row[30]; - $closer_default_blended = $row[31]; - $delete_call_times = $row[32]; - $modify_call_times = $row[33]; - $modify_users = $row[34]; - $modify_campaigns = $row[35]; - $modify_lists = $row[36]; - $modify_scripts = $row[37]; - $modify_filters = $row[38]; - $modify_ingroups = $row[39]; - $modify_usergroups = $row[40]; - $modify_remoteagents = $row[41]; - $modify_servers = $row[42]; - $view_reports = $row[43]; - $vicidial_recording_override = $row[44]; - $alter_custdata_override = $row[45]; - $qc_enabled = $row[46]; - $qc_user_level = $row[47]; - $qc_pass = $row[48]; - $qc_finish = $row[49]; - $qc_commit = $row[50]; - $add_timeclock_log = $row[51]; - $modify_timeclock_log = $row[52]; - $delete_timeclock_log = $row[53]; - $alter_custphone_override = $row[54]; - $vdc_agent_api_access = $row[55]; - $modify_inbound_dids = $row[56]; - $delete_inbound_dids = $row[57]; - $active = $row[58]; - $alert_enabled = $row[59]; - $download_lists = $row[60]; - $agent_shift_enforcement_override = $row[61]; - $manager_shift_enforcement_override = $row[62]; - $export_reports = $row[64]; - - if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + if ($LOGmodify_users==1) { - echo "
Sie haben nicht Erlaubnis, diesen Benutzer zu ändern: $row[1]\n"; - } - else - { - echo "
ÄNDERN Sie Einen BENUTZER-SATZ: $row[1]\n"; - if ($LOGuser_level > 8) - {echo "\n";} + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -13371,7 +16271,7 @@ if ($ADD==31) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; @@ -13453,8 +16517,8 @@ if ($ADD==31) { $nabs = abs($n); $dtl = 'Balanced'; - if ($n<0) {$dtl = 'Agents Waiting for Calls';} - if ($n>0) {$dtl = 'Calls Waiting for Agents';} + if ($n<0) {$dtl = 'Bevollmächtigte Waiting for Calls';} + if ($n>0) {$dtl = 'Calls Waiting for Bevollmächtigte';} if ($n == $adaptive_dl_diff_target) {echo "\n";} else @@ -13463,7 +16527,7 @@ if ($ADD==31) } echo " $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE\n"; - echo "\n"; + echo "\n"; echo "\n"; + + + echo "\n"; + + + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; } echo "\n"; @@ -13515,17 +16628,34 @@ if ($ADD==31) echo "\n"; + echo "$NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; } echo "\n"; @@ -13535,6 +16665,22 @@ if ($ADD==31) echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($SSoutbound_autodial_active > 0) { echo "\n"; @@ -13543,42 +16689,69 @@ if ($ADD==31) if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; } - echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; echo "\n"; @@ -13586,9 +16759,9 @@ if ($ADD==31) { echo "\n"; } - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -13622,13 +16795,17 @@ if ($ADD==31) if ($SSenable_vtiger_integration > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; } else { @@ -13636,8 +16813,18 @@ if ($ADD==31) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($campaign_allow_inbound == 'Y') { echo "\n"; echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Sie haben nicht Erlaubnis, diesen Benutzer zu ändern: $user\n"; + } else { - if ($LOGalter_agent_interface == "1") - {echo "\n";} + echo "
ÄNDERN Sie Einen BENUTZER-SATZ: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} else - {echo "\n";} - } - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - if ($LOGdelete_users > 0) - { - echo "

LÖSCHEN SIE DIESEN BENUTZER\n"; - } - echo "

Klicken Sie hier für Benutzerzeitblatt\n"; - echo "

Klicken Sie hier für Benutzerstatus\n"; - echo "

Klicken Sie hier für Benutzernotfall\n"; - echo "

Klicken Sie hier für die Benutzer mehrere Tage Status ausführlicher Bericht\n"; - echo "

Klicken Sie hier für Benutzer Wiederholungsbesuch Einflüsse\n"; - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Eintrag\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Benutzer-Zahl: $row[1]$NWB#vicidial_users-user$NWE
Kennwort:$NWB#vicidial_users-pass$NWE
Voller Name: $NWB#vicidial_users-full_name$NWE
Benutzer-Niveau: $NWB#vicidial_users-user_level$NWE
Benutzer-Gruppe: \n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "\n"; } - echo "\n"; - echo "\n"; - echo "\n"; + echo "$Ugroups_list"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - if ($SSqc_features_active > 0) + if ($SSuser_territories_active > 0) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; } - } - if ($LOGuser_level > 8) - { - echo "\n"; -#9BB9FB -#B9CBFD - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - if ($SSoutbound_autodial_active > 0) + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) { - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if ($LOGuser_level > 8) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + #9BB9FB + #B9CBFD + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - } - echo "\n"; - echo "
Benutzer-Zahl: $user$NWB#vicidial_users-user$NWE
Kennwort:$NWB#vicidial_users-pass$NWE
Voller Name: $NWB#vicidial_users-full_name$NWE
Benutzer-Niveau: $NWB#vicidial_users-user_level$NWE
Benutzer-Gruppe: $NWB#vicidial_users-user_group$NWE
Telefon-LOGON: $NWB#vicidial_users-phone_login$NWE
Telefon-Durchlauf: $NWB#vicidial_users-phone_pass$NWE
Aktiv:$NWB#vicidial_users-active$NWE
MITTEL-SCHNITTSTELLE WAHLEN:
Mittel Wählen Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Hot Keys Aktiv: $NWB#vicidial_users-hotkeys_active$NWE
Zeitlich geplante Wiederholungsbesuche: $NWB#vicidial_users-scheduled_callbacks$NWE
Mittel-Nur Wiederholungsbesuche: $NWB#vicidial_users-agentonly_callbacks$NWE
Vertreter-Anruf-Handbuch: $NWB#vicidial_users-agentcall_manual$NWE
Vicidial Aufnahme: $NWB#vicidial_users-vicidial_recording$NWE
Vicidial Übertragungen: $NWB#vicidial_users-vicidial_transfers$NWE
Genauere Rückstellung Gemischt: $NWB#vicidial_users-closer_default_blended$NWE
VICIDIAL Aufnahme-Übersteuerung: $NWB#vicidial_users-vicidial_recording_override$NWE
Mittel Ändern Kunde Daten-Übersteuerung: $NWB#vicidial_users-alter_custdata_override$NWE
Agent Alter Kunden Telefon AllowOverride:$NWB#vicidial_users-alter_custphone_override$NWE
Telefon-LOGON: $NWB#vicidial_users-phone_login$NWE
Telefon-Durchlauf: $NWB#vicidial_users-phone_pass$NWE
Aktiv:$NWB#vicidial_users-active$NWE
E-Mail:$NWB#vicidial_users-optional$NWE
User Code: $NWB#vicidial_users-optional$NWE
Main Territory: $NWB#vicidial_users-optional$NWE
Agent Shift Vollstreckung Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alarm aktiv: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Kampagne Rank:$NWB#vicidial_users-campaign_ranks$NWE
\n"; - echo "\n"; - echo "$RANKcampaigns_list"; - echo "
\n"; - echo "
Inbound Gruppen: $NWB#vicidial_users-closer_campaigns$NWE
\n"; - echo "\n"; - echo "$RANKgroups_list"; - echo "
\n"; - echo "
QC aktiv:$NWB#vicidial_users-qc_enabled$NWE
QC-Benutzer-Niveau:$NWB#vicidial_users-qc_user_level$NWE
QC-Pass:$NWB#vicidial_users-qc_pass$NWE
QC-Finish:$NWB#vicidial_users-qc_finish$NWE
QC-Commit:$NWB#vicidial_users-qc_commit$NWE
User Territories: $Uterrs_list
ADMIN SCHNITTSTELLE WAHLEN:
Ansicht-Berichte: $NWB#vicidial_users-view_reports$NWE
Ändern Sie Mittel-Schnittstelle Wahlen:$NWB#vicidial_users-alter_agent_interface_options$NWE
Ändern Sie Benutzer: $NWB#vicidial_users-modify_sections$NWE
Ändern Sie Vertreter-Kampagne: $NWB#vicidial_users-change_agent_campaign$NWE
Löschung-Benutzer: $NWB#vicidial_users-delete_users$NWE
Ändern Sie Benutzer-Gruppen: $NWB#vicidial_users-modify_sections$NWE
Löschung-Benutzer-Gruppen: $NWB#vicidial_users-delete_user_groups$NWE
Ändern Sie Listen: $NWB#vicidial_users-modify_sections$NWE
Löschung-Listen: $NWB#vicidial_users-delete_lists$NWE
Last Leitungen: $NWB#vicidial_users-load_leads$NWE
Ändern Sie Leitungen: $NWB#vicidial_users-modify_leads$NWE
Download-Listen: $NWB#vicidial_users-modify_leads$NWE
Exportieren von Berichten: $NWB#vicidial_users-export_reports$NWE
Ändern Sie Kampagnen: $NWB#vicidial_users-modify_sections$NWE
Kampagne Detail: $NWB#vicidial_users-campaign_detail$NWE
Löschung-Kampagnen: $NWB#vicidial_users-delete_campaigns$NWE
Ändern Sie In-Gruppen: $NWB#vicidial_users-modify_sections$NWE
Löschung In-Gruppen: $NWB#vicidial_users-delete_ingroups$NWE
Ändern DIDS:$NWB#vicidial_users-modify_sections$NWE
Löschen DIDS:$NWB#vicidial_users-delete_ingroups$NWE
Ändern Sie Remotemittel: $NWB#vicidial_users-modify_sections$NWE
Löschung-Direktübertragung Mittel: $NWB#vicidial_users-delete_remote_agents$NWE
Ändern Sie Indexe: $NWB#vicidial_users-modify_sections$NWE
Löschung-Indexs: $NWB#vicidial_users-delete_scripts$NWE
Ändern Sie Filter: $NWB#vicidial_users-modify_sections$NWE
Löschung-Filter: $NWB#vicidial_users-delete_filters$NWE
MITTEL-SCHNITTSTELLE WAHLEN:
Mittel Wählen Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Wählen Sie Agent Territories: $NWB#vicidial_users-agent_choose_territories$NWE
Hot Keys Aktiv: $NWB#vicidial_users-hotkeys_active$NWE
Zeitlich geplante Wiederholungsbesuche: $NWB#vicidial_users-scheduled_callbacks$NWE
Mittel-Nur Wiederholungsbesuche: $NWB#vicidial_users-agentonly_callbacks$NWE
Vertreter-Anruf-Handbuch: $NWB#vicidial_users-agentcall_manual$NWE
Vicidial Aufnahme: $NWB#vicidial_users-vicidial_recording$NWE
Vicidial Übertragungen: $NWB#vicidial_users-vicidial_transfers$NWE
Genauere Rückstellung Gemischt: $NWB#vicidial_users-closer_default_blended$NWE
VICIDIAL Aufnahme-Übersteuerung: $NWB#vicidial_users-vicidial_recording_override$NWE
Mittel Ändern Kunde Daten-Übersteuerung: $NWB#vicidial_users-alter_custdata_override$NWE
Agent Alter Kunden Telefon AllowOverride:$NWB#vicidial_users-alter_custphone_override$NWE
Agent Shift Vollstreckung Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alarm aktiv: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Lassen Sie Alerts: $NWB#vicidial_users-allow_alerts$NWE
Kampagne Rank:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Inbound Gruppen: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC aktiv:$NWB#vicidial_users-qc_enabled$NWE
QC-Benutzer-Niveau:$NWB#vicidial_users-qc_user_level$NWE
QC-Pass:$NWB#vicidial_users-qc_pass$NWE
QC-Finish:$NWB#vicidial_users-qc_finish$NWE
QC-Commit:$NWB#vicidial_users-qc_commit$NWE
AGC Admin Zugang: $NWB#vicidial_users-ast_admin_access$NWE
AGC Löschung-Telefone: $NWB#vicidial_users-ast_delete_phones$NWE
Bearbeite Anrufzeits: $NWB#vicidial_users-modify_call_times$NWE
Lösche Anrufzeits: $NWB#vicidial_users-delete_call_times$NWE
Ändern Sie Bediener: $NWB#vicidial_users-modify_sections$NWE
Agent API-Zugang:$NWB#vicidial_users-vdc_agent_api_access$NWE
ADMIN SCHNITTSTELLE WAHLEN:
AddTimeclock Log Record: $NWB#vicidial_users-add_timeclock_log$NWE
ÄndernTimeclock Log Record: $NWB#vicidial_users-modify_timeclock_log$NWE
Löschen der RegistrierungTimeclock Record: $NWB#vicidial_users-delete_timeclock_log$NWE
Ansicht-Berichte: $NWB#vicidial_users-view_reports$NWE
Shift Manager Vollstreckung Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
Ändern Sie Mittel-Schnittstelle Wahlen:$NWB#vicidial_users-alter_agent_interface_options$NWE
Ändern Sie Benutzer: $NWB#vicidial_users-modify_sections$NWE
Ändern Sie Vertreter-Kampagne: $NWB#vicidial_users-change_agent_campaign$NWE
Löschung-Benutzer: $NWB#vicidial_users-delete_users$NWE
\n"; + echo "
Ändern Sie Benutzer-Gruppen: $NWB#vicidial_users-modify_sections$NWE
Löschung-Benutzer-Gruppen: $NWB#vicidial_users-delete_user_groups$NWE
Ändern Sie Listen: $NWB#vicidial_users-modify_sections$NWE
Löschung-Listen: $NWB#vicidial_users-delete_lists$NWE
Last Leitungen: $NWB#vicidial_users-load_leads$NWE
Ändern Sie Leitungen: $NWB#vicidial_users-modify_leads$NWE
Download-Listen: $NWB#vicidial_users-modify_leads$NWE
Exportieren von Berichten: $NWB#vicidial_users-export_reports$NWE
Löschen von DNC-Listen: $NWB#vicidial_users-delete_from_dnc$NWE
Ändern Sie Kampagnen: $NWB#vicidial_users-modify_sections$NWE
Kampagne Detail: $NWB#vicidial_users-campaign_detail$NWE
Löschung-Kampagnen: $NWB#vicidial_users-delete_campaigns$NWE
Ändern Sie In-Gruppen: $NWB#vicidial_users-modify_sections$NWE
Löschung In-Gruppen: $NWB#vicidial_users-delete_ingroups$NWE
Ändern DIDS:$NWB#vicidial_users-modify_sections$NWE
Löschen DIDS:$NWB#vicidial_users-delete_ingroups$NWE
Ändern Sie Remotemittel: $NWB#vicidial_users-modify_sections$NWE
Löschung-Direktübertragung Mittel: $NWB#vicidial_users-delete_remote_agents$NWE
Ändern Sie Indexe: $NWB#vicidial_users-modify_sections$NWE
Löschung-Indexs: $NWB#vicidial_users-delete_scripts$NWE
Ändern Sie Filter: $NWB#vicidial_users-modify_sections$NWE
Löschung-Filter: $NWB#vicidial_users-delete_filters$NWE
AGC Admin Zugang: $NWB#vicidial_users-ast_admin_access$NWE
AGC Löschung-Telefone: $NWB#vicidial_users-ast_delete_phones$NWE
Bearbeite Anrufzeits: $NWB#vicidial_users-modify_call_times$NWE
Lösche Anrufzeits: $NWB#vicidial_users-delete_call_times$NWE
Ändern Sie Bediener: $NWB#vicidial_users-modify_sections$NWE
Agent API-Zugang:$NWB#vicidial_users-vdc_agent_api_access$NWE
AddTimeclock Log Record: $NWB#vicidial_users-add_timeclock_log$NWE
ÄndernTimeclock Log Record: $NWB#vicidial_users-modify_timeclock_log$NWE
Löschen der RegistrierungTimeclock Record: $NWB#vicidial_users-delete_timeclock_log$NWE
Shift Manager Vollstreckung Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

LÖSCHEN SIE DIESEN BENUTZER\n"; + } + echo "

Klicken Sie hier für Benutzerzeitblatt\n"; + echo "

Klicken Sie hier für Benutzerstatus\n"; + echo "

Klicken Sie hier für Benutzernotfall\n"; + echo "

Klicken Sie hier für die Benutzer mehrere Tage Status ausführlicher Bericht\n"; + echo "

Klicken Sie hier für Benutzer Wiederholungsbesuch Einflüsse\n"; + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Eintrag
\n"; + } } } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -12999,19 +15859,19 @@ if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==31) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; $rslt=mysql_query($stmt, $link); @@ -13019,7 +15879,7 @@ if ($ADD==31) $enable_vtiger_integration_LU = $row[0]; $vtiger_url_LU = $row[1]; - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $campaign_name = $row[1]; @@ -13124,6 +15984,42 @@ if ($ADD==31) $cpd_amd_action = $row[103]; $agent_allow_group_alias = $row[104]; $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -13169,14 +16065,13 @@ if ($ADD==31) $QCL_to_print = (count($QClists) -0); ##### get status listings for dynamic pulldown - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; $dial_statuses_list=''; $qc_statuses_list=''; $survey_ni_status_list=''; - $o=0; while ($statuses_to_print > $o) { @@ -13214,7 +16109,7 @@ if ($ADD==31) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -13355,9 +16250,14 @@ if ($ADD==31) echo "
Kampagne Beschreibung: $NWB#vicidial_campaigns-campaign_description$NWE
Kampagne Datum ändern: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Kampagne Login Datum: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Kampagne Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Park-Verlängerung: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Netz-Form: $NWB#vicidial_campaigns-web_form_address$NWE
Netz-Form: $NWB#vicidial_campaigns-web_form_address$NWE
Netz-Form Two: $NWB#vicidial_campaigns-web_form_address$NWE
Netz-Form-Target: $NWB#vicidial_campaigns-web_form_target$NWE
Erlauben Sie Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Vorwahlknopf-Status$o: \n"; + echo "
Vorwahlknopf-Status$o: \n"; if ($DEFstatusDISABLED > 0) { @@ -13385,14 +16285,118 @@ if ($ADD==31) } } - echo "
Add A Dial Status:
Add A Dial Status:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Liste Auftrag: $NWB#vicidial_campaigns-lead_order$NWE
Liste Auftrag: $NWB#vicidial_campaigns-lead_order$NWE
US-Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Drop Lockout Time: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Kraft-Zurückstellen des Zufuhrbehälters: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Vorwahlknopf-Methode: $NWB#vicidial_campaigns-dial_method$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       PASSEN SIE ÜBERSTEUERUNG AN
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       PASSEN SIE ÜBERSTEUERUNG AN
Vorhandenes Nur Tally: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Tropfen-Prozentsatz-Begrenzung: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Gleichzeitige Übertragungen: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Gleichzeitige Übertragungen: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Queue-Priorität: $NWB#vicidial_campaigns-queue_priority$NWE
Mehrere Kampagne Drop Rate Gruppe:$NWB#vicidial_campaigns-drop_rate_group$NWE
SelbstAlt-zahl Wählen: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_campaigns-next_agent_call$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_campaigns-next_agent_call$NWE
Ortsgespräch-Zeit:
Vorwahlknopf-Abschaltung: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Vorwahlknopf-Abschaltung: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Vorwahlknopf-Präfix: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Lassen Sie Telefon-Code Aus: $NWB#vicidial_campaigns-omit_phone_code$NWE
Kampagne CallerID: $NWB#vicidial_campaigns-campaign_cid$NWE
Kampagne CallerID: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Kampagne VDAD exten: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Kampagne VDAD exten: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Kampagne Rec exten: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_campaigns-get_call_launch$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_campaigns-get_call_launch$NWE
Antwortende Maschine Anzeige: $NWB#vicidial_campaigns-am_message_exten$NWE
Antwortende Maschine Anzeige: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Optionen: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD senden zu VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
AMD senden zu VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Aktion: $NWB#vicidial_campaigns-cpd_amd_action$NWE
CPD AMD Aktion: $NWB#vicidial_campaigns-cpd_amd_action$NWE
BringenSie DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Quick Transfer Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Vorab gefüllt Transfer Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Timer-Aktion: $NWB#vicidial_campaigns-timer_action$NWE
Timer-Aktion Message: $NWB#vicidial_campaigns-timer_action_message$NWE
Timer-Aktion Sekunden: $NWB#vicidial_campaigns-timer_action_seconds$NWE
Alternative Nummer wählen: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Verbindungsaufbau Sekunden: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Verbindungsaufbau Sekunden: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop-Aktion:$NWB#vicidial_campaigns-drop_action$NWE
Drop-Aktion:$NWB#vicidial_campaigns-drop_action$NWE
Sicherheitsnebenstelle: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Sicherheitsnebenstelle: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
Voicemail: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Drop-Transfer-Gruppe:
Drop-Transfer-Gruppe:$NWB#vicidial_campaigns-drop_inbound_group$NWE
Nachbereitung Sekunden $NWB#vicidial_campaigns-wrapup_seconds$NWE
Nachbereitung Nachricht $NWB#vicidial_campaigns-wrapup_message$NWE
Benutzen Sie Interne DNC Liste: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Benutzen Sie Interne DNC Liste: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Verwenden Sie Kampagne DNC Liste: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
Verwenden Sie Kampagne DNC Liste: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentPause CodesAktiv:$NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Kampagne Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Sperren Sie Ändern Kunde Daten: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Deaktivieren Alter Kunde Telefon:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Sperren Sie Ändern Kunde Daten: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Deaktivieren Alter Kunde Telefon:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Gewähren Sie Kein-Zufuhrbehälter-Führt LOGON: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
Nr. Hopper Dialing: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Eigentümer nur Dialing: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Wählen Sie Agent Territories: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent Anzeige dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agent Anzeige Queue Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Manuelle Vorwahlknopf-Liste Identifikation:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Agent Anzeige Queue Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Manual Dial Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent Profil Anrufe in der Warteschlange: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Profil Anrufe in der Warteschlange Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agent Grab Anrufe in der Warteschlange: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Call Agent Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agent Pause nach jedem Anruf: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Manuelle Vorwahlknopf-Liste Identifikation:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manual Dial Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent Screen Zwischenablage kopieren: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agent Screen Erweiterte Alt Zifferblatt: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Wege-Call Outbound CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Wege-Call Outbound CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Wege-Call-Vorwahl: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
3-Wege-Call-Vorwahl: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Alias-Gruppe erlaubt: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Vtiger Suche Kategorie: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Suche Kategorie: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Erstellen Call Record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Suche Dead-Konten: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Vtiger Erstellen Lead Record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Erstellen Call Record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Login Screen: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
Vtiger Erstellen Lead Record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Status Call: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Login Screen: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup-Adresse: $NWB#vicidial_campaigns-crm_login_address$NWE
Start Call URL: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Gewährte Inbound Gruppen:
"; @@ -13661,37 +16848,37 @@ if ($ADD==31) echo "
\n"; - echo "
\n"; + echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "
LISTEN INNERHALB DIESER KAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTEN INNERHALB DIESER KAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; - echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14411,7 +17626,7 @@ if ($ADD==34) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; - - echo "
\n"; - echo ""; + echo "\n"; echo "
\n"; + echo ""; - $LISTlink='stage=LISTIDDOWN'; - $TALLYlink='stage=TALLYDOWN'; - $ACTIVElink='stage=ACTIVEDOWN'; - $CAMPAIGNlink='stage=CAMPAIGNDOWN'; - $CALLDATElink='stage=CALLDATEDOWN'; - $SQLorder='order by list_id'; - if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} - if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} - if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} - if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} - if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} - if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} - if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} - if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} - if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} - if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -13744,47 +16931,48 @@ if ($ADD==31) echo "

\n"; - echo "
\n"; + echo "
\n"; - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} - else - {$fSQL = '';} + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Diese Kampagne hat$active_lists aktive Listen und$inactive_lists unaktivierte Listen

\n"; + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Diese Kampagne hat$active_lists aktive Listen und$inactive_lists unaktivierte Listen

\n"; - if ($display_dialable_count == 'Y') - { - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - echo " - Verberge

"; + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - Verberge

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - Zeige

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Diese Kampagne hat$hopper_leads Leitungen im Vorwahlknopfzufuhrbehälter

\n"; + echo "Klicken Sie hier, um zu sehen, welche Leitungen im Zufuhrbehälter imAugenblick sind

\n"; + echo "Klicken Sie hier, um ein VDAD Bericht für diese Kampagne

\n"; } - else + echo "Klicken Sie hier, um alle Wiederholungsbesuch Einflüsse in dieserKampagne zu sehen

\n"; + if ($LOGuser_level >= 9) { - echo "Popup Dialable Leads Count"; - echo " - Zeige

"; + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Kampagne
\n"; } - - $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $hopper_leads = "$rowx[0]"; - - echo "Diese Kampagne hat$hopper_leads Leitungen im Vorwahlknopfzufuhrbehälter

\n"; - echo "Klicken Sie hier, um zu sehen, welche Leitungen im Zufuhrbehälter imAugenblick sind

\n"; - echo "Klicken Sie hier, um ein VDAD Bericht für diese Kampagne

\n"; + echo "
\n"; } - echo "Klicken Sie hier, um alle Wiederholungsbesuch Einflüsse in dieserKampagne zu sehen

\n"; - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Kampagne\n"; - } - echo "
\n"; - } ##### CAMPAIGN CUSTOM STATUSES ##### @@ -13810,9 +16998,9 @@ if ($ADD==31) echo "
\n"; echo "
KUNDENSPEZIFISCHE STATUS INNERHALB DIESER KAMPAGNE:   $NWB#vicidial_campaign_statuses$NWE
\n"; echo "\n"; - echo "\n"; + echo "\n"; - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -13845,6 +17033,14 @@ if ($ADD==31) echo "\n"; } @@ -13855,8 +17051,13 @@ if ($ADD==31) echo "\n"; echo "Status:   \n"; echo "Beschreibung:   \n"; - echo "Auswählbar:   \n"; - echo "Human Antwort:   \n"; + echo "Auswählbar:  
\n"; + echo "Human Antwort:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; echo "Kategorie:\n"; echo "
STATUSBESCHREIBUNGAUSWÄHLBARMENSCHLICHE ANTWORTLÖSCHUNG
STATUSBESCHREIBUNGAUSWÄHLBARMENSCHLICHE ANTWORTKATEGORIEMODIFY-DELETE
        \n"; echo "   \n"; echo "LÖSCHUNG\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT * from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -13934,7 +17136,7 @@ if ($ADD==31) } $camp_lists = eregi_replace(".$","",$camp_lists); - $stmt="SELECT * from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; @@ -14060,13 +17262,14 @@ if ($ADD==31) echo "
HOT KEYSTATUSBESCHREIBUNGLÖSCHUNG
\n"; echo "\n"; - $stmt="SELECT * from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; - $rslt=mysql_query($stmt, $link); - $pause_codes_to_print = mysql_num_rows($rslt); - $o=0; - while ($pause_codes_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -14182,22 +17385,33 @@ if ($ADD==31) { echo "

UMFRAGE EINSTELLUNGEN für diese Kampagne:
\n"; - echo "
PAUSE CODESVERRECHENBARÄNDERN SieLÖSCHUNG
\n"; + echo "
\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "
\n"; echo "\n"; - echo "
Umfrage Erste Audio-Datei: $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Umfrage Erste Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Umfrage DTMF Digits: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Umfrage nicht interessiert Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Umfrage Opt-in Audio-Datei: $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Umfrage nicht interessiert Audio-Datei: $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Umfrage Opt-in Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Umfrage nicht interessiert Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Umfrage-Methode: $NWB#vicidial_campaigns-survey_method$NWE
Umfrage Nr. Response-Aktion: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Umfrage kein Interesse Status: $NWB#vicidial_campaigns-survey_ni_status$NWE
Umfrage dritte Ziffer: $NWB#vicidial_campaigns-survey_third_digit$NWE
Umfrage Dritten Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Umfrage Dritten Status: $NWB#vicidial_campaigns-survey_third_status$NWE
Umfrage dritte Erweiterung: $NWB#vicidial_campaigns-survey_third_exten$NWE
Umfrage vierte Stelle: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Umfrage Vierte Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Umfrage Vierte Status: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Umfrage Vierte Verlängerung: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Antworten Digit Karte: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Umfrage Umfrage XFER Erweiterung: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Umfrage Kampagne Aufnahme Directory: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
Voicemail: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; @@ -14208,8 +17422,8 @@ if ($ADD==31) if ($SUB < 1) { echo "

\n"; - echo "
LOGGEN SIE ALLE MITTEL AUS DIESER KAMPAGNE HERAUS

\n"; - echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + echo "LOGGEN SIE ALLE MITTEL AUS DIESER KAMPAGNE HERAUS

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; if ($LOGdelete_campaigns > 0) { @@ -14233,21 +17447,21 @@ if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==34) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dial_status_a = $row[3]; @@ -14281,13 +17495,14 @@ if ($ADD==34) $default_xfer_group = $row[67]; $campaign_allow_inbound = $row[65]; $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} else {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; @@ -14305,7 +17520,7 @@ if ($ADD==34) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -14396,7 +17611,7 @@ if ($ADD==34) echo "
Kampagne Datum ändern: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Kampagne Login Datum: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Park-Verlängerung: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Netz-Form: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Erlauben Sie Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Vorwahlknopf-Status$o: \n"; + echo "
Vorwahlknopf-Status$o: \n"; if ($DEFstatusDISABLED > 0) { echo "$Dstatus - $statname_list[$Dstatus]         \n"; @@ -14424,14 +17639,118 @@ if ($ADD==34) } } - echo "
Add A Dial Status:
Add A Dial Status:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Liste Auftrag: $NWB#vicidial_campaigns-lead_order$NWE
Liste Auftrag: $NWB#vicidial_campaigns-lead_order$NWE
US-Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Kraft-Zurückstellen des Zufuhrbehälters: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Vorwahlknopf-Methode: $NWB#vicidial_campaigns-dial_method$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Passen Sie Intensität Modifizierfaktor An: \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT user,campaign_rank,calls_today from vicidial_campaign_agents where campaign_id='$campaign_id'"; + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); @@ -14624,13 +17999,13 @@ if ($ADD==34) else {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; } echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; - echo "LOGGEN SIE ALLE MITTEL AUS DIESER KAMPAGNE HERAUS

\n"; + echo "LOGGEN SIE ALLE MITTEL AUS DIESER KAMPAGNE HERAUS

\n"; if ($LOGdelete_campaigns > 0) @@ -14678,10 +18053,18 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

LISTE MISCHUNGEN FÜR DIESE KAMPAGNE:  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; - echo "

Experimental Feature in development!!! NON-FUNCTIONAL
\n"; + echo "
WARNUNG, empfehlen wir nur Liste Mix für fortgeschrittene Anwender, Bitte lesen Sie die ViciDial Manager-Handbuch
\n"; + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } - $stmt="SELECT * from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; $rslt=mysql_query($stmt, $link); $listmixes = mysql_num_rows($rslt); $o=0; @@ -14700,11 +18083,11 @@ if ( ($ADD==34) or ($ADD==31) ) else {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} } - echo "
\n"; + echo "

\n"; echo ""; echo "\n"; echo "\n"; + echo "List: $MIXdetailsLIST   ENTFERNEN Sie\n"; echo "\n"; @@ -14810,8 +18193,8 @@ if ( ($ADD==34) or ($ADD==31) ) echo "\n"; - echo "\n"; + echo "\n"; - if ($q > 9) {$AE_disabled = 'DISABLED';} + if ($q > 39) {$AE_disabled = 'DISABLED';} else {$AE_disabled = '';} - echo "\n"; + + $X='X'; + echo "\n"; echo "
\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14755,10 +18138,10 @@ if ( ($ADD==34) or ($ADD==31) ) echo "
\n"; echo "\n"; - echo "List: $MIXdetailsLIST   ENTFERNEN Sie
\n"; - echo "
\n"; + echo "
\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14820,11 +18203,27 @@ if ( ($ADD==34) or ($ADD==31) ) echo "List: \n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "ENTFERNEN Sie\n"; echo "
\n"; } @@ -14832,7 +18231,7 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

ADDIEREN SIE NEUE LISTE MIX
\n"; echo "\n"; - echo "
\n"; + echo "
\n"; echo "\n"; echo "\n"; echo "\n"; @@ -15251,356 +18650,565 @@ echo "
\n"; ###################### if ($ADD==311) -{ + { if ($LOGmodify_lists==1) - { - echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_lists where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $campaign_id = $row[2]; - $active = $row[3]; - $list_description = $row[4]; - $list_changedate = $row[5]; - $list_lastcalldate = $row[6]; - - # grab names of global statuses and statuses in the selected campaign - $stmt="SELECT * from vicidial_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($Cstatuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - # end grab status names - - - echo "
ÄNDERN Sie Einen LISTEN SATZ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Liste Identifikation: $row[0]$NWB#vicidial_lists-list_id$NWE
Liste Name: $NWB#vicidial_lists-list_name$NWE
Liste Beschreibung: $NWB#vicidial_lists-list_description$NWE
Kampagne: $NWB#vicidial_lists-campaign_id$NWE
Aktiv:$NWB#vicidial_lists-active$NWE
Stellen Sie Führen-Benennen-Status für diese Liste zurück: $NWB#vicidial_lists-reset_list$NWE
Liste Änderung Datum: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
US-Last Call Date: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
\n"; - - echo "
\n"; - echo "
STATUS INNERHALB DIESER LISTE:
\n"; - echo "\n"; - echo "\n"; - - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } - - $o=0; - if ($lead_list['count'] > 0) - { - while (list($dispo,) = each($lead_list[$since_reset])) { + echo "
STATUSSTATUS-NAMEBENANNTNICHT BENANNT
\n"; - $o++; - } - } + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); - echo "\n"; - echo "\n"; + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names - echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; - if ($dispo == 'CBHOLD') + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) { - $CLB=""; - $CLE=""; - } - else - { - $CLB=''; - $CLE=''; + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; } - echo "
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; - unset($lead_list); + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} - echo "
\n"; - echo "
ZEIT-ZONEN INNERHALB DIESER LISTE:
\n"; - echo "\n"; - echo "\n"; + echo "
ÄNDERN Sie Einen LISTEN SATZ: $list_id\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
GMT VERSETZTE JETZT (lokale Zeit)BENANNTNICHT BENANNT
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $o=0; - $plus='+'; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } + echo "\n"; - if ($lead_list['count'] > 0) - { - while (list($tzone,) = each($lead_list[$since_reset])) - { - $LOCALzone=3600 * $tzone; - $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + echo "\n"; - if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} - else {$DISPtzone = "$tzone";} - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + echo "\n"; - echo "\n"; - } - } + echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - echo "
Liste Identifikation: $list_id$NWB#vicidial_lists-list_id$NWE
Liste Name: $NWB#vicidial_lists-list_name$NWE
Liste Beschreibung: $NWB#vicidial_lists-list_description$NWE
Kampagne: $NWB#vicidial_lists-campaign_id$NWE
Aktiv:$NWB#vicidial_lists-active$NWE
Stellen Sie Führen-Benennen-Status für diese Liste zurück: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Liste Änderung Datum: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
US-Last Call Date: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Script Override: $NWB#vicidial_lists-agent_script_override$NWE
Kampagne CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Anrufbeantworter Nachricht Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
Drop Inbound-Fraktion Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]
BringenSie Zahl 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE

\n"; - unset($lead_list); + echo "
BringenSie Zahl 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
BringenSie Zahl 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
BringenSie Zahl 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
BringenSie Zahl 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_count,count(*) from vicidial_list where list_id='$list_id' group by status,called_count order by status,called_count"; - $rslt=mysql_query($stmt, $link); - $status_called_to_print = mysql_num_rows($rslt); + echo "
\n"; + echo "
STATUS INNERHALB DIESER LISTE:
\n"; + echo "\n"; + echo "\n"; - $o=0; - $sts=0; - $first_row=1; - $all_called_first=1000; - $all_called_last=0; - while ($status_called_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $leads_in_list = ($leads_in_list + $rowx[2]); - $count_statuses[$o] = "$rowx[0]"; - $count_called[$o] = "$rowx[1]"; - $count_count[$o] = "$rowx[2]"; - $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); - if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) - { - if ($first_row) {$first_row=0;} - else {$sts++;} - $status[$sts] = "$rowx[0]"; - $status_called_first[$sts] = "$rowx[1]"; - if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} - } - $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); - $status_called_last[$sts] = "$rowx[1]"; - if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - $o++; - } + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
STATUSSTATUS-NAMEBENANNTNICHT BENANNT
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); + echo "
\n"; + echo "
ZEIT-ZONEN INNERHALB DIESER LISTE:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
GMT VERSETZTE JETZT (lokale Zeit)BENANNTNICHT BENANNT
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); - echo "
\n"; - echo "
BENANNTE ZÄHLIMPULSE INNERHALB DIESER LISTE:
\n"; - echo "\n"; - echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; + echo "
\n"; + echo "
PRIVAT in dieser Liste:
\n"; + echo "
STATUSSTATUS-NAME$firstTEILSUMME
\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERBENANNTNICHT BENANNT
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
RANKS in dieser Liste:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKBENANNTNICHT BENANNT
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
BENANNTE ZÄHLIMPULSE INNERHALB DIESER LISTE:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; $sts=0; $statuses_called_to_print = count($status); while ($statuses_called_to_print > $sts) - { - $Pstatus = $status[$sts]; - if (eregi("1$|3$|5$|7$|9$", $sts)) - {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} - else - {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} - # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; - # echo "$status[$sts]|"; - echo ""; + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; $first = $all_called_first; while ($first <= $all_called_last) { - if (eregi("1$|3$|5$|7$|9$", $sts)) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - else - { - if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - - $called_printed=0; - $o=0; - while ($status_called_to_print > $o) - { - if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) - { - $called_printed++; - echo ""; - } - - - $o++; - } - if (!$called_printed) - {echo "";} + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; $first++; } - echo "\n\n"; + echo "\n"; - $sts++; + echo "
STATUSSTATUS-NAME$first$FplusTEILSUMME
$Pstatus$statuses_list[$Pstatus]
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
GESAMTMENGE $count_count[$o]  $all_called_count[$first]$leads_in_sts[$sts]
$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Liste

\n"; + echo "

Klicken Sie hier, um diese Liste

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

LÖSCHEN SIE DIESE LISTE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Liste\n"; + } } - - echo "
GESAMTMENGE$all_called_count[$first]$leads_in_list

\n"; - - - - - - echo "
\n"; - - echo "

Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Liste

\n"; - echo "

Klicken Sie hier, um diese Liste

\n"; - - if ($LOGdelete_lists > 0) - { - echo "

LÖSCHEN SIE DIESE LISTE\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Liste
\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} @@ -15609,345 +19217,429 @@ if ($ADD==311) ###################### if ($ADD==3111) -{ - if ($LOGmodify_ingroups==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_groups where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $group_name = $row[1]; - $group_color = $row[2]; - $active = $row[3]; - $web_form_address = stripslashes($row[4]); - $voicemail_ext = $row[5]; - $next_agent_call = $row[6]; - $fronter_display = $row[7]; - $script_id = $row[8]; - $get_call_launch = $row[9]; - $xferconf_a_dtmf = $row[10]; - $xferconf_a_number = $row[11]; - $xferconf_b_dtmf = $row[12]; - $xferconf_b_number = $row[13]; - $drop_call_seconds = $row[14]; - $drop_action = $row[15]; - $drop_exten = $row[16]; - $call_time_id = $row[17]; - $after_hours_action = $row[18]; - $after_hours_message_filename = $row[19]; - $after_hours_exten = $row[20]; - $after_hours_voicemail = $row[21]; - $welcome_message_filename = $row[22]; - $moh_context = $row[23]; - $onhold_prompt_filename = $row[24]; - $prompt_interval = $row[25]; - $agent_alert_exten = $row[26]; - $agent_alert_delay = $row[27]; - $default_xfer_group = $row[28]; - $queue_priority = $row[29]; - $drop_inbound_group = $row[30]; - $ingroup_recording_override = $row[31]; - $ingroup_rec_filename = $row[32]; - $afterhours_xfer_group = $row[33]; - $qc_enabled = $row[34]; - $qc_statuses = $row[35]; - $qc_shift_id = $row[36]; - $qc_get_record_launch = $row[37]; - $qc_show_recording = $row[38]; - $qc_web_form_address = stripslashes($row[39]); - $qc_script = $row[40]; - $play_place_in_line = $row[41]; - $play_estimate_hold_time = $row[42]; - $hold_time_option = $row[43]; - $hold_time_option_seconds = $row[44]; - $hold_time_option_exten = $row[45]; - $hold_time_option_voicemail = $row[46]; - $hold_time_option_xfer_group = $row[47]; - $hold_time_option_callback_filename = $row[48]; - $hold_time_option_callback_list_id = $row[49]; - $hold_recall_xfer_group = $row[50]; - $no_delay_call_route = $row[51]; - $play_welcome_message = $row[52]; - $answer_sec_pct_rt_stat_one = $row[53]; - $answer_sec_pct_rt_stat_two = $row[54]; - $default_group_alias = $row[55]; - - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $Dgroups_menu=''; - $Dgroups_selected=0; - $Agroups_menu=''; - $Agroups_selected=0; - $Hgroups_menu=''; - $Hgroups_selected=0; - $Tgroups_menu=''; - $Tgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) + if ($LOGmodify_ingroups==1) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "\n"; - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - if ($group_id!=$rowx[0]) - { - $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - } - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - if ($Agroups_selected < 1) - {$Agroups_menu .= "\n";} - else - {$Agroups_menu .= "\n";} - if ($Tgroups_selected < 1) - {$Tgroups_menu .= "\n";} - else - {$Tgroups_menu .= "\n";} - if ($Hgroups_selected < 1) - {$Hgroups_menu .= "\n";} - else - {$Hgroups_menu .= "\n";} + echo "
\n"; + echo ""; - - echo "
ÄNDERN Sie Einen GRUPPEN SATZ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - ##### get groups_alias listings for dynamic default group alias pulldown list menu - $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; - $rslt=mysql_query($stmt, $link); - $group_alias_to_print = mysql_num_rows($rslt); - $group_alias_menu=''; - $group_alias_selected=0; - $o=0; - while ($group_alias_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $group_alias_menu .= "\n"; - $o++; - } - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - - ##### get status listings for dynamic pulldown - $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); - $QCstatuses = explode(" ", $qc_statuses); - $QCs_to_print = (count($QCstatuses) -0); - $stmt="SELECT * from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $qc_statuses_list=''; + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; $o=0; - while ($statuses_to_print > $o) + while ($Xgroups_to_print > $o) { $rowx=mysql_fetch_row($rslt); - $qc_statuses_list .= "$rowx[0] - $rowx[1]\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + echo "
ÄNDERN Sie Einen GRUPPEN SATZ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
Gruppe Identifikation: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Name: $NWB#vicidial_inbound_groups-group_name$NWE
Gruppe Farbe: $NWB#vicidial_inbound_groups-group_color$NWE
Aktiv:$NWB#vicidial_inbound_groups-active$NWE
Netz-Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Queue-Priorität: $NWB#vicidial_inbound_groups-queue_priority$NWE
Fronter Anzeige: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_inbound_groups-get_call_launch$NWE
BringenSie DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Verbindungsaufbau Sekunden: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop-Aktion:$NWB#vicidial_inbound_groups-drop_action$NWE
Verbindungsaufbaunebenstelle: $NWB#vicidial_inbound_groups-drop_exten$NWE
Voicemail: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop-Transfer-Gruppe:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Anruf-Zeit:$NWB#vicidial_inbound_groups-call_time_id$NWE
Nach Stunden Tätigkeit:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Nach Stunden Anzeige Dateinamen:$NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Nach Stunden Verlängerung:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Nach Stunden Voicemail:$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
After Hours Transfer-Gruppe:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Willkommener Anzeige Dateiname:$NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Jetzt Grußwort:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Musik Auf Einfluß-Kontext:$NWB#vicidial_inbound_groups-moh_context$NWE
Auf Einfluß-Aufforderung Dateinamen:$NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Auf Einfluß-Aufforderung Abstand:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Jetzt im Einklang:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Jetzt Geschätzte Hold Time:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Hold Time Option:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Hold Time Option Sekunden:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Hold Time Option Extension:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Hold Time Option Voicemail:$NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Hold Time Option Transfer In-Group:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Hold Time Option Rückruf Dateiname:$NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Hold Time Option Liste Rückruf-ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Mittel-Alarmverlängerung:$NWB#vicidial_inbound_groups-agent_alert_exten$NWE
Mittel-Alarm Verzögert:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Rückstellung Übergangsgruppe:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Standard-Alias-Gruppe: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Hold Recall Transfer In-Group:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Nr. Delay Call Route:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
In-Group-Aufnahme AllowOverride:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
In-Group-Aufnahme Dateiname:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Statistiken Prozent der Anrufe innerhalb von X Sekunden 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Statistiken Prozent der Anrufe innerhalb von X Sekunden 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
 
Inbound-Fraktion QC Einstellungen:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; $o++; } - $stmt="SELECT distinct(status),status_name from vicidial_campaign_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); + echo "\n"; - $o=0; - while ($Cstatuses_to_print > $o) + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) { - $rowx=mysql_fetch_row($rslt); - if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) { + $rowx=mysql_fetch_row($rslt); $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; } - ##### get scripts listings for pulldown - $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; - $rslt=mysql_query($stmt, $link); - $scripts_to_print = mysql_num_rows($rslt); - $QCscripts_list=""; - $o=0; - while ($scripts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCscripts_list .= "\n"; - $scriptname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - ##### get shifts listings for pulldown - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $QCshifts_list=""; - $o=0; - while ($shifts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCshifts_list .= "\n"; - $shiftname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - } - - echo "
Gruppe Identifikation: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Name: $NWB#vicidial_inbound_groups-group_name$NWE
Gruppe Farbe: $NWB#vicidial_inbound_groups-group_color$NWE
Aktiv:$NWB#vicidial_inbound_groups-active$NWE
Netz-Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Netz-Form Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Queue-Priorität: $NWB#vicidial_inbound_groups-queue_priority$NWE
Fronter Anzeige: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_inbound_groups-get_call_launch$NWE
BringenSie DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Timer-Aktion: $NWB#vicidial_inbound_groups-timer_action$NWE
Timer-Aktion Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Timer-Aktion Sekunden: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Verbindungsaufbau Sekunden: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop-Aktion:$NWB#vicidial_inbound_groups-drop_action$NWE
Verbindungsaufbaunebenstelle: $NWB#vicidial_inbound_groups-drop_exten$NWE
Voicemail: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop-Transfer-Gruppe:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Anruf-Zeit:$NWB#vicidial_inbound_groups-call_time_id$NWE
Nach Stunden Tätigkeit:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Nach Stunden Anzeige Dateinamen: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Nach Stunden Verlängerung:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Nach Stunden Voicemail: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
After Hours Transfer-Gruppe:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Nr. Bevollmächtigte Nr. Queueing: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Kein Agent Nr. Queue Aktion: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Call-Menü:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   Liste Identifikation: "; + echo "
Kampagne Identifikation: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Erweiterung:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Voicemail-Box: voicemail chooser\n"; + } + + echo "
+
 
Willkommener Anzeige Dateiname: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Jetzt Grußwort:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Musik Auf Einfluß-Kontext: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
Auf Einfluß-Aufforderung Dateinamen: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Auf Einfluß-Aufforderung Abstand:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Jetzt im Einklang:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Jetzt Geschätzte Hold Time:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Hold Time Option:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Hold Time Option Sekunden:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Hold Time Option Extension:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Hold Time Option Voicemail: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Hold Time Option Transfer In-Group:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Hold Time Option Rückruf Dateiname: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Hold Time Option Liste Rückruf-ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agent Alert Dateiname: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
Mittel-Alarm Verzögert:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Rückstellung Übergangsgruppe:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Standard-Alias-Gruppe: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Hold Recall Transfer In-Group:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Nr. Delay Call Route:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
In-Group-Aufnahme AllowOverride:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
In-Group-Aufnahme Dateiname:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Statistiken Prozent der Anrufe innerhalb von X Sekunden 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Statistiken Prozent der Anrufe innerhalb von X Sekunden 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Start Call URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound-Fraktion QC Einstellungen:
QC aktiv: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QK-Status:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC-Webformular:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC-Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC-Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Show-Aufnahme: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
QC aktiv: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QK-Status:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC-Webformular:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC-Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC-Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Show-Aufnahme: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; - echo "

\n"; + echo "
\n"; + echo "

\n"; - ### list of agent rank or skill-level for this inbound group - echo "
\n"; - echo "
MITTELRANKS FOR THIS INBOUND GROUP:
\n"; - echo "\n"; - echo "\n"; + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
MITTELRANKS FOR THIS INBOUND GROUP:
\n"; + echo "
USER     RANK     CALLS TODAY
\n"; + echo "\n"; - $stmt="SELECT user,group_rank,calls_today from vicidial_inbound_group_agents where group_id='$group_id'"; + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); $o=0; - while ($users_to_print > $o) { + while ($users_to_print > $o) + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Klicken Sie hier, um zu sehen, einen Bericht für diese Gruppe ein -

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "KAMPAGNEN, diese Erlaubnis in-group:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

LÖSCHEN SIE DIESES IN-GROUP\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser In-Group\n"; + } } - - echo "

\n"; - - echo "

\n"; - - echo "Klicken Sie hier, um zu sehen, einen Bericht für diese Gruppe ein -

\n"; - - echo "
\n"; - - if ($LOGdelete_ingroups > 0) - { - echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; - echo "

LÖSCHEN SIE DIESES IN-GROUP\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser In-Group
\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} @@ -16068,151 +19832,478 @@ if ($ADD==3111) ###################### if ($ADD==3311) -{ + { if ($LOGmodify_dids==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_dids where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $did_id = $row[0]; - $did_pattern = $row[1]; - $did_description = $row[2]; - $did_active = $row[3]; - $did_route = $row[4]; - $extension = $row[5]; - $exten_context = $row[6]; - $voicemail_ext = $row[7]; - $phone = $row[8]; - $server_ip = $row[9]; - $user = $row[10]; - $user_unavailable_action = $row[11]; - $user_route_settings_ingroup = $row[12]; - $group_id = $row[13]; - $call_handle_method = $row[14]; - $agent_search_method = $row[15]; - $list_id = $row[16]; - $campaign_id = $row[17]; - $phone_code = $row[18]; - - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; - $rslt=mysql_query($stmt, $link); - $campaigns_to_print = mysql_num_rows($rslt); - $campaigns_list=''; - $o=0; - while ($campaigns_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $campaigns_list .= "\n"; - $o++; - } - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) { - $Xgroups_menu .= "SELECTED "; - $Xgroups_selected++; + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; } - $Xgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Dgroups_to_print = mysql_num_rows($rslt); - $Dgroups_menu=''; - $Dgroups_selected=0; - $o=0; - while ($Dgroups_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $Dgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFY eine DID RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID-Erweiterung:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID-Beschreibung:$NWB#vicidial_inbound_dids-did_description$NWE
Aktiv:$NWB#vicidial_inbound_dids-did_active$NWE
DID-Route:$NWB#vicidial_inbound_dids-did_route$NWE
Erweiterung:$NWB#vicidial_inbound_dids-extension$NWE
Erweiterung Kontext:$NWB#vicidial_inbound_dids-exten_context$NWE
Voicemail-Box: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Tel. Durchwahl:$NWB#vicidial_inbound_dids-phone$NWE
Bediener IP: $NWB#vicidial_inbound_dids-server_ip$NWE
Call-Menü: $NWB#vicidial_inbound_dids-menu_id$NWE
User Agent:$NWB#vicidial_inbound_dids-user$NWE
User-Aktion nicht verfügbar:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
User-Einstellungen In Route-Gruppe:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-Gruppe Identifikation: $NWB#vicidial_inbound_dids-group_id$NWE
In-Group Call Griff Methode:$NWB#vicidial_inbound_dids-call_handle_method$NWE
In-Group-Agent Suche Methode:$NWB#vicidial_inbound_dids-agent_search_method$NWE
In-Group US-ID:$NWB#vicidial_inbound_dids-list_id$NWE
In-Group Kampagnen-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
In-Group Telefon Code:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Klicken Sie hier, um ein Traffic-Bericht für das DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

DELETE Das war\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser DID\n"; } - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; } - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - - - echo "
MODIFY eine DID RECORD:$row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "
DID-Erweiterung:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID-Beschreibung:$NWB#vicidial_inbound_dids-did_description$NWE
Aktiv:$NWB#vicidial_inbound_dids-did_active$NWE
DID-Route:$NWB#vicidial_inbound_dids-did_route$NWE
Erweiterung:$NWB#vicidial_inbound_dids-extension$NWE
Erweiterung Kontext:$NWB#vicidial_inbound_dids-exten_context$NWE
Voicemail-Box:$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Tel. Durchwahl:$NWB#vicidial_inbound_dids-phone$NWE
Bediener IP: $NWB#vicidial_inbound_dids-server_ip$NWE
User Agent:$NWB#vicidial_inbound_dids-user$NWE
User-Aktion nicht verfügbar:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
User-Einstellungen In Route-Gruppe:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-Gruppe Identifikation: $NWB#vicidial_inbound_dids-group_id$NWE
In-Group Call Griff Methode:$NWB#vicidial_inbound_dids-call_handle_method$NWE
In-Group-Agent Suche Methode:$NWB#vicidial_inbound_dids-agent_search_method$NWE
In-Group US-ID:$NWB#vicidial_inbound_dids-list_id$NWE
In-Group Kampagnen-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
In-Group Telefon Code:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; - echo "

\n"; - - - - if ($LOGdelete_dids > 0) - { - echo "

DELETE Das war\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser DID\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "\n"; -echo "\n"; - -echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
Ändern einer CALL MENU RECORD: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menü-ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
Prompt Menu: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Menü-Timeout: $NWB#vicidial_call_menu-menu_timeout$NWE
Menü-Timeout Prompt: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Prompt Menu Ungültige: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Menü wiederholen: $NWB#vicidial_call_menu-menu_repeat$NWE
Menü Time Check: $NWB#vicidial_call_menu-menu_time_check$NWE
Anruf-Zeit:$NWB#vicidial_call_menu-call_time_id$NWE
Track fordert in Real-Time-Report: $NWB#vicidial_call_menu-track_in_vdac$NWE
Tracking-Fraktion: $NWB#vicidial_call_menu-tracking_group$NWE
Call-Optionen-Menü:
+ Option: $dtmf_list   + Beschreibung: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Call-Menü:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   Liste Identifikation: "; + echo "
Kampagne Identifikation: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Erweiterung:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Voicemail-Box: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Option: $dtmf_list   + Beschreibung: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Eintrag:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Eintrag: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

DELETE THIS CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem CALL MENU
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} @@ -16221,62 +20312,62 @@ if ($ADD==3311) ###################### if ($ADD==31111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $remote_agent_id = $row[0]; - $user_start = $row[1]; - $number_of_lines = $row[2]; - $server_ip = $row[3]; - $conf_exten = $row[4]; - $status = $row[5]; - $campaign_id = $row[6]; - - echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Benutzernummer Anfang: (nur Zahlen, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Zeilenzahl: (nur Zahlen)$NWB#vicidial_remote_agents-number_of_lines$NWE
Bediener IP: $NWB#vicidial_remote_agents-server_ip$NWE
Externe Verlängerung: (dial plan Zahl wählte, um Mittel zu erreichen)$NWB#vicidial_remote_agents-conf_exten$NWE
Status:$NWB#vicidial_remote_agents-status$NWE
Kampagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Inbound Gruppen: \n"; - echo "$groups_list"; - echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; - echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; - - - if ($LOGdelete_remote_agents > 0) { - echo "

LÖSCHEN SIE DIESES REMOTEMITTEL\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Benutzernummer Anfang: (nur Zahlen, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Zeilenzahl: (nur Zahlen)$NWB#vicidial_remote_agents-number_of_lines$NWE
Bediener IP: $NWB#vicidial_remote_agents-server_ip$NWE
Externe Verlängerung: (dial plan Zahl wählte, um Mittel zu erreichen)$NWB#vicidial_remote_agents-conf_exten$NWE
Status:$NWB#vicidial_remote_agents-status$NWE
Kampagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Inbound Gruppen: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

LÖSCHEN SIE DIESES REMOTEMITTEL\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Remote Agent
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Remote Agent\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -16284,79 +20375,118 @@ if ($ADD==31111) ###################### if ($ADD==311111) -{ - if ($LOGmodify_usergroups==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_user_groups where user_group='$user_group';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_group = $row[0]; - $group_name = $row[1]; - $GROUP_shifts = $row[5]; - $forced_timeclock_login = $row[6]; - $shift_enforcement = $row[7]; - - echo ""; - - echo "
ÄNDERN Sie Eine BENUTZER-GRUPPE EINTRAGUNG\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - - echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Gruppe: (keine Räume oder Interpunktion)$NWB#vicidial_user_groups-user_group$NWE
Beschreibung: (Beschreibung der Gruppe)$NWB#vicidial_user_groups-group_name$NWE
ForceTimeclock Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift Vollstreckung: $NWB#vicidial_user_groups-shift_enforcement$NWE
Erlaubte Kampagnen:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; - echo "$campaigns_list
 "; - echo "
Gruppe Verschiebungen:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $o=0; - while ($shifts_to_print > $o) + if ($LOGmodify_usergroups==1) { - $rowx=mysql_fetch_row($rslt); - $shift_id_value = $rowx[0]; - $shift_name_value = $rowx[1]; - echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
ÄNDERN Sie Eine BENUTZER-GRUPPE EINTRAGUNG\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - } - echo "\n"; - echo "
Gruppe: (keine Räume oder Interpunktion)$NWB#vicidial_user_groups-user_group$NWE
Beschreibung: (Beschreibung der Gruppe)$NWB#vicidial_user_groups-group_name$NWE
ForceTimeclock Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift Vollstreckung: $NWB#vicidial_user_groups-shift_enforcement$NWE
Erlaubte Kampagnen:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Gruppe Verschiebungen:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) { - if (ereg(" $shift_id_value ", $GROUP_shifts)) + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; } - echo "> $shift_id_value - $shift_name_value
\n"; - $o++; - } - echo "
 
QC erlaubt Kampagnen:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; - echo "$qc_campaigns_list"; echo "
 
QC erlaubt Inbound Gruppen:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; - echo "$qc_groups_list"; + + + echo "
Agent Status Sichtbare Gruppen:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } echo "
 
\n"; + echo "
Agent Status View Time: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC erlaubt Kampagnen:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC erlaubt Inbound Gruppen:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; - ### list of users in this user group + ### list of users in this user group $active_confs = 0; $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; @@ -16370,45 +20500,44 @@ if ($ADD==311111) $o=0; while ($users_to_print > $o) - { + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "
$rowx[0]$rowx[1]$rowx[2]$rowx[3]
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Gruppe

\n"; + echo "

Klicken Sie hier, um zu sehen, dieTimeclock Status für diese Gruppe

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

LÖSCHEN SIE DIESE BENUTZER-GRUPPE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Benutzergruppe\n"; + } } - - echo "

\n"; - - - - echo "

Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Gruppe

\n"; - echo "

Klicken Sie hier, um zu sehen, dieTimeclock Status für diese Gruppe

\n"; - - if ($LOGdelete_user_groups > 0) - { - echo "

LÖSCHEN SIE DIESE BENUTZER-GRUPPE\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Benutzergruppe
\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -16416,90 +20545,151 @@ if ($ADD==311111) ###################### if ($ADD==3111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $script_name = $row[1]; - $script_comments = $row[2]; - $script_text = $row[3]; - $active = $row[4]; - echo ""; - - echo "
ÄNDERN Sie Einen INDEX\n"; - echo "\n"; - echo "\n"; - echo "
Index Identifikation: $script_id$NWB#vicidial_scripts-script_name$NWE
Index-Name: (Titel dem Index)$NWB#vicidial_scripts-script_name$NWE
Index-Anmerkungen: $NWB#vicidial_scripts-script_comments$NWE
Aktiv:$NWB#vicidial_scripts-active$NWE
Index-Text:

Vorbetrachtung-Index
"; - # BEGIN Insert Field - echo ""; - echo "
"; - # END Insert Field - echo " $NWB#vicidial_scripts-script_text$NWE
\n"; - - if ($LOGdelete_scripts > 0) { - echo "

LÖSCHEN SIE DIESEN INDEX\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
ÄNDERN Sie Einen INDEX\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Index Identifikation: $script_id$NWB#vicidial_scripts-script_name$NWE
Index-Name: (Titel dem Index)$NWB#vicidial_scripts-script_name$NWE
Index-Anmerkungen: $NWB#vicidial_scripts-script_comments$NWE
Aktiv:$NWB#vicidial_scripts-active$NWE
Index-Text:

Vorbetrachtung-Index
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " KAMPAGNEN USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " IN-GROUPS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

LÖSCHEN SIE DIESEN INDEX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Skript\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Skript\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -16507,29 +20697,30 @@ if ($ADD==3111111) ###################### if ($ADD==31111111) -{ - if ($LOGmodify_filters==1) { - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_filters==1) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; - $stmt="SELECT * from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $lead_filter_name = $row[1]; - $lead_filter_comments = $row[2]; - $lead_filter_sql = $row[3]; - echo ""; + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; - echo "
ÄNDERN Sie Einen FILTER\n"; - echo "\n"; - echo "\n"; - echo "
Filter Identifikation:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter-Name: (kurze Beschreibung des Filter)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Filter-Anmerkungen: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filter Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + echo "
ÄNDERN Sie Einen FILTER
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Filter Identifikation:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter-Name: (kurze Beschreibung des Filter)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Filter-Anmerkungen: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filter Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; ##### get campaigns listing for dynamic pulldown $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; @@ -16545,31 +20736,31 @@ if ($ADD==31111111) $o++; } - echo "

"; - echo "
Testen der Kampagne:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "

"; + echo "
Testen der Kampagne: \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($LOGdelete_filters > 0) - { - echo "

LÖSCHEN SIE DIESEN FILTER\n"; + if ($LOGdelete_filters > 0) + { + echo "

LÖSCHEN SIE DIESEN FILTER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages dieser Filter\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages dieser Filter\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -16577,46 +20768,44 @@ if ($ADD==31111111) ###################### if ($ADD==321111111) -{ -if ($LOGmodify_call_times==1) -{ - -if ( ($stage=="ADD") and (strlen($state_rule)>0) ) { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; - if (eregi("\|$",$ct_state_call_times)) - {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Landesrichtlinie hinzugefügt: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Landesrichlinie gelöscht: $state_rule
\n"; + } + + $ADD=311111111; + } else - {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Landesrichtlinie hinzugefügt: $state_rule
\n"; + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } } -if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) - { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; - - $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Landesrichlinie gelöscht: $state_rule
\n"; - } - -$ADD=311111111; -} -else -{ -echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; -} - -} ###################### @@ -16624,151 +20813,154 @@ echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen. ###################### if ($ADD==311111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -$ct_srs=1; -$b=0; -$srs_SQL =''; -if (strlen($ct_state_call_times)>2) { - $state_rules = explode('|',$ct_state_call_times); - $ct_srs = ((count($state_rules)) - 1); - } -echo "\n"; -echo "\n"; -while($ct_srs >= $b) - { - if (strlen($state_rules[$b])>0) + if ($LOGmodify_call_times==1) { - $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $call_time_name = $row[1]; - $call_time_comments = $row[2]; - $ct_default_start = $row[3]; - $ct_default_stop = $row[4]; - $ct_sunday_start = $row[5]; - $ct_sunday_stop = $row[6]; - $ct_monday_start = $row[7]; - $ct_monday_stop = $row[8]; - $ct_tuesday_start = $row[9]; - $ct_tuesday_stop = $row[10]; - $ct_wednesday_start = $row[11]; - $ct_wednesday_stop = $row[12]; - $ct_thursday_start = $row[13]; - $ct_thursday_stop = $row[14]; - $ct_friday_start = $row[15]; - $ct_friday_stop = $row[16]; - $ct_saturday_start = $row[17]; - $ct_saturday_stop = $row[18]; - $ct_state_call_times = $row[19]; - -echo ""; - -echo "
Bearbeite eine Anrufzeit\n"; -echo "\n"; -echo "\n"; -echo "
Anrufzeit ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Anrufzeit Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Anrufzeit Kommentare: $NWB#vicidial_call_times-call_time_comments$NWE
Standard Start Standard Stop $NWB#vicidial_call_times-ct_default_start$NWE
Sonntag Start Sonntag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Montag Start Montag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Dienstag Start Dienstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Mittwoch Start Mittwoch Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Donnerstag Start Donnerstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Freitag Start Freitag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Sonnabend Start Sonnabend Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Aktive landesspezifische Anrufzeit Definitionen für diese Aufnahme:  
\n"; - $srs_SQL .= "'$state_rules[$b]',"; - $srs_state_SQL .= "'$row[0]',"; + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
Bearbeite eine Anrufzeit
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "
$state_rules[$b] - REMOVE $row[0] - $row[1]
Anrufzeit ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Anrufzeit Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Anrufzeit Kommentare: $NWB#vicidial_call_times-call_time_comments$NWE
Standard Start Standard Stop $NWB#vicidial_call_times-ct_default_start$NWE
Sonntag Start Sonntag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Montag Start Montag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Dienstag Start Dienstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Mittwoch Start Mittwoch Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Donnerstag Start Donnerstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Freitag Start Freitag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Sonnabend Start Sonnabend Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Aktive landesspezifische Anrufzeit Definitionen für diese Aufnahme:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "Kampagnen, die diese Anrufzeit nutzen:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "INBOUND GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Lösche diese Anrufzeit Definition\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Aufforderung Zeit
\n"; + } } - $b++; + else + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } + } -if (strlen($srs_SQL)>2) - { - $srs_SQL = "$srs_SQL''"; - $srs_state_SQL = "$srs_state_SQL''"; - $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; - } -else - {$srs_SQL='';} -$stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; -$rslt=mysql_query($stmt, $link); -$sct_to_print = mysql_num_rows($rslt); -$sct_list=''; - -$o=0; -while ($sct_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $sct_list .= "\n"; - $o++; -} -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "Add state call time rule:


\n"; -echo "Kampagnen, die diese Anrufzeit nutzen:
\n"; -echo "\n"; - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "INBOUND GROUPS USING THIS CALL TIME:
\n"; -echo "\n"; - - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

Lösche diese Anrufzeit Definition\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Aufforderung Zeit\n"; - } -} -else -{ -echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; -} - -} ###################### @@ -16776,327 +20968,328 @@ echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen. ###################### if ($ADD==3111111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -echo "\n"; -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $state_call_time_state =$row[1]; - $call_time_name = $row[2]; - $call_time_comments = $row[3]; - $ct_default_start = $row[4]; - $ct_default_stop = $row[5]; - $ct_sunday_start = $row[6]; - $ct_sunday_stop = $row[7]; - $ct_monday_start = $row[8]; - $ct_monday_stop = $row[9]; - $ct_tuesday_start = $row[10]; - $ct_tuesday_stop = $row[11]; - $ct_wednesday_start = $row[12]; - $ct_wednesday_stop = $row[13]; - $ct_thursday_start = $row[14]; - $ct_thursday_stop = $row[15]; - $ct_friday_start = $row[16]; - $ct_friday_stop = $row[17]; - $ct_saturday_start = $row[18]; - $ct_saturday_stop = $row[19]; - -echo ""; - -echo "
Bearbeite eine landesspezifische Anrufzeit
\n"; -echo "\n"; -echo "\n"; -echo "
Anrufzeit ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Landesspezifischer Anrufzeiten Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Landesspezifischer Anrufzeiten Kommentar: $NWB#vicidial_call_times-call_time_comments$NWE
Standard Start Standard Stop $NWB#vicidial_call_times-ct_default_start$NWE
Sonntag Start Sonntag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Montag Start Montag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Dienstag Start Dienstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Mittwoch Start Mittwoch Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Donnerstag Start Donnerstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Freitag Start Freitag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Sonnabend Start Sonnabend Stop $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; -echo "Anrufzeiten, die diese landesspezifische Anrufzeit benutzen:
\n"; -echo "\n"; - - $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) { - echo "

Diese landesspezifische Anrufzeitdefinition löschen\n"; + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
Bearbeite eine landesspezifische Anrufzeit\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Anrufzeit ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Landesspezifischer Anrufzeiten Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Landesspezifischer Anrufzeiten Kommentar: $NWB#vicidial_call_times-call_time_comments$NWE
Standard Start Standard Stop $NWB#vicidial_call_times-ct_default_start$NWE
Sonntag Start Sonntag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Montag Start Montag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Dienstag Start Dienstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Mittwoch Start Mittwoch Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Donnerstag Start Donnerstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Freitag Start Freitag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Sonnabend Start Sonnabend Stop $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "Anrufzeiten, die diese landesspezifische Anrufzeit benutzen:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Diese landesspezifische Anrufzeitdefinition löschen\n"; + } + } + else + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } } -} -else -{ -echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; -} - -} - - ###################### # ADD=331111111 modify shift definition info in the system ###################### if ($ADD==331111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_shifts where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $shift_name = $row[1]; - $shift_start_time = $row[2]; - $shift_length = $row[3]; - $shift_weekdays = $row[4]; - - $shift_start_hour = substr($shift_start_time,0,2); - $shift_start_min = substr($shift_start_time,2,2); - $shift_length_hour = substr($shift_length,0,2); - $shift_length_min = substr($shift_length,3,2); - $shift_end_hour = ($shift_start_hour + $shift_length_hour); - $shift_end_min = ($shift_start_min + $shift_length_min); - if ($shift_end_min >=60) + { + if ($LOGmodify_call_times==1) { - $shift_end_min = ($shift_end_min - 60); - $shift_end_hour++; - } - if ($shift_end_hour >=24) - { - $shift_end_hour = ($shift_end_hour - 24); - } - $shift_end_hour = sprintf("%02s", $shift_end_hour); - $shift_end_min = sprintf("%02s", $shift_end_min); - $shift_end = "$shift_end_hour$shift_end_min"; + echo "
\n"; + echo ""; -echo ""; - -echo "
MODIFY A SHIFT\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Shift-ID:$shift_id
Shift Name: (Kurze Beschreibung der Verlagerung)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; -echo "   Shift End Time:\n"; -echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Länge: $NWB#vicidial_shifts-shift_length$NWE
Shift der Woche:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; -echo "Sonntag
\n"; -echo "Montag
\n"; -echo "Dienstag
\n"; -echo "Mittwoch
\n"; -echo "Donnerstag
\n"; -echo "Freitag
\n"; -echo "Samstag
\n"; -echo "
\n"; - -echo "


\n"; -echo "USER-Gruppen, die diese Verschiebung:
\n"; -echo "\n"; - - - $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFY A SHIFT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
$row[0] $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift-ID:$shift_id
Shift Name: (Kurze Beschreibung der Verlagerung)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; + echo "   Shift End Time:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Länge: $NWB#vicidial_shifts-shift_length$NWE
Shift der Woche:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Sonntag
\n"; + echo "Montag
\n"; + echo "Dienstag
\n"; + echo "Mittwoch
\n"; + echo "Donnerstag
\n"; + echo "Freitag
\n"; + echo "Samstag
\n"; + echo "
\n"; + + echo "


\n"; + echo "USER-Gruppen, die diese Verschiebung:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

DELETE Diese Verschiebung DEFINITION\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Verschiebung\n"; + } + } + else + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } + } -echo "
\n"; -echo "


\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

DELETE Diese Verschiebung DEFINITION\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Verschiebung\n"; - } -} -else -{ -echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; -} - -} - - ###################### # ADD=31111111111 modify phone record in the system ###################### if ($ADD==31111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
ÄNDERN Sie Einen TELEFON-SATZ: $row[1]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Telefonverlängerung: $NWB#phones-extension$NWE
Dial Plan Zahl: (nur Stellen)$NWB#phones-dialplan_number$NWE
Voicemail-Box: (nur Stellen)$NWB#phones-voicemail_id$NWE
Outbound CallerID: (nur Stellen)$NWB#phones-outbound_cid$NWE
Telefon-IP address: (optional)$NWB#phones-phone_ip$NWE
Computer-IP address: (optional)$NWB#phones-computer_ip$NWE
Bediener IP: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Kennwort:$NWB#phones-pass$NWE
Status:$NWB#phones-status$NWE
Aktives Konto: $NWB#phones-active$NWE
Telefon-Art: $NWB#phones-phone_type$NWE
Voller Name: $NWB#phones-fullname$NWE
E-Mail: $NWB#phones-email$NWE
Firma:$NWB#phones-company$NWE
Abbildung:$NWB#phones-picture$NWE
Neue Anzeigen: $row[14]$NWB#phones-messages$NWE
Alte Anzeigen: $row[15]$NWB#phones-old_messages$NWE
Klient Protokoll: $NWB#phones-protocol$NWE
Lokales GMT: (Stellen Sie NICHT auf DST ein)$NWB#phones-local_gmt$NWE
Manager-LOGON: $NWB#phones-ASTmgrUSERNAME$NWE
Manager-Geheimnis: $NWB#phones-ASTmgrSECRET$NWE
VICIDIAL Rückstellung Benutzer: $NWB#phones-login_user$NWE
VICIDIAL Rückstellung Durchlauf: $NWB#phones-login_pass$NWE
VICIDIAL Rückstellung Kampagne: $NWB#phones-login_campaign$NWE
Park Exten: $NWB#phones-park_on_extension$NWE
Conf Exten: $NWB#phones-conf_on_extension$NWE
VICIDIAL Park Exten: $NWB#phones-VICIDIAL_park_on_extension$NWE
VICIDIAL Park-Akte: $NWB#phones-VICIDIAL_park_on_filename$NWE
Überwachen Sie Präfix: $NWB#phones-monitor_prefix$NWE
Aufnahme Exten: $NWB#phones-recording_exten$NWE
VMailMain Exten: $NWB#phones-voicemail_exten$NWE
VMailDump Exten: $NWB#phones-voicemail_dump_exten$NWE
Exten Kontext: $NWB#phones-ext_context$NWE
DTMFSend Führung: $NWB#phones-dtmf_send_extension$NWE
Outbound Anruf-Gruppe: $NWB#phones-call_out_number_group$NWE
Datenbanksuchroutine-Position: $NWB#phones-client_browser$NWE
Bringen Sie Verzeichnis An: $NWB#phones-install_directory$NWE
CallerID URL: $NWB#phones-local_web_callerID_URL$NWE
VICIDIAL Rückstellung URL: $NWB#phones-VICIDIAL_web_URL$NWE
Anruf-Protokollierung: $NWB#phones-AGI_call_logging_enabled$NWE
Benutzer-Schaltung: $NWB#phones-user_switching_enabled$NWE
Conferencing: $NWB#phones-conferencing_enabled$NWE
Admin Hängezustand: $NWB#phones-admin_hangup_enabled$NWE
Admin Straßenräuber: $NWB#phones-admin_hijack_enabled$NWE
Admin Monitor: $NWB#phones-admin_monitor_enabled$NWE
Parkschaltung: $NWB#phones-call_parking_enabled$NWE
Updater Überprüfung: $NWB#phones-updater_check_enabled$NWE
Af Protokollierung: $NWB#phones-AFLogging_enabled$NWE
Warteschlange Ermöglicht: $NWB#phones-QUEUE_ACTION_enabled$NWE
CallerID Popup: $NWB#phones-CallerID_popup_enabled$NWE
VMail Taste: $NWB#phones-voicemail_button_enabled$NWE
Schnell Erneuern Sie: $NWB#phones-enable_fast_refresh$NWE
Schnell Erneuern Sie Rate: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Selbstvorwahlknopf-Folgende Zahl: $NWB#phones-auto_dial_next_number$NWE
Stoppen Sie Rec nach jedem Anruf: $NWB#phones-VDstop_rec_after_each_call$NWE
Ermöglichen Sie SIPSAK Anzeigen: $NWB#phones-enable_sipsak_messages$NWE
DBX Bediener: (HauptsächlichDB Server)$NWB#phones-DBX_server$NWE
DBX Datenbank: (HauptsächlichServer Database)$NWB#phones-DBX_database$NWE
DBX Benutzer: (HauptsächlichDB Login)$NWB#phones-DBX_user$NWE
DBX Durchlauf: (HauptsächlichDB Secret)$NWB#phones-DBX_pass$NWE
DBX Tor: (HauptsächlichDB Port)$NWB#phones-DBX_port$NWE
DBY Bediener: (ZweitensDB Server)$NWB#phones-DBY_server$NWE
DBY Datenbank: (ZweitensServer Database)$NWB#phones-DBY_database$NWE
DBY Benutzer: (ZweitensDB Login)$NWB#phones-DBY_user$NWE
DBY Durchlauf: (ZweitensDB Secret)$NWB#phones-DBY_pass$NWE
DBY Tor: (ZweitensDB Port)$NWB#phones-DBY_port$NWE
Vorlagen-ID: \n"; - - echo "\n"; - - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
ÄNDERN Sie Einen TELEFON-SATZ: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Telefonverlängerung: $NWB#phones-extension$NWE (Agent Screen Telefon-LOGON)
Dial Plan Zahl: (nur Stellen)$NWB#phones-dialplan_number$NWE
Voicemail-Box: (nur Stellen)$NWB#phones-voicemail_id$NWE
Outbound CallerID: (nur Stellen)$NWB#phones-outbound_cid$NWE
Telefon-IP address: (optional)$NWB#phones-phone_ip$NWE
Computer-IP address: (optional)$NWB#phones-computer_ip$NWE
Bediener IP: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Kennwort:$NWB#phones-pass$NWE
Status:$NWB#phones-status$NWE
Aktives Konto: $NWB#phones-active$NWE
Telefon-Art: $NWB#phones-phone_type$NWE
Voller Name: $NWB#phones-fullname$NWE
E-Mail: $NWB#phones-email$NWE
Löschen Voicemail Nach E-Mail: $NWB#phones-delete_vm_after_email$NWE
Firma:$NWB#phones-company$NWE
Abbildung:$NWB#phones-picture$NWE
Neue Anzeigen: $row[14]$NWB#phones-messages$NWE
Alte Anzeigen: $row[15]$NWB#phones-old_messages$NWE
Klient Protokoll: $NWB#phones-protocol$NWE
Lokales GMT: (Stellen Sie NICHT auf DST ein)$NWB#phones-local_gmt$NWE
Telefon Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Manager-LOGON: $NWB#phones-ASTmgrUSERNAME$NWE
Manager-Geheimnis: $NWB#phones-ASTmgrSECRET$NWE
VICIDIAL Rückstellung Benutzer: $NWB#phones-login_user$NWE
VICIDIAL Rückstellung Durchlauf: $NWB#phones-login_pass$NWE
VICIDIAL Rückstellung Kampagne: $NWB#phones-login_campaign$NWE
Park Exten: $NWB#phones-park_on_extension$NWE
Conf Exten: $NWB#phones-conf_on_extension$NWE
VICIDIAL Park Exten: $NWB#phones-VICIDIAL_park_on_extension$NWE
VICIDIAL Park-Akte: $NWB#phones-VICIDIAL_park_on_filename$NWE
Überwachen Sie Präfix: $NWB#phones-monitor_prefix$NWE
Aufnahme Exten: $NWB#phones-recording_exten$NWE
VMailMain Exten: $NWB#phones-voicemail_exten$NWE
VMailDump Exten: $NWB#phones-voicemail_dump_exten$NWE
Exten Kontext: $NWB#phones-ext_context$NWE
Telefon Kontext: $NWB#phones-phone_context$NWE
Conf-Datei Secret: $NWB#phones-conf_secret$NWE
DTMFSend Führung: $NWB#phones-dtmf_send_extension$NWE
Outbound Anruf-Gruppe: $NWB#phones-call_out_number_group$NWE
Datenbanksuchroutine-Position: $NWB#phones-client_browser$NWE
Bringen Sie Verzeichnis An: $NWB#phones-install_directory$NWE
CallerID URL: $NWB#phones-local_web_callerID_URL$NWE
VICIDIAL Rückstellung URL: $NWB#phones-VICIDIAL_web_URL$NWE
Anruf-Protokollierung: $NWB#phones-AGI_call_logging_enabled$NWE
Benutzer-Schaltung: $NWB#phones-user_switching_enabled$NWE
Conferencing: $NWB#phones-conferencing_enabled$NWE
Admin Hängezustand: $NWB#phones-admin_hangup_enabled$NWE
Admin Straßenräuber: $NWB#phones-admin_hijack_enabled$NWE
Admin Monitor: $NWB#phones-admin_monitor_enabled$NWE
Parkschaltung: $NWB#phones-call_parking_enabled$NWE
Updater Überprüfung: $NWB#phones-updater_check_enabled$NWE
Af Protokollierung: $NWB#phones-AFLogging_enabled$NWE
Warteschlange Ermöglicht: $NWB#phones-QUEUE_ACTION_enabled$NWE
CallerID Popup: $NWB#phones-CallerID_popup_enabled$NWE
VMail Taste: $NWB#phones-voicemail_button_enabled$NWE
Schnell Erneuern Sie: $NWB#phones-enable_fast_refresh$NWE
Schnell Erneuern Sie Rate: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Selbstvorwahlknopf-Folgende Zahl: $NWB#phones-auto_dial_next_number$NWE
Stoppen Sie Rec nach jedem Anruf: $NWB#phones-VDstop_rec_after_each_call$NWE
Ermöglichen Sie SIPSAK Anzeigen: $NWB#phones-enable_sipsak_messages$NWE
DBX Bediener: (HauptsächlichDB Server)$NWB#phones-DBX_server$NWE
DBX Datenbank: (HauptsächlichServer Database)$NWB#phones-DBX_database$NWE
DBX Benutzer: (HauptsächlichDB Login)$NWB#phones-DBX_user$NWE
DBX Durchlauf: (HauptsächlichDB Secret)$NWB#phones-DBX_pass$NWE
DBX Tor: (HauptsächlichDB Port)$NWB#phones-DBX_port$NWE
DBY Bediener: (ZweitensDB Server)$NWB#phones-DBY_server$NWE
DBY Datenbank: (ZweitensServer Database)$NWB#phones-DBY_database$NWE
DBY Benutzer: (ZweitensDB Login)$NWB#phones-DBY_user$NWE
DBY Durchlauf: (ZweitensDB Secret)$NWB#phones-DBY_pass$NWE
DBY Tor: (ZweitensDB Port)$NWB#phones-DBY_port$NWE
Vorlagen-ID: $NWB#phones-template_id$NWE
Conf AllowOverride: $NWB#phones-conf_override$NWE
\n"; + + echo "

Klicken Sie hier für Telefonnotfall\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

LÖSCHEN SIE DIESES TELEFON\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#phones-template_id$NWE
Conf AllowOverride: $NWB#phones-conf_override$NWE
\n"; - - echo "

Klicken Sie hier für Telefonnotfall\n"; - - if ($LOGast_delete_phones > 0) - { - echo "

LÖSCHEN SIE DIESES TELEFON\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -17104,70 +21297,70 @@ if ($ADD==31111111111) ###################### if ($ADD==32111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFY A Telefon ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Alias-ID:$row[0] $NWB#phones-alias_id$NWE
Alias-Name: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; - - - ### list of phones in this phones alias - $phone_alias_SQL = ereg_replace(',',"','",$row[2]); - - echo "
\n"; - echo "
PHONES IN DIESER PHONES ALIAS:
\n"; - echo "\n"; - echo "\n"; - - $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; - if ($DB) {echo "|$stmt|";} - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
LOGINVERLÄNGERUNGSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; - - if ($LOGast_delete_phones > 0) { - echo "

DELETE Dieses Telefon ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY A Telefon ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias-ID:$row[0] $NWB#phones-alias_id$NWE
Alias-Name: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
PHONES IN DIESER PHONES ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINVERLÄNGERUNGSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Dieses Telefon ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Telefon Alias
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Telefon Alias\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -17175,44 +21368,44 @@ if ($ADD==32111111111) ###################### if ($ADD==33111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFY A GROUP ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Alias-ID-Gruppe: $row[0] $NWB#phones-group_alias_id$NWE
Gruppe Alias-Name: $NWB#phones-group_alias_name$NWE
CallerID Anzahl: $NWB#phones-caller_id_number$NWE
CallerID Name: $NWB#phones-caller_id_name$NWE
Aktiv:
\n"; - - - if ($LOGast_delete_phones > 0) { - echo "

DELETE Diese Gruppe ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY A GROUP ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias-ID-Gruppe: $row[0] $NWB#phones-group_alias_id$NWE
Gruppe Alias-Name: $NWB#phones-group_alias_name$NWE
CallerID Anzahl: $NWB#phones-caller_id_number$NWE
CallerID Name: $NWB#phones-caller_id_name$NWE
Aktiv:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Diese Gruppe ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Gruppe Alias
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Gruppe Alias\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -17220,286 +21413,301 @@ if ($ADD==33111111111) ###################### if ($ADD==311111111111) -{ - if ($LOGmodify_servers==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "Trunks:
\n"; + echo "KAMPAGNE:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "
\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
CARRIERS IN DIESEM SERVER:
\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage from servers where server_id='$server_id' or server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $server_id = $row[0]; - $server_description = $row[1]; - $server_ip = $row[2]; - $active = $row[3]; - $asterisk_version = $row[4]; - $max_vicidial_trunks = $row[5]; - $telnet_host = $row[6]; - $telnet_port = $row[7]; - $ASTmgrUSERNAME = $row[8]; - $ASTmgrSECRET = $row[9]; - $ASTmgrUSERNAMEupdate = $row[10]; - $ASTmgrUSERNAMElisten = $row[11]; - $ASTmgrUSERNAMEsend = $row[12]; - $local_gmt = $row[13]; - $voicemail_dump_exten = $row[14]; - $answer_transfer_agent = $row[15]; - $ext_context = $row[16]; - $sys_perf_log = $row[17]; - $vd_server_logs = $row[18]; - $agi_output = $row[19]; - $vicidial_balance_active = $row[20]; - $balance_trunks_offlimits = $row[21]; - $recording_web_link = $row[22]; - $alt_server_ip = $row[23]; - $active_asterisk_server = $row[24]; - $generate_vicidial_conf = $row[25]; - $rebuild_conf_files = $row[26]; - $outbound_calls_per_second = $row[27]; - $sysload = $row[28]; - $channels_total = $row[29]; - $cpu_idle_percent = $row[30]; - $disk_usage = $row[31]; + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; - $cpu = (100 - $cpu_idle_percent); - $disk_usage = preg_replace("/ /"," - ",$disk_usage); - $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); - echo "
ÄNDERN Sie Einen BEDIENER-SATZ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
ÄNDERN Sie Einen BEDIENER-SATZ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Bediener Identifikation: $NWB#servers-server_id$NWE
Bediener-Beschreibung: $NWB#servers-server_description$NWE
Bediener-IP address: $NWB#servers-server_ip$NWE
Aktiv:$NWB#servers-active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "
Bediener Identifikation: $NWB#servers-server_id$NWE
Bediener-Beschreibung: $NWB#servers-server_description$NWE
Bediener-IP address: $NWB#servers-server_ip$NWE
Aktiv:$NWB#servers-active$NWE
System Load: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live-Channels: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
System Load: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live-Channels: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
Sternchen-Version: $NWB#servers-asterisk_version$NWE
Maximale VICIDIAL Stämme: $NWB#servers-max_vicidial_trunks$NWE
Max Calls pro Sekunde: $NWB#servers-outbound_calls_per_second$NWE
VICIDIAL Balance Wählen: $NWB#servers-vicidial_balance_active$NWE
VICIDIAL Balance Offlimits: $NWB#servers-balance_trunks_offlimits$NWE
Telnet Wirt: $NWB#servers-telnet_host$NWE
Telnet Tor: $NWB#servers-telnet_port$NWE
Manager-Benutzer: $NWB#servers-ASTmgrUSERNAME$NWE
Manager-Geheimnis: $NWB#servers-ASTmgrSECRET$NWE
Manager-Update-Benutzer: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Manager Hören Benutzer: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Manager Senden Benutzer: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Lokales GMT: (Stellen Sie NICHT auf DST ein)$NWB#servers-local_gmt$NWE
VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
VICIDIAL ANZEIGE Verlängerung: $NWB#servers-answer_transfer_agent$NWE
Rückstellung Kontext: $NWB#servers-ext_context$NWE
System Leistung: $NWB#servers-sys_perf_log$NWE
Bediener-Maschinenbordbücher: $NWB#servers-vd_server_logs$NWE
AGI Ausgang: $NWB#servers-agi_output$NWE
Aufnahme Web-Link: $NWB#servers-recording_web_link$NWE
Alternate Recording Bediener IP: $NWB#servers-alt_server_ip$NWE
Aktive Asterisk Server: $NWB#servers-active_asterisk_server$NWE
Conf-Dateien erzeugen: $NWB#servers-generate_vicidial_conf$NWE
Rebuild conf-Dateien: $NWB#servers-rebuild_conf_files$NWE
Sternchen-Version: $NWB#servers-asterisk_version$NWE
Maximale VICIDIAL Stämme: $NWB#servers-max_vicidial_trunks$NWE
Max Calls pro Sekunde: $NWB#servers-outbound_calls_per_second$NWE
VICIDIAL Balance Wählen: $NWB#servers-vicidial_balance_active$NWE
VICIDIAL Balance Rang: $NWB#servers-vicidial_balance_rank$NWE
VICIDIAL Balance Offlimits: $NWB#servers-balance_trunks_offlimits$NWE
Telnet Wirt: $NWB#servers-telnet_host$NWE
Telnet Tor: $NWB#servers-telnet_port$NWE
Manager-Benutzer: $NWB#servers-ASTmgrUSERNAME$NWE
Manager-Geheimnis: $NWB#servers-ASTmgrSECRET$NWE
Manager-Update-Benutzer: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Manager Hören Benutzer: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Manager Senden Benutzer: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf-Datei Secret: $NWB#servers-conf_secret$NWE
Lokales GMT: (Stellen Sie NICHT auf DST ein)$NWB#servers-local_gmt$NWE
VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
VICIDIAL ANZEIGE Verlängerung: $NWB#servers-answer_transfer_agent$NWE
Rückstellung Kontext: $NWB#servers-ext_context$NWE
System Leistung: $NWB#servers-sys_perf_log$NWE
Bediener-Maschinenbordbücher: $NWB#servers-vd_server_logs$NWE
AGI Ausgang: $NWB#servers-agi_output$NWE
Carrier Aktive Logging: $NWB#servers-carrier_logging_active$NWE
Aufnahme Web-Link: $NWB#servers-recording_web_link$NWE
Alternate Recording Bediener IP: $NWB#servers-alt_server_ip$NWE
Aktive Asterisk Server: $NWB#servers-active_asterisk_server$NWE
Aktive Agent Server: $NWB#servers-active_agent_login_server$NWE
Conf-Dateien erzeugen: $NWB#servers-generate_vicidial_conf$NWE
Rebuild conf-Dateien: $NWB#servers-rebuild_conf_files$NWE
Rebuild Music On Hold: $NWB#servers-rebuild_music_on_hold$NWE
Klingt Update: $NWB#servers-sounds_update$NWE
ViciDial Recording-Limit: $NWB#servers-vicidial_recording_limit$NWE
\n"; + echo "
\n"; - ### vicidial server trunk records for this server - echo "

VICIDIAL STÄMME FÜR DIESEN BEDIENER:   $NWB#vicidial_server_trunks$NWE
\n"; - echo "\n"; - echo "\n"; + ### vicidial server trunk records for this server + echo "

VICIDIAL STÄMME FÜR DIESEN BEDIENER:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "
KAMPAGNE STÄMME BESCHRÄNKUNG DELETE
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; - while ($recycle_to_print > $o) { + while ($recycle_to_print > $o) + { $rowx=mysql_fetch_row($rslt); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
KAMPAGNE STÄMME BESCHRÄNKUNG DELETE
$rowx[1]
\n"; + echo "
$rowx[1]\n"; + echo "\n"; + echo "\n"; + echo "LÖSCHUNG
\n"; + + echo "
ADDIEREN SIE NEUEN STAMM-SATZ DES BEDIENER-VICIDIAL
\n"; + echo "\n"; echo "\n"; - echo "\n"; - echo "
LÖSCHUNG
\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNAMEREGISTRATIONAKTIV
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELEFONE INNERHALB DIESES BEDIENERS:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VERLÄNGERUNGNAMEAKTIV
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEVERLÄNGERUNG
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEVERLÄNGERUNG
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Dieser Bediener hat $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Dieser Bediener hat $active_phones aktive Telefone und $inactive_phones unaktivierte Telefone

\n"; + echo "Dieser Bediener hat $active_confs active conferences

\n"; + echo "Dieser Bediener hat $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS SERVER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Server\n"; + } } - - echo "
\n"; - - echo "
ADDIEREN SIE NEUEN STAMM-SATZ DES BEDIENER-VICIDIAL
\n"; - echo "\n"; - echo "\n"; - echo "Trunks:
\n"; - echo "KAMPAGNE:
\n"; - echo "RESTRICTION:
\n"; - echo "
\n"; - - echo "

\n"; - - - ### list of carriers on this server - echo "
\n"; - echo "
CARRIERS IN DIESEM SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_carriers = 0; - $inactive_carriers = 0; - $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $carriers_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($carriers_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[3])) {$active_carriers++;} - if (ereg("N", $rowx[3])) {$inactive_carriers++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIER IDNAMEREGISTRATIONAKTIV
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; - - - ### list of phones on this server - echo "
\n"; - echo "
TELEFONE INNERHALB DIESES BEDIENERS:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
VERLÄNGERUNGNAMEAKTIV
$rowx[0]$rowx[2]$rowx[1]

\n"; - - - ### list of conferences on this server - echo "
\n"; - echo "
CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_confs = 0; - $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_confs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CONFERENCEVERLÄNGERUNG
$rowx[0]$rowx[2]

\n"; - - - ### list of vicidial conferences on this server - echo "
\n"; - echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_vdconfs = 0; - $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_vdconfs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
VD CONFERENCEVERLÄNGERUNG
$rowx[0]$rowx[2]

\n"; - - - echo "
\n"; - - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Dieser Bediener hat $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; - echo "Dieser Bediener hat $active_phones aktive Telefone und $inactive_phones unaktivierte Telefone

\n"; - echo "Dieser Bediener hat $active_confs active conferences

\n"; - echo "Dieser Bediener hat $active_vdconfs active vicidial conferences

\n"; - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

DELETE THIS SERVER\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Server
\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -17507,111 +21715,111 @@ if ($ADD==311111111111) ###################### if ($ADD==331111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $template_id = $row[0]; - $template_name = $row[1]; - $template_contents = $row[2]; - - echo "
MODIFY A CONF TEMPLATE RECORD: $row[0]
\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Vorlagen-ID: $template_id
Template Name: $NWB#vicidial_conf_templates-template_name$NWE
Template-Inhalt: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; - - echo "
\n"; - - ### list of phones using this conf template - echo "
\n"; - echo "
PHONES SIE DIESE CONF TEMPLATE:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} + echo "
VERLÄNGERUNGNAMESERVERAKTIV
\n"; + echo "
MODIFY A CONF TEMPLATE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; - echo "
$rowx[0]$rowx[2]$rowx[3]$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Vorlagen-ID: $template_id
Template Name: $NWB#vicidial_conf_templates-template_name$NWE
Template-Inhalt: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES SIE DIESE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VERLÄNGERUNGNAMESERVERAKTIV
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
CARRIERS SIE DIESE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNAMESERVERAKTIV
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS CONF TEMPLATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Vorlage conf
\n"; + } } - - echo "

\n"; - - ### list of carriers using this conf template - echo "
\n"; - echo "
CARRIERS SIE DIESE CONF TEMPLATE:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIERNAMESERVERAKTIV
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; - - - - if ($LOGast_delete_phones > 0) - { - echo "

DELETE THIS CONF TEMPLATE\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Vorlage conf\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -17619,95 +21827,284 @@ if ($ADD==331111111111) ###################### if ($ADD==341111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active from vicidial_server_carriers where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $carrier_id = $row[0]; - $carrier_name = $row[1]; - $registration_string = $row[2]; - $template_id = $row[3]; - $account_entry = $row[4]; - $protocol = $row[5]; - $globals_string = $row[6]; - $dialplan_entry = $row[7]; - $server_ip = $row[8]; - $active = $row[9]; - - echo "
MODIFY A RECORD CARRIER: $row[0]\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Carrier-ID: $carrier_id
Carrier Name: $NWB#vicidial_server_carriers-carrier_name$NWE
Anmeldung String: $NWB#vicidial_server_carriers-registration_string$NWE
Vorlagen-ID: \n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFY A RECORD CARRIER: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Carrier-ID: $carrier_id
Carrier Name: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Beschreibung: $NWB#vicidial_server_carriers-carrier_description$NWE
Anmeldung String: $NWB#vicidial_server_carriers-registration_string$NWE
Vorlagen-ID: $NWB#vicidial_server_carriers-template_id$NWE
Account-Eintrag: $NWB#vicidial_server_carriers-account_entry$NWE
Protokoll: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Eintrag: $NWB#vicidial_server_carriers-dialplan_entry$NWE
Bediener IP: $NWB#vicidial_server_carriers-server_ip$NWE
Aktiv:$NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS CARRIER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Träger
\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#vicidial_server_carriers-template_id$NWE
Account-Eintrag: $NWB#vicidial_server_carriers-account_entry$NWE
Protokoll: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Eintrag: $NWB#vicidial_server_carriers-dialplan_entry$NWE
Bediener IP: $NWB#vicidial_server_carriers-server_ip$NWE
Aktiv:$NWB#vicidial_server_carriers-active$NWE
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

DELETE THIS CARRIER\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Träger\n"; - } - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
Ändern eines TTS RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS-ID: $tts_id
TTS Name: $NWB#vicidial_tts_prompts-tts_name$NWE
Aktiv:$NWB#vicidial_tts_prompts-active$NWE
TTS Text: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS ENTRY TTS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem TTS-Eintrag
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $moh_id
Music On Hold Name: $NWB#vicidial_music_on_hold-moh_name$NWE
Aktiv:$NWB#vicidial_music_on_hold-active$NWE
Zufälliger Reihenfolge: $NWB#vicidial_music_on_hold-random$NWE
Audio-Dateien: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rang:\n"; + + echo "   $rowx[0] - LÖSCHUNG
\n"; + $o++; + } + + echo "
Fügen Sie eine Audio-Datei: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE MUSIC ON HOLD ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem Music On Hold-Eintrag
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
Ändern einer Voicemail-Box: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Voicemail-ID: $voicemail_id
Kennwort:$NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
E-Mail:$NWB#vicidial_voicemail-email$NWE
Aktiv:$NWB#vicidial_voicemail-active$NWE
Löschen Voicemail Nach E-Mail: $NWB#vicidial_voicemail-delete_vm_after_email$NWE
Neue Anzeigen: $messages
Alte Anzeigen: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS Voicemail-Box\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem Voicemail-Box
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} ###################### @@ -17715,45 +22112,45 @@ if ($ADD==341111111111) ###################### if ($ADD==3111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
ÄNDERN Sie Einen KONFERENZ-SATZ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Konferenz:$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
Gegenwärtige Verlängerung:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

DELETE Diese Konferenz\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
ÄNDERN Sie Einen KONFERENZ-SATZ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Konferenz:$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
Gegenwärtige Verlängerung:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Diese Konferenz\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; } } - else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; - } -} ###################### @@ -17761,45 +22158,45 @@ if ($ADD==3111111111111) ###################### if ($ADD==31111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Konferenz:$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
Gegenwärtige Verlängerung:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

DELETE THIS VICIDIAL KONFERENZ\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Konferenz:$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
Gegenwärtige Verlängerung:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS VICIDIAL KONFERENZ\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; } } - else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; - } -} @@ -17808,153 +22205,251 @@ if ($ADD==31111111111111) ###################### if ($ADD==311111111111111) -{ + { if ($LOGmodify_servers==1) - { - echo "
\n"; - echo ""; + { + echo "\n"; - } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second from system_settings;"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $version = $row[0]; - $install_date = $row[1]; - $use_non_latin = $row[2]; - $webroot_writable = $row[3]; - $enable_queuemetrics_logging = $row[4]; - $queuemetrics_server_ip = $row[5]; - $queuemetrics_dbname = $row[6]; - $queuemetrics_login = $row[7]; - $queuemetrics_pass = $row[8]; - $queuemetrics_url = $row[9]; - $queuemetrics_log_id = $row[10]; - $queuemetrics_eq_prepend = $row[11]; - $vicidial_agent_disable = $row[12]; - $allow_sipsak_messages = $row[13]; - $admin_home_url = $row[14]; - $enable_agc_xfer_log = $row[15]; - $db_schema_version = $row[16]; - $auto_user_add_value = $row[17]; - $timeclock_end_of_day = $row[18]; - $timeclock_last_reset_date = $row[19]; - $vdc_header_date_format = $row[20]; - $vdc_customer_date_format = $row[21]; - $vdc_header_phone_format = $row[22]; - $vdc_agent_api_active = $row[23]; - $qc_last_pull_time = $row[24]; - $enable_vtiger_integration = $row[25]; - $vtiger_server_ip = $row[26]; - $vtiger_dbname = $row[27]; - $vtiger_login = $row[28]; - $vtiger_pass = $row[29]; - $vtiger_url = $row[30]; - $qc_features_active = $row[31]; - $outbound_autodial_active = $row[32]; - $outbound_calls_per_second = $row[33]; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; - echo "
ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN\n"; + echo "\n"; + echo "\n"; + echo "
Version: $version
DB Schema Version: $db_schema_version
Auto User-add Value: $auto_user_add_value
Installieren Datum: $install_date
Gebrauch Nicht-Lateinisch: $NWB#settings-use_non_latin$NWE
Webroot Schreibbar: $NWB#settings-webroot_writable$NWE
VICIDIAL Mittel Sperren Anzeige: $NWB#settings-vicidial_agent_disable$NWE
Erlauben Sie SIPSAK Anzeigen: $NWB#settings-allow_sipsak_messages$NWE
Admin Haupt-URL: $NWB#settings-admin_home_url$NWE
Ermöglichen Sie Vertreter-Übergangsprotokolldatei: $NWB#settings-enable_agc_xfer_log$NWE
Timeclock End-of-Day:$NWB#settings-timeclock_end_of_day$NWE
LetzteTimeclock Auto Logout: $timeclock_last_reset_date
QC Letzte Pull Zeit: $qc_last_pull_time
Agent-Header Datum Screen Format: $NWB#settings-vdc_header_date_format$NWE
Agent Screen Kunden Datum Format: $NWB#settings-vdc_customer_date_format$NWE
Agent Screen Kunden Telefon Format: $NWB#settings-vdc_header_phone_format$NWE
Agent API Aktive:$NWB#settings-vdc_agent_api_active$NWE
QC Funktionen aktiv: $NWB#settings-qc_features_active$NWE
Outbound Auto-Dial Aktiv: $NWB#settings-outbound_autodial_active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "\n"; + $o++; + } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "$servers_list"; + echo "\n"; + echo "$NWB#settings-active_voicemail_server$NWE\n"; - echo "\n"; - echo "
Version: $version
DB Schema Version: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto User-add Value: $auto_user_add_value
Installieren Datum: $install_date
Gebrauch Nicht-Lateinisch: $NWB#settings-use_non_latin$NWE
Webroot Schreibbar: $NWB#settings-webroot_writable$NWE
VICIDIAL Mittel Sperren Anzeige: $NWB#settings-vicidial_agent_disable$NWE
Erlauben Sie SIPSAK Anzeigen: $NWB#settings-allow_sipsak_messages$NWE
Admin Haupt-URL: $NWB#settings-admin_home_url$NWE
Ermöglichen Sie Vertreter-Übergangsprotokolldatei: $NWB#settings-enable_agc_xfer_log$NWE
Timeclock End-of-Day:$NWB#settings-timeclock_end_of_day$NWE
LetzteTimeclock Auto Logout: $timeclock_last_reset_date
Agent-Header Datum Screen Format: $NWB#settings-vdc_header_date_format$NWE
Agent Screen Kunden Datum Format: $NWB#settings-vdc_customer_date_format$NWE
Agent Screen Kunden Telefon Format: $NWB#settings-vdc_header_phone_format$NWE
Agent API Aktive:$NWB#settings-vdc_agent_api_active$NWE
Agent Only Rückruf-Lock-Kampagne: $NWB#settings-agentonly_callback_campaign_lock$NWE
Max-FILL fordert pro Sekunde: $NWB#settings-outbound_calls_per_second$NWE
Central Sound Control Aktiv:$NWB#settings-sounds_central_control_active$NWE
Sounds Web Server: $NWB#settings-sounds_web_server$NWE
Sounds Web-Verzeichnis: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Ermöglichen Sie Der QueueMetrics Protokollierung: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics Bediener IP: $NWB#settings-queuemetrics_server_ip$NWE
QueueMetrics DB Name: $NWB#settings-queuemetrics_dbname$NWE
QueueMetrics DB LOGON: $NWB#settings-queuemetrics_login$NWE
QueueMetrics DB Kennwort: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
QueueMetrics Maschinenbordbuch Identifikation:$NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Stellen Voran: $NWB#settings-queuemetrics_eq_prepend$NWE
Aktive Voicemail-Server:
Aktivieren vtiger Integration: $NWB#settings-enable_vtiger_integration$NWE\n"; - echo "   Klicken Sie hier, um synchronisieren Sie Benutzer mit vtiger\n"; - echo "
Vtiger HE Bediener IP: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Kennwort:$NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; - echo "\n"; - if ($LOGuser_level >= 9) - { - echo "

Klicken Sie hier, um zu sehen, Admin chages auf die System-Einstellungen
\n"; - } + echo "
Auto Dial Limit: $NWB#settings-auto_dial_limit$NWE
Outbound Auto-Dial Aktiv: $NWB#settings-outbound_autodial_active$NWE
Max-FILL fordert pro Sekunde: $NWB#settings-outbound_calls_per_second$NWE
Lassen Sie Custom Dialplan Einträge: $NWB#settings-allow_custom_dialplan$NWE
User Gebiete Aktiv:$NWB#settings-user_territories_active$NWE
Aktivieren Zweiten Webform: $NWB#settings-enable_second_webform$NWE
Aktivieren TTS Integration: $NWB#settings-enable_tts_integration$NWE
QC Funktionen aktiv: $NWB#settings-qc_features_active$NWE
QC Letzte Pull Zeit: $qc_last_pull_time
Ermöglichen Sie Der QueueMetrics Protokollierung: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics Bediener IP: $NWB#settings-queuemetrics_server_ip$NWE
QueueMetrics DB Name: $NWB#settings-queuemetrics_dbname$NWE
QueueMetrics DB LOGON: $NWB#settings-queuemetrics_login$NWE
QueueMetrics DB Kennwort: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
QueueMetrics Maschinenbordbuch Identifikation:$NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Stellen Voran: $NWB#settings-queuemetrics_eq_prepend$NWE
Aktivieren vtiger Integration: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Klicken Sie hier, um synchronisieren Sie Benutzer mit vtiger\n"; + echo "
Vtiger HE Bediener IP: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Kennwort:$NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages auf die System-Einstellungen
\n"; + } + } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} @@ -17966,100 +22461,114 @@ if ($ADD==311111111111111) ###################### if ($ADD==321111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; - - echo "
\n"; - echo "VICIDIAL STATUS INNERHALB DIESES SYSTEMS:  $NWB#vicidial_statuses$NWE
\n"; - echo "\n"; - echo "\n"; - - ##### get status category listings for dynamic pulldown - $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; - $rslt=mysql_query($stmt, $link); - $cats_to_print = mysql_num_rows($rslt); - $cats_list=""; - - $o=0; - while ($cats_to_print > $o) + if ($LOGmodify_servers==1) { - $rowx=mysql_fetch_row($rslt); - $cats_list .= "\n"; - $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); - $o++; - } + echo "
STATUSBESCHREIBUNGSELECT-
ABLE
HUMAN
ANTWORT
KATEGORIEMODIFY/DELETE
\n"; - echo "\n"; + echo "  
\n"; + echo "
\n"; + + echo "
\n"; + } - - echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL STATUS INNERHALB DIESES SYSTEMS:  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } - $stmt="SELECT * from vicidial_statuses order by status;"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $AScategory = $rowx[4]; - $o++; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
STATUSBESCHREIBUNGSELECT-
ABLE
HUMAN
ANTWORT
KATEGORIEMODIFY/DELETE
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "LÖSCHUNG\n"; + } + else + { + echo "LÖSCHUNG\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
ADDIEREN SIE NEUEN SYSTEMSTATUS
\n"; + echo "\n"; + echo "Status:   \n"; + echo "Beschreibung:
\n"; + echo "Auswählbar:   \n"; + echo "Human Antwort:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Kategorie:\n"; echo "\n"; - echo "
        \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "LÖSCHUNG\n"; - } - else - { - echo "LÖSCHUNG\n"; - } - echo "
\n"; - - echo "
ADDIEREN SIE NEUEN SYSTEMSTATUS
\n"; - echo "\n"; - echo "Status:   \n"; - echo "Beschreibung:
\n"; - echo "Auswählbar:   \n"; - echo "Human Antwort:   \n"; - echo "Kategorie:\n"; - echo "  
\n"; - echo "
\n"; - - echo "

\n"; - - } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} @@ -18070,18 +22579,18 @@ if ($ADD==321111111111111) ###################### if ($ADD==331111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; - echo "
\n"; - echo "VICIDIAL STATUS KATEGORIEN:   $NWB#vicidial_status_categories$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
\n"; + echo "VICIDIAL STATUS KATEGORIEN:   $NWB#vicidial_status_categories$NWE
\n"; + echo "
KATEGORIENAMEStatus in dieser Kategorie
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_status_categories order by vsc_id;"; + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -18144,28 +22653,28 @@ if ($ADD==331111111111111) $p++; } + + echo "
KATEGORIENAMEStatus in dieser Kategorie
\n"; - echo "
\n"; + echo "
ADDIEREN SIE NEUE STATUS-KATEGORIE
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Anzeige:   \n"; + echo "Verkauf Kategorie:   \n"; + echo "Dead Lead Kategorie:  
\n"; + echo "Beschreibung:   \n"; + echo "
\n"; - echo "
ADDIEREN SIE NEUE STATUS-KATEGORIE
\n"; - echo "\n"; - echo "Category ID:   \n"; - echo "Name:  
\n"; - echo "TimeOnVDAD Anzeige:   \n"; - echo "Verkauf Kategorie:   \n"; - echo "Dead Lead Kategorie:  
\n"; - echo "Beschreibung:   \n"; - echo "
\n"; + echo "

\n"; - echo "
\n"; - - } + } else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } } -} @@ -18176,121 +22685,121 @@ if ($ADD==331111111111111) ###################### if ($ADD==341111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL QC-Status-Codes mit Hilfe dieses Systems:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEBESCHREIBUNGMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "LÖSCHUNG\n"; + } + else + { + echo "LÖSCHUNG\n"; + } + echo "
\n"; + + echo "
Neue QC-Statuscode
\n"; + echo "\n"; + echo "Status:   \n"; + echo "Beschreibung:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) { echo "
\n"; echo ""; - echo "
\n"; - echo "VICIDIAL QC-Status-Codes mit Hilfe dieses Systems:  $NWB#vicidial_qc_status_codes$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
SUCHE NACH Einem BENUTZER\n"; + echo "\n"; + echo "
STATUS CODEBESCHREIBUNGMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - } - } - echo "
Benutzer-Zahl:
Voller Name:
Benutzer-Niveau:
Benutzer-Gruppe:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]         \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "LÖSCHUNG\n"; - } - else - { - echo "LÖSCHUNG\n"; - } - echo "
\n"; - - echo "
Neue QC-Statuscode
\n"; - echo "\n"; - echo "Status:   \n"; - echo "Beschreibung:
\n"; - echo "
\n"; - - echo "

\n"; - - } - else - { - echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; - exit; - } -} - - - - - - -###################### -# ADD=550 search form -###################### - -if ($ADD==550) -{ -echo "\n"; - -echo "\n"; -echo "
\n"; -echo ""; - -echo "
SUCHE NACH Einem BENUTZER
\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + + echo "\n"; + echo "
Benutzer-Zahl:
Voller Name:
Benutzer-Niveau:
Benutzer-Gruppe:
\n"; } -echo "$groups_list
\n"; - -} ###################### # ADD=660 user search results ###################### if ($ADD==660) -{ -echo "
\n"; + { + echo "
\n"; echo ""; $SQL = ''; @@ -18299,18 +22808,19 @@ echo "
\n"; if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} if ($user_group) {$SQL .= " user_group = '$user_group' and";} $SQL = eregi_replace(" and$", "", $SQL); - if (strlen($SQL)>5) {$SQL = "where $SQL";} + if (strlen($SQL)>5) {$SQL = "and $SQL";} - $stmt="SELECT * from vicidial_users $SQL order by full_name desc;"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; # echo "\n|$stmt|\n"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); -echo "
SUCHRESULTATE:\n"; -echo "
\n"; + echo "
SUCHRESULTATE:\n"; + echo "
\n"; $o=0; - while ($people_to_print > $o) { + while ($people_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18319,12 +22829,12 @@ echo "
\n"; echo ""; echo "\n"; $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]ÄNDERN Sie | Notfall | STATUS | TIME
\n"; + } -echo "
\n"; - -} - ###################################################################################################### ###################################################################################################### @@ -18336,158 +22846,158 @@ echo "
\n"; # ADD=8 find all callbacks on hold by a User ###################### if ($ADD==8) -{ - if ($LOGmodify_users==1) { + if ($LOGmodify_users==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
User($user) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
User($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
User($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
User($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; -echo ""; + echo ""; $CBquerySQLwhere = "and user='$user'"; -echo "
USER CALLBACK HOLD LISTINGS: $user\n"; -$oldADD = "ADD=8&user=$user"; -$ADD='82'; -} + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } ###################### # ADD=81 find all callbacks on hold within a Campaign ###################### if ($ADD==81) -{ - if ($LOGmodify_campaigns==1) { + if ($LOGmodify_campaigns==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; -echo ""; + echo ""; $CBquerySQLwhere = "and campaign_id='$campaign_id'"; -echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; -$oldADD = "ADD=81&campaign_id=$campaign_id"; -$ADD='82'; -} + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } ###################### # ADD=811 find all callbacks on hold within a List ###################### if ($ADD==811) -{ - if ($LOGmodify_lists==1) { + if ($LOGmodify_lists==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; -echo ""; + echo ""; $CBquerySQLwhere = "and list_id='$list_id'"; -echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=811&list_id=$list_id"; -$ADD='82'; -} + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } ###################### # ADD=8111 find all callbacks on hold within a user group ###################### if ($ADD==8111) -{ - if ($LOGmodify_usergroups==1) { + if ($LOGmodify_usergroups==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; echo ""; $CBquerySQLwhere = "and user_group='$user_group'"; -echo "
User Group CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=8111&user_group=$user_group"; -$ADD='82'; -} + echo "
User Group CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } ###################### # ADD=82 display all callbacks on hold ###################### if ($ADD==82) -{ + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $LEVELlink='stage=LEVELUP';} -$USERlink='stage=USERIDDOWN'; -$GROUPlink='stage=GROUPDOWN'; -$ENDATElink='stage=ENDATEDOWN'; -$SQLorder='order by '; -if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} -if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} -if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $LEVELlink='stage=LEVELUP';} - - $stmt="SELECT * from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; $rslt=mysql_query($stmt, $link); $cb_to_print = mysql_num_rows($rslt); -echo ""; echo ""; echo "\n"; + echo "\n"; echo "\n"; echo ""; echo ""; @@ -18691,6 +23202,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18700,7 +23212,7 @@ if ($ADD==100) $o++; } - $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id from vicidial_lists where list_id NOT IN($lists_printed'');"; + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); $o=0; @@ -18714,6 +23226,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18817,6 +23330,65 @@ if ($ADD==1300) } +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + echo "
LEADLIST KAMPAGNEENTRYDATUMCALLBACKDATUMUSERRECIPIENTSTATUSGROUP
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; $o=0; - while ($cb_to_print > $o) { + while ($cb_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18505,13 +23015,13 @@ echo ""; echo "\n"; $o++; + } + + echo "
LEADLIST KAMPAGNEENTRYDATUMCALLBACKDATUMUSERRECIPIENTSTATUSGROUP
G echo "$row[11]
\n"; + + echo "$CBinactiveLINK"; } -echo "
\n"; - -echo "$CBinactiveLINK"; -} - ###################################################################################################### @@ -18535,7 +23045,7 @@ if ($ADD==0) } else { - $SQLstatus = "where active='Y'"; + $SQLstatus = "and active='Y'"; echo "   Alle Nutzer anzeigen\n"; } @@ -18552,7 +23062,7 @@ if ($ADD==0) if (eregi("LEVELDOWN",$stage)) {$SQLorder='order by user_level desc'; $LEVELlink='stage=LEVELUP';} if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} - $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users $SQLstatus $SQLorder"; + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); @@ -18662,7 +23172,7 @@ if ($ADD==100) if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} - $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -18672,6 +23182,7 @@ if ($ADD==100) echo "
LISTE IDENTIFIKATIONLISTE NAMEBESCHREIBUNGRTIMELEADS COUNTAKTIVLAST CALL DATUM
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
"; echo "\n"; - $o=0; while ($statecalltimes_to_print > $o) { @@ -19369,6 +23940,143 @@ if ($ADD==140000000000) echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNAMEPROMPTTIMEOUTOPTIONSÄNDERN Sie
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]ÄNDERN Sie
\n"; + } + + ###################### # ADD=10000 display all remote agents ###################### @@ -19039,7 +23611,6 @@ if ($ADD==1000000000) echo "
DEFAULT STOPÄNDERN Sie
\n"; } + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS-IDTTS NameAktiveTTS TextÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameAktiveZufälliger ReihenfolgeÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
Voicemail-Boxen:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameAktiveNeue AnzeigenAlte AnzeigenDeleteÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]ÄNDERN Sie
\n"; + } + + ###################### # ADD=1000000000000 display all conferences ###################### @@ -19763,7 +24471,7 @@ if ($ADD==999999) echo "\n";echo "\n"; -$stmt="SELECT admin_home_url from system_settings;"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; ?>
-
\n"; echo ""; - $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers;"; + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $servers_to_print = mysql_num_rows($rslt); @@ -19788,52 +24496,97 @@ if ($ADD==999999) $queuemetrics_url_LU = $row[0]; $vtiger_url_LU = $row[1]; + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; ?> - VICIDIAL: Server-Statistiken und Berichte - VICIDIAL: Server-Statistiken und Berichte

+ Server-Statistiken und Berichte + Server-Statistiken und Berichte

+
+       + + Real-Time Berichte

+ Inbound and Outbound Calling Berichte
+ + +
+       + + Agent Berichte
+
+ Time Clock Berichte
+
+ Other Berichte and Links
+ +
+ +

-		 $o)
@@ -19855,7 +24608,7 @@ if ($ADD==999999)
 				}
 			$disk = "$disk%";
 			echo "\n";
-			echo "\n";
+			echo "\n";
 			echo "\n";
 			echo "\n";
 			echo "\n";
@@ -19898,7 +24651,7 @@ echo "BAU: $build\n";
 
 
-1)
 					{
-					$stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
+					$stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
 					$rslt=mysql_query($stmt, $link);
 					$row=mysql_fetch_row($rslt);
 					$Gstate_call_time_id =		"$row[0]";
@@ -20207,7 +24960,6 @@ if (isset($camp_lists))
 			$default_gmt = "$default_gmt'99'";
 			$all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL";
 
-
 			$dial_statuses = preg_replace("/ -$/","",$dial_statuses);
 			$Dstatuses = explode(" ", $dial_statuses);
 			$Ds_to_print = (count($Dstatuses) - 0);
@@ -20221,7 +24973,16 @@ if (isset($camp_lists))
 			$Dsql = preg_replace("/,$/","",$Dsql);
 			if (strlen($Dsql) < 2) {$Dsql = "''";}
 
-			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $fSQL";
+			$DLTsql='';
+			if ($drop_lockout_time > 0)
+				{
+				$DLseconds = ($drop_lockout_time * 3600);
+				$DLseconds = floor($DLseconds);
+				$DLseconds = intval("$DLseconds");
+				$DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )";
+				}
+
+			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL";
 			#$DB=1;
 			if ($DB) {echo "$stmt\n";}
 			$rslt=mysql_query($stmt, $link);
diff --git a/LANG_www/vicidial_de/admin_header.php b/LANG_www/vicidial_de/admin_header.php
index dd48f6e9..4a715e6f 100644
--- a/LANG_www/vicidial_de/admin_header.php
+++ b/LANG_www/vicidial_de/admin_header.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -6,6 +6,19 @@
 
 # CHANGES
 # 90310-0709 - First Build
+# 90508-0542 - Added Call Menu option, changed script to use long PHP tags
+# 90514-0605 - Added audio prompt selection functions
+# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option
+# 90531-2339 - Added Dynamic options for Call Menu
+# 90612-0852 - Changed relative links
+# 90635-0943 - Added javascript for dynamic menus in In-Groups
+# 90627-0548 - Added no-agent-no-queue options
+# 90628-1016 - Added Text-to-speech options
+# 90830-2213 - Added Music On Hold options
+# 90904-1534 - Added launch_moh_chooser
+# 90916-2334 - Added Voicemail options
+# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus
+#
 
 
 ######################### SMALL HTML HEADER BEGIN #######################################
@@ -26,7 +39,7 @@ if($short_header)
 	
SERVERBESCHREIBUNGIPACTLOADCHANDISKOUTBOUNDINBOUND
$server_id[$o]$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]   Berichte  
- \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
English Deutsch
-VICIDIAL logo +VICIDIAL logo ADMINISTRATION
- - 1) { + 1) { ?> - >>>>>>> - >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + - - 1) { if ($sh=='basic') {$sh='list';} @@ -657,201 +968,241 @@ if (strlen($reports_hh) > 1) { else {$listmix_sh=''; $listmix_fc='BLACK';} ?> - > - - > - - > - - > + + > + + > + + 0) { ?> - > - - > - - > - - > + + > + + > + + - > - - > + + - 0) { ?> - - + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Add-Nummer löschen Von DNC';} + else {$DNClink = 'Add Number To DNC';} ?> - >>>>>>>>>> - - - 1) { ?> - >>>> - - 0) { ?> - - + 1) { ?> - >>>> - - - 1) { ?> - >>>>>>>>>>>>>>> - - - 1) { ?> - >>>>>>>> - - - 1) { ?> - >>>> - - - 1) { - if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} # pink + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} else {$times_sh=''; $times_fc='BLACK';} - if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} # pink + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} else {$shifts_sh=''; $shifts_fc='BLACK';} - if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} # pink + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} else {$templates_sh=''; $templates_fc='BLACK';} - if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} # pink + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} else {$carriers_sh=''; $carriers_fc='BLACK';} - if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} # pink + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} else {$phones_sh=''; $phones_fc='BLACK';} - if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} # pink + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} else {$server_sh=''; $server_fc='BLACK';} - if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} # pink + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} else {$conference_sh=''; $conference_fc='BLACK';} - if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} # pink + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} else {$settings_sh=''; $settings_fc='BLACK';} - if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} # pink + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} ?> - > - - > - > - > - > - > - > - > - > + > + + > + > + > + > + > + > + > + > + > - 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + - +
WIDTH=160> - SIZE=>Benutzer +
WIDTH=160> + SIZE=>Benutzer
-   >Benutzer anzeigen -
-   >Hinzufügen eines neuen Benutzers -
-   >KopierenBenutzer -
-   >Suche für einen Benutzer -
-   >User-Statistiken -
-   >User Status -
-   >Time Sheet
+   >Benutzer anzeigen +
+   >Hinzufügen eines neuen Benutzers +
+   >KopierenBenutzer +
+   >Suche für einen Benutzer +
+   >User-Statistiken +
+   >User Status +
+   >Time Sheet
+   >User Territories
> - SIZE=>Kampagnen +
> + SIZE=>Kampagnen
>   SIZE=>Kampagnen Main
>   SIZE=>Status
>   SIZE=>HotKeys>   SIZE=>Kampagnen Main
>   SIZE=>Status
>   SIZE=>HotKeys
>   SIZE=>Lead-Recycling
>   SIZE=>Auto-Alt Dial
>   SIZE=>US-Mix
>   SIZE=>Lead-Recycling
>   SIZE=>Auto-Alt Dial
>   SIZE=>US-Mix
>   SIZE=>Pause Codes
>   SIZE=>Pause Codes
> SIZE=>Listen
> SIZE=>Listen
  - > Zeigen Sie Listen -
  - > Addieren Sie Eine Neue Liste -
  - > Suche Nach Einer Leitung -
  - > Fügen Sie Zahl DNC Hinzu -
  - > Last Neue Leitungen +
  + > Zeigen Sie Listen +
  + > Addieren Sie Eine Neue Liste +
  + > Suche Nach Einer Leitung +
  + > +
  + > Last Neue Leitungen
> - SIZE=> Indexe +
> + SIZE=> Indexe
  - > Zeigen Sie Indexe -
  - > Addieren Sie Einen Neuen Index +
  + > Zeigen Sie Indexe +
  + > Addieren Sie Einen Neuen Index
> SIZE=> Filter
> SIZE=> Filter
  - > Zeigen Sie Filter -
  - > Addieren Sie Einen Neuen Filter +
  + > Zeigen Sie Filter +
  + > Addieren Sie Einen Neuen Filter
> - SIZE=> In-Gruppen +
> + SIZE=> In-Gruppen
  - > Zeigen Sie In-Gruppen -
  - > Addieren Sie Eine Neue In-Gruppe -
  - > KopierenIn-Gruppe -
  - > Show DIDS -
  - > Hinzufügen einer neuen DID -
  - > KopierenDID +
  + > Zeigen Sie In-Gruppen +
  + > Addieren Sie Eine Neue In-Gruppe +
  + > KopierenIn-Gruppe
+
  + > Show DIDS +
  + > Hinzufügen einer neuen DID +
  + > KopierenDID
+
  + > Call-Menüs anzeigen +
  + > Fügen Sie ein neues Call-Menü +
  + > Copy-Ruf-Menü
> - SIZE=> Benutzer-Gruppen +
> + SIZE=> Benutzer-Gruppen
  - > Zeigen Sie Benutzer-Gruppen -
  - > Addieren Sie Eine Neue Benutzer-Gruppe -
  - > Gruppe Stündlicher Report -
  - > Bulk-Gruppe ändern +
  + > Zeigen Sie Benutzer-Gruppen +
  + > Addieren Sie Eine Neue Benutzer-Gruppe +
  + > Gruppe Stündlicher Report +
  + > Bulk-Gruppe ändern
> - SIZE=> Remotemittel +
> + SIZE=> Remotemittel
  - > Zeigen Sie Remotemittel -
  - > Addieren Sie Neue Remotemittel +
  + > Zeigen Sie Remotemittel +
  + > Addieren Sie Neue Remotemittel
> - SIZE=> Admin +
> + SIZE=> Admin
COLSPAN=2>   - SIZE=> Anruf-Zeiten
>   - SIZE=> Verschiebungen
>   - SIZE=> Telefone
>   - SIZE=> Vorlagen
>   - SIZE=> Träger
>   - SIZE=> Bediener
>   - SIZE=> Konferenzen
>   - SIZE=> System Einstellungen
>   - SIZE=>Systemstatus
COLSPAN=2>   + SIZE=> Anruf-Zeiten
>   + SIZE=> Verschiebungen
>   + SIZE=> Telefone
>   + SIZE=> Vorlagen
>   + SIZE=> Träger
>   + SIZE=> Bediener
>   + SIZE=> Konferenzen
>   + SIZE=> System Einstellungen
>   + SIZE=>Systemstatus
>   + SIZE=> Voicemail
>   + SIZE=> Audio-Store
>   + SIZE=> Music On Hold
>   + SIZE=> Text To Speech
> - SIZE=> Berichte +
> + SIZE=> Berichte
 
-
BGCOLOR=#D9E6FE> + BGCOLOR=#D9E6FE> - HEIGHT=15> - + + +
HAUPT | Timeclock | Logout  
HEIGHT=15> + @@ -862,64 +1213,75 @@ if (strlen($reports_hh) > 1) { - 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { ?> - > - > + 1) and (!eregi('campaign',$hh) ) ) { ?> - > - > + - > - > + 1) { ?> -> - +> +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $u++; $call_log .= ""; @@ -363,27 +393,28 @@ else $call_log .= "\n"; $call_log .= "\n"; $call_log .= "\n"; - $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_agent_log records ##### - $stmt="select * from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Alogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); - $y=0; - $agent_log = ''; - $Alog_campaign = ''; - while ($Alogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $agent_log .= ""; @@ -400,24 +431,24 @@ else $agent_log .= "\n"; $campaign_id = $row[5]; - } + } - ##### grab vicidial_closer_log records ##### - $stmt="select * from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Clogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); - $y=0; - $closer_log = ''; - $Clog_campaign = ''; - while ($Clogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $closer_log .= ""; @@ -433,39 +464,43 @@ else $closer_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_list data for lead ##### - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $lead_id = "$row[0]"; - $dispo = "$row[3]"; - $tsr = "$row[4]"; - $vendor_id = "$row[5]"; - $list_id = "$row[7]"; - $gmt_offset_now = "$row[8]"; - $phone_code = "$row[10]"; - $phone_number = "$row[11]"; - $title = "$row[12]"; - $first_name = "$row[13]"; # - $middle_initial = "$row[14]"; - $last_name = "$row[15]"; # - $address1 = "$row[16]"; # - $address2 = "$row[17]"; # - $address3 = "$row[18]"; # - $city = "$row[19]"; # - $state = "$row[20]"; # - $province = "$row[21]"; # - $postal_code = "$row[22]"; # - $country_code = "$row[23]"; # - $gender = "$row[24]"; - $date_of_birth = "$row[25]"; - $alt_phone = "$row[26]"; # - $email = "$row[27]"; # - $security = "$row[28]"; # - $comments = "$row[29]"; # + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; echo "
Anrufinformationen: $first_name $last_name - $phone_number

\n"; echo "\n"; @@ -499,45 +534,47 @@ else echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + if ($DS < 1) {$statuses_list .= "\n";} + echo "$statuses_list"; + echo "(with $log_campaign statuses)\n"; echo "\n"; @@ -551,9 +588,9 @@ else echo "


\n"; if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) - { + { ### find any vicidial_callback records for this lead - $stmt="select * from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $CB_to_print = mysql_num_rows($rslt); @@ -593,62 +630,68 @@ else { echo "
No Callback records found
\n"; } + } + } + else + { + echo "Leitung Nachschlagen FIEL für lead_id aus $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; } + echo "

\n"; + echo "
\n"; + if ($c > 0) + { + echo "EXTENDED alternative Rufnummern FÜR DIESES LEAD:\n"; + echo "
HAUPT | Timeclock | Logout  
>   > Zeigen Sie Kampagnen     |     > Addieren Sie Eine Neue Kampagne     |     > KopierenKampagne     |     > Realzeitkampagnen Zusammenfassend
>   > Zeigen Sie Kampagnen     |     > Addieren Sie Eine Neue Kampagne     |     > KopierenKampagne     |     > Realzeitkampagnen Zusammenfassend
  > Zeigen Sie Anruf-Zeiten  | > Addieren Sie Eine Neue Anruf-Zeit  | > Zeigen Sie Zustand-Anruf-Zeiten  | > Addieren Sie Eine Neue Zustand-Anruf-Zeit
  > Zeigen Sie Anruf-Zeiten  | > Addieren Sie Eine Neue Anruf-Zeit  | > Zeigen Sie Zustand-Anruf-Zeiten  | > Addieren Sie Eine Neue Zustand-Anruf-Zeit
  > Show Verschiebungen  | > Fügen Sie eine neue Schicht
  > Show Verschiebungen  | > Fügen Sie eine neue Schicht
  > Zeigen Sie Telefone  | > Addieren Sie Ein Neues Telefon  | > Telefon Alias Liste  | > Hinzufügen einer neuen Telefon Alias  | > Gruppe Alias Liste  | > Eine neue Gruppe hinzuzufügen Alias
  > Zeigen Sie Telefone  | > Addieren Sie Ein Neues Telefon  | > Telefon Alias Liste  | > Hinzufügen einer neuen Telefon Alias  | > Gruppe Alias Liste  | > Eine neue Gruppe hinzuzufügen Alias
  > Zeigen Sie Konferenzen   |   > Addieren Sie Eine Neue Konferenz   |   > Zeigen Sie VICIDIAL Konferenzen   |   > Addieren Sie Eine Neue VICIDIAL Konferenz
  > Zeigen Sie Konferenzen   |   > Addieren Sie Eine Neue Konferenz   |   > Zeigen Sie VICIDIAL Konferenzen   |   > Addieren Sie Eine Neue VICIDIAL Konferenz
  > Zeigen Sie Bediener   |   > Addieren Sie Einen Neuen Bediener
  > Zeigen Sie Bediener   |   > Addieren Sie Einen Neuen Bediener
  > Show-Vorlagen   |   > Fügen Sie eine neue Vorlage
  > Show-Vorlagen   |   > Fügen Sie eine neue Vorlage
  > Show Träger   |   > Add A New Carrier
  > Show Träger   |   > Add A New Carrier
  > TTS Einträge anzeigen   |   > Add A New TTS Eintrag
  > MOH Einträge anzeigen   |   > Add A New MOH Eintrag
  > Show Voicemail Entries   |   > Add A New Voicemail Entry
  > System Einstellungen
  > System Einstellungen
  >Systemstatus   |   >Status-Kategorien   |   >QK-Status-Codes
  >Systemstatus   |   >Status-Kategorien   |   >QK-Status-Codes
  >User-Statistiken   |   >User Status   |   >Time Sheet   |   >Tage Status
  >User-Statistiken   |   >User Status   |   >Time Sheet   |   >Tage Status
>  
>  
-0) { - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; if ($WeBRooTWritablE > 0) { @@ -206,23 +214,22 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Leitung notieren Änderung +ADMINISTRATION: Leitung notieren Änderung
-VICIDIAL ADMIN: Leitung notieren Änderung
\n"; +ADMINISTRATION: Leitung notieren Änderung
\n"; if ($end_call > 0) -{ - + { ### update the lead record in the vicidial_list table - $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "Informationen geändert

\n"; - echo "\n"; + echo "Informationen geändert

\n"; + echo "
\n"; ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -233,69 +240,69 @@ if ($end_call > 0) $rslt=mysql_query($stmt, $link); if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($dispo == 'CALLBK') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($status == 'DNC') ) - { + { ### add lead to the internal DNC list $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; - } + } ### update last record in vicidial_log table if (($dispo != $status) and ($modify_logs > 0)) - { + { $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_closer_log table if (($dispo != $status) and ($modify_closer_logs > 0)) - { + { $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_agent_log table if (($dispo != $status) and ($modify_agent_logs > 0)) - { + { $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } if ($add_closer_record > 0) - { + { ### insert a NEW record to the vicidial_closer_log table $stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . mysql_real_escape_string($status) . "','" . mysql_real_escape_string($phone_code) . "','" . mysql_real_escape_string($phone_number) . "','$PHP_AUTH_USER','" . mysql_real_escape_string($comments) . "','Y')"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); + } + + } - - -} else -{ + { if ($CBchangeUSERtoANY == 'YES') { @@ -334,24 +341,47 @@ else $lead_count = $row[0]; if ($lead_count > 0) - { - - ##### grab vicidial_log records ##### - $stmt="select * from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); - - $u=0; - $call_log = ''; - $log_campaign = ''; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (strlen($log_campaign)<1) {$log_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$row[3] $row[2] $row[1] $row[15]
$row[15]   $row[10]
  $row[17]
  $row[17]
Rank :
Owner :
(with $log_campaign statuses)
Ändernvicidial log
\n"; + echo "\n"; - } - else - { - echo "Leitung Nachschlagen FIEL für lead_id aus $lead_id       $NOW_TIME\n

\n"; -# echo "Close this window\n

\n"; - } + echo "$alts_output\n"; + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } - -echo "

\n"; - -echo "
\n"; - -echo "ANRUFE ZU DIESEM LEITUNG:\n"; -echo "\n"; -echo "\n"; + echo "ANRUFE ZU DIESEM LEITUNG:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR KAMPAGNE LIST LEAD HANGUP REASON
\n"; + echo "\n"; echo "$call_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR KAMPAGNE LIST LEAD HANGUP REASON PHONE
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "CLOSER RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR KAMPAGNE LIST LEAD WAIT HANGUP REASON
\n"; + echo "\n"; echo "$closer_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR KAMPAGNE LIST LEAD WAIT HANGUP REASON
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "MITTELLOG RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "MITTELLOG RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "\n"; - echo "$agent_log\n"; + echo "$agent_log\n"; -echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "RECORDINGS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; + echo "\n"; -$stmt="select * from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; -$rslt=mysql_query($stmt, $link); -$logs_to_print = mysql_num_rows($rslt); + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); $u=0; while ($logs_to_print > $u) @@ -707,12 +750,8 @@ $logs_to_print = mysql_num_rows($rslt); } -echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; - - - - -} + echo "
\n"; + } $ENDtime = date("U"); @@ -731,15 +770,9 @@ echo "\n\n\n


\nIndexlaufzeit: $RUNtime seconds
"; - - - - - - diff --git a/LANG_www/vicidial_de/admin_search_lead.php b/LANG_www/vicidial_de/admin_search_lead.php index 0c63f574..9be35610 100644 --- a/LANG_www/vicidial_de/admin_search_lead.php +++ b/LANG_www/vicidial_de/admin_search_lead.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -18,6 +18,9 @@ # 90121-0500 - Added filter for phone to remove non-digits # 90309-1828 - Added admin_log logging # 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR # require("dbconnect.php"); @@ -43,21 +46,25 @@ if (isset($_GET["user"])) {$user=$_GET["user"];} elseif (isset($_POST["user"])) {$user=$_POST["user"];} if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} $STARTtime = date("U"); $TODAY = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner'; - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} @@ -66,25 +73,24 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - - if($auth>0) + if ($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; if ($WeBRooTWritablE > 0) { @@ -106,8 +112,8 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Leitung Suche -<? +<title>ADMINISTRATION: Leitung Suche +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -131,12 +137,8 @@ $subcamp_color = '#C6C6C6'; require("admin_header.php"); - - - echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; - if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) { echo date("l F j, Y G:i:s A"); @@ -144,7 +146,8 @@ if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and echo "<form method=post name=search action=\"$PHP_SELF\">\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<b>Tragen Sie bitte a ein:<br> Vendor ID(Verkäuferleitung Code): <input type=text name=vendor_id size=10 maxlength=10> or \n"; - echo "<br><b>eine Haupttelefonnummer: <input type=text name=phone size=20 maxlength=16> or\n"; + echo "<br><b>eine Haupttelefonnummer: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; echo "<br><b>eine Leitung Identifikation: <input type=text name=lead_id size=10 maxlength=10> or\n"; echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; @@ -160,19 +163,26 @@ else if ($vendor_id) { - $stmt="SELECT * from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; } else { if ($phone) { - $stmt="SELECT * from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' order by modify_date desc limit 1000"; + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } } else { if ($lead_id) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; } else { @@ -195,7 +205,7 @@ else if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; } - $stmt="SELECT * from vicidial_list where $statusSQL $list_idSQL $userSQL order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; } else { @@ -205,14 +215,38 @@ else } } } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + if ($DB) { echo "\n\n$stmt\n\n"; } - - $rslt=mysql_query($stmt, $link); + + $rslt=mysql_query("$stmt", $link); $results_to_print = mysql_num_rows($rslt); - if ($results_to_print < 1) + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) { echo date("l F j, Y G:i:s A"); echo "\n<br><br><center>\n"; @@ -270,7 +304,7 @@ else $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); } diff --git a/LANG_www/vicidial_de/audio_store.php b/LANG_www/vicidial_de/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/LANG_www/vicidial_de/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_campaigns='1'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/LANG_www/vicidial_de/call_report_export.php b/LANG_www/vicidial_de/call_report_export.php index 7a8e7ec8..77a49b05 100644 --- a/LANG_www/vicidial_de/call_report_export.php +++ b/LANG_www/vicidial_de/call_report_export.php @@ -1,4 +1,4 @@ -<? +<?php # call_report_export.php # # displays options to select for downloading of leads and their vicidial_log @@ -10,6 +10,10 @@ # CHANGES # # 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name # require("dbconnect.php"); @@ -48,12 +52,10 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -72,7 +74,7 @@ $auth=$row[0]; { # Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); # Header("HTTP/1.0 401 Unauthorized"); - echo "Unzulässiges Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; + echo "Invalid Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; exit; } @@ -206,14 +208,14 @@ if ($run_export > 0) echo "<BR>\n"; echo "$status_ct|$status_string|$status_SQL\n"; echo "<BR>\n"; - exit; } - + $outbound_calls=0; + $export_rows=''; + $k=0; if ($RUNcampaign > 0) { - $export_campaign_rows=''; - $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $outbound_to_print = mysql_num_rows($rslt); @@ -229,20 +231,23 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_campaign_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; + $outbound_calls++; } } } if ($RUNgroup > 0) { - $export_group_rows=''; - $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmtA, $link); if ($DB) {echo "$stmt\n";} $inbound_to_print = mysql_num_rows($rslt); - if ($inbound_to_print < 1) + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) { echo "There are no inbound calls during this time period for these parameters\n"; exit; @@ -254,8 +259,11 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_group_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; } } } @@ -267,7 +275,7 @@ if ($run_export > 0) $SQL_log = "$stmt|$stmtA|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT ERSUCHT BERICHT', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); @@ -284,7 +292,48 @@ if ($run_export > 0) ob_clean(); flush(); - echo "$export_campaign_rows$export_group_rows"; + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } } else { @@ -397,7 +446,7 @@ else echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; - echo "<TITLE>VICIDIAL: Export fordert Bericht"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -422,19 +471,19 @@ else echo "<CENTER><BR>\n"; - echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export fordert Bericht</B></FONT><BR><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; - echo "<TABLE Border=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Zeitraum:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; echo "<BR>to<BR>\n"; echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; - echo "<font class=\"select_bold\"><B>Kampagnen:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; $o=0; while ($campaigns_to_print > $o) @@ -448,7 +497,7 @@ else echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Inbound Gruppen:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; $o=0; while ($groups_to_print > $o) @@ -461,7 +510,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Listen:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; $o=0; while ($lists_to_print > $o) @@ -474,7 +523,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Status:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; $o=0; while ($statuses_to_print > $o) @@ -487,7 +536,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Benutzer-Gruppen:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; $o=0; while ($user_groups_to_print > $o) @@ -503,7 +552,7 @@ else echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; - echo "<INPUT TYPE=Submit NAME=SUBMIT VALUE=SUBMIT>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "</TD></TR></TABLE>\n"; echo "</FORM>\n\n"; diff --git a/LANG_www/vicidial_de/dbconnect.php b/LANG_www/vicidial_de/dbconnect.php index dae8cc7a..dca45485 100644 --- a/LANG_www/vicidial_de/dbconnect.php +++ b/LANG_www/vicidial_de/dbconnect.php @@ -1,10 +1,10 @@ -<? +<?php # -# dbconnect.php version 2.0.5 +# dbconnect.php version 2.2.0 # # database connection settings and some global web settings # -# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { @@ -16,6 +16,8 @@ foreach ($DBCagc as $DBCline) {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} if (ereg("^PATHweb", $DBCline)) {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} if (ereg("^VARDB_server", $DBCline)) {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} if (ereg("^VARDB_database", $DBCline)) diff --git a/LANG_www/vicidial_de/fcstats.php b/LANG_www/vicidial_de/fcstats.php index a18c4b1d..601b8e6c 100644 --- a/LANG_www/vicidial_de/fcstats.php +++ b/LANG_www/vicidial_de/fcstats.php @@ -1,4 +1,4 @@ -<? +<?php # fcstats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # 71228-1140 - added percentages, cross-day start/stop # 80328-1139 - adapted for basic fronter/closer stats # 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -80,9 +81,9 @@ while ($i < $groups_to_print) --> </STYLE> -<? +<?php echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; -echo "<TITLE>VICIDIAL: In-Group Fronter-Closer Stats\n"; +echo "In-Group Fronter-Closer Stats Report\n"; $short_header=1; @@ -147,7 +148,7 @@ if ($shift == 'ALL') $query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0])); } -echo "VICIDIAL: In-Group Fronter-Closer Stats $NOW_TIME\n"; +echo "In-Group Fronter-Closer Stats Report $NOW_TIME\n"; echo "\n"; echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n"; diff --git a/LANG_www/vicidial_de/functions.php b/LANG_www/vicidial_de/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/LANG_www/vicidial_de/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/LANG_www/vicidial_de/group_hourly_stats.php b/LANG_www/vicidial_de/group_hourly_stats.php index eb36b136..c4ead42c 100644 --- a/LANG_www/vicidial_de/group_hourly_stats.php +++ b/LANG_www/vicidial_de/group_hourly_stats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 60620-1014 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -26,14 +27,34 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { @@ -106,8 +127,8 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Gruppe Stündlicher Notfall -<? +<title>ADMINISTRATION: Gruppe Stündlicher Notfall +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -133,12 +154,12 @@ require("admin_header.php"); <CENTER> -<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Gruppe Stündlicher Notfall <? echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Gruppe Stündlicher Notfall <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> -<? +<?php if ( ($group) and ($status) and ($date_with_hour) ) { @@ -223,7 +244,7 @@ echo "<br><br>\n"; echo "<input type=hidden name=DB value=$DB>\n"; echo "group: <select size=1 name=group>\n"; - $stmt="SELECT * from vicidial_user_groups order by user_group"; + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; $rslt=mysql_query($stmt, $link); $groups_to_print = mysql_num_rows($rslt); $o=0; @@ -260,7 +281,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_de/list_download.php b/LANG_www/vicidial_de/list_download.php index 76d23aa3..bf5b1e58 100644 --- a/LANG_www/vicidial_de/list_download.php +++ b/LANG_www/vicidial_de/list_download.php @@ -1,4 +1,4 @@ -<? +<?php # list_download.php # # downloads the entire contents of a vicidial list ID to a flat text file @@ -9,6 +9,8 @@ # CHANGES # # 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields # require("dbconnect.php"); @@ -111,7 +113,7 @@ header('Pragma: public'); ob_clean(); flush(); -$stmt="select * from vicidial_list where list_id='$list_id';"; +$stmt="select lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $leads_to_print = mysql_num_rows($rslt); @@ -120,7 +122,7 @@ while ($i < $leads_to_print) { $row=mysql_fetch_row($rslt); - echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\r\n"; + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; $i++; } diff --git a/LANG_www/vicidial_de/listloader.pl b/LANG_www/vicidial_de/listloader.pl index b8f9e064..052d93e0 100644 --- a/LANG_www/vicidial_de/listloader.pl +++ b/LANG_www/vicidial_de/listloader.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader.pl version 2.0.5 +# listloader.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -19,65 +19,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][22]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } if (length($forcelistid) > 0) { @@ -369,10 +380,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -380,7 +438,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -406,7 +464,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -426,7 +484,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -446,7 +504,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -466,7 +524,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -565,14 +623,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -591,7 +649,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_de/listloaderMAIN.php b/LANG_www/vicidial_de/listloaderMAIN.php index 7564fd05..a7126dcc 100644 --- a/LANG_www/vicidial_de/listloaderMAIN.php +++ b/LANG_www/vicidial_de/listloaderMAIN.php @@ -1,7 +1,7 @@ -<? +<?php # listloaderMAIN.php # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # this is the main frame page for the lead loading section. This is where you # would upload a file and have it inserted into vicidial_list @@ -9,6 +9,7 @@ # changes: # 60620-1149 - Added variable filtering to eliminate SQL injection attack threat # 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); diff --git a/LANG_www/vicidial_de/listloader_rowdisplay.pl b/LANG_www/vicidial_de/listloader_rowdisplay.pl index bbfc8170..9caaeab2 100644 --- a/LANG_www/vicidial_de/listloader_rowdisplay.pl +++ b/LANG_www/vicidial_de/listloader_rowdisplay.pl @@ -1,14 +1,15 @@ #!/usr/bin/perl # -# listloader_rowdisplay.pl version 2.0.5 +# listloader_rowdisplay.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES # # 60811-1232 - Changed to DBI # 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields # ### begin parsing run-time options ### @@ -116,7 +117,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { @xls_row=split(/\|/, $var_str); -$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1;"; +$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; diff --git a/LANG_www/vicidial_de/listloader_super.pl b/LANG_www/vicidial_de/listloader_super.pl index 3af97f37..9b09bba7 100644 --- a/LANG_www/vicidial_de/listloader_super.pl +++ b/LANG_www/vicidial_de/listloader_super.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader_super.pl version 2.0.5 +# listloader_super.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -18,65 +18,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### use Spreadsheet::ParseExcel; @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } @@ -371,10 +382,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -382,7 +440,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -408,7 +466,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -428,7 +486,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -448,7 +506,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -468,7 +526,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -567,14 +625,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -593,7 +651,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_de/new_listloader_superL.php b/LANG_www/vicidial_de/new_listloader_superL.php index 033617e4..d1290697 100644 --- a/LANG_www/vicidial_de/new_listloader_superL.php +++ b/LANG_www/vicidial_de/new_listloader_superL.php @@ -1,4 +1,4 @@ -<? +<?php # new_listloader_superL.php # # Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 @@ -25,11 +25,15 @@ # 81011-2009 - a few bug fixes # 90309-1831 - Added admin_log logging # 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. -$version = '2.0.5-29'; -$build = '90310-2128'; +$version = '2.2.0-33'; +$build = '91112-0616'; require("dbconnect.php"); @@ -39,50 +43,52 @@ require("dbconnect.php"); #mysql_select_db("asterisk"); #$WeBServeRRooT = '/home/www/htdocs'; +$US='_'; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $leadfile=$_FILES["leadfile"]; $LF_orig = $_FILES['leadfile']['name']; $LF_path = $_FILES['leadfile']['tmp_name']; -if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} - elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} - elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} - elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} -if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} - elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} - elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} -if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} - elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} -if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} - elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} - elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} -if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} - elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} -if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} - elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} -if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} - elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} - elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} - elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} - elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} -if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} @@ -91,21 +97,25 @@ if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"]; if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} - elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} -if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} - elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} -if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} - elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} -if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} - elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} - elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} -if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} - elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} $list_id_override = (preg_replace("/\D/","",$list_id_override)); if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} @@ -137,11 +147,16 @@ while ($i < $qm_conf_ct) ########################################### if ($non_latin < 1) -{ -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$list_id_override = ereg_replace("[^0-9]","",$list_id_override); -} + { + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + $list_id_override = ereg_replace("[^0-9]","",$list_id_override); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } $STARTtime = date("U"); $TODAY = date("Y-m-d"); @@ -317,11 +332,11 @@ function ParseFileName() { } } </script> -<title>VICIDIAL ADMIN: Lead Loader +ADMINISTRATION: Lead Loader -
"; ?> - method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> - - + method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + - + - + - + - + @@ -357,6 +372,8 @@ echo "
Last Leitungen von dieser Akte:
Liste Identifikation Override: (nur Zahlen or leave blank for values in the file) (nur Zahlen or leave blank for values in the file)
Telefon-Nr Override: (nur Zahlen or leave blank for values in the file) (nur Zahlen or leave blank for values in the file)
Zu verwenden Dateiaufbau:Standard-VICIDIAL    Kundenspezifischer PlanStandard Format    Kundenspezifischer Plan
Leitung Duplikat-Überprüfung:
@@ -366,11 +383,11 @@ echo "
"; + +
- +
";
        
        ZURÜCK ZU ADMINLIST LOADER-     VERSION:     BAU:    
        ZURÜCK ZU ADMINLIST LOADER-     VERSION:     BAU:    
- + -document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; @@ -446,6 +463,8 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; if (strlen($list_id_override)>0) { @@ -542,18 +561,61 @@ echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -561,7 +623,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -579,7 +641,7 @@ echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -603,13 +665,15 @@ echo "
"; { print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

\n"; } - # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; $dupcheckCLI=''; $postalgmtCLI=''; if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} - passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } else { # copy($leadfile, "./vicidial_temp_file.csv"); $file=fopen("$lead_file", "r"); @@ -662,6 +726,10 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} if (strlen($list_id_override)>0) { @@ -756,19 +824,62 @@ echo "\n"; echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -776,7 +887,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -793,7 +904,7 @@ echo "\r\n"; print " \r\n"; - $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1", $link); + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1", $link); if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) @@ -1349,6 +1551,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } @@ -1425,7 +1629,7 @@ if ($leadfile) { -4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1461,7 +1665,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1476,7 +1680,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1491,7 +1695,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1507,7 +1711,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) diff --git a/LANG_www/vicidial_de/non_agent_api.php b/LANG_www/vicidial_de/non_agent_api.php index 2d525f39..b64ab4c0 100644 --- a/LANG_www/vicidial_de/non_agent_api.php +++ b/LANG_www/vicidial_de/non_agent_api.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -19,10 +19,21 @@ # 80909-2012 - Added support for campaign-specific DNC lists # 80910-0020 - Added support for multi-alt-phones, added version function # 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function # -$version = '2.0.5-5'; -$build = '90118-1056'; +$version = '2.2.0-16'; +$build = '91216-0331'; require("dbconnect.php"); @@ -99,7 +110,24 @@ if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phon elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} if (isset($_GET["source"])) {$source=$_GET["source"];} elseif (isset($_POST["source"])) {$source=$_POST["source"];} - +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -109,20 +137,18 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) { + $DB=ereg_replace("[^0-9]","",$DB); $user=ereg_replace("[^0-9a-zA-Z]","",$user); $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); @@ -174,6 +200,19 @@ if ($non_latin < 1) $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); } if (strlen($list_id)<1) {$list_id='999';} @@ -181,6 +220,7 @@ if (strlen($phone_code)<1) {$phone_code='1';} $USarea = substr($phone_number, 0, 3); if (strlen($hopper_priority)<1) {$hopper_priority=0;} if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} $StarTtime = date("U"); $NOW_DATE = date("Y-m-d"); @@ -249,6 +289,847 @@ if ($function == 'version') api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); exit; } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -892,6 +1003,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -986,19 +1099,62 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} - $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1006,7 +1162,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1024,7 +1180,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1054,6 +1210,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); @@ -1118,6 +1276,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -1212,19 +1372,61 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1232,7 +1434,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1249,7 +1451,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1269,7 +1471,7 @@ if ($leadfile) { print " Akte Daten
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + @@ -269,8 +1150,7 @@ if ($function == 'add_lead') } else { - $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $modify_leads=$row[0]; @@ -297,10 +1177,19 @@ if ($function == 'add_lead') } else { - if ($dnc_check == 'Y') + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -315,10 +1204,18 @@ if ($function == 'add_lead') exit; } } - if ($campaign_dnc_check == 'Y') + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -333,14 +1230,196 @@ if ($function == 'add_lead') exit; } } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + ### get current gmt_offset of the phone_number $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); ### insert a new lead in the system with this phone number - $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; - if ($DB) {echo "$stmt\n";} + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $affected_rows = mysql_affected_rows($link); if ($affected_rows > 0) @@ -358,7 +1437,7 @@ if ($function == 'add_lead') $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; $map = explode('!', $multi_alt_phones); $map_count = count($map); - if ($DB) {echo "multi-al-entry: $a|$map_count|$multi_alt_phones\n";} + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} $g++; $r=0; $s=0; $inserted_alt_phones=0; while ($r < $map_count) @@ -377,7 +1456,7 @@ if ($function == 'add_lead') $ALTm_phone_number[$r] = $ncn[0]; $ALTm_phone_note[$r] = $ncn[2]; $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Zaffected_rows = mysql_affected_rows($link); $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); @@ -395,7 +1474,6 @@ if ($function == 'add_lead') $dialable=1; $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; - if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $local_call_time=$row[0]; @@ -420,7 +1498,7 @@ if ($function == 'add_lead') ### insert record into vicidial_hopper for alt_phone call attempt $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Haffected_rows = mysql_affected_rows($link); if ($Haffected_rows > 0) @@ -457,6 +1535,9 @@ if ($function == 'add_lead') exit; } } +################################################################################ +### END add_lead +################################################################################ @@ -474,13 +1555,13 @@ api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$resul if ($format=='debug') -{ -$ENDtime = date("U"); -$RUNtime = ($ENDtime - $StarTtime); -echo "\n"; -echo "\n\n\n"; -} - + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + exit; @@ -502,7 +1583,7 @@ if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -523,7 +1604,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -538,7 +1619,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -553,7 +1634,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -569,7 +1650,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1118,134 +2199,134 @@ return $gmt_offset; ##### DETERMINE IF LEAD IS DIALABLE ##### function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) -{ -$dialable=0; + { + $dialable=0; -$pzone=3600 * $gmt_offset; -$pmin=(gmdate("i", time() + $pzone)); -$phour=( (gmdate("G", time() + $pzone)) * 100); -$pday=gmdate("w", time() + $pzone); -$tz = sprintf("%.2f", $p); -$GMT_gmt = "$tz"; -$GMT_day = "$pday"; -$GMT_hour = ($phour + $pmin); + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); -$stmt="SELECT * FROM vicidial_call_times where call_time_id='$local_call_time';"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); -$rowx=mysql_fetch_row($rslt); -$Gct_default_start = "$rowx[3]"; -$Gct_default_stop = "$rowx[4]"; -$Gct_sunday_start = "$rowx[5]"; -$Gct_sunday_stop = "$rowx[6]"; -$Gct_monday_start = "$rowx[7]"; -$Gct_monday_stop = "$rowx[8]"; -$Gct_tuesday_start = "$rowx[9]"; -$Gct_tuesday_stop = "$rowx[10]"; -$Gct_wednesday_start = "$rowx[11]"; -$Gct_wednesday_stop = "$rowx[12]"; -$Gct_thursday_start = "$rowx[13]"; -$Gct_thursday_stop = "$rowx[14]"; -$Gct_friday_start = "$rowx[15]"; -$Gct_friday_stop = "$rowx[16]"; -$Gct_saturday_start = "$rowx[17]"; -$Gct_saturday_stop = "$rowx[18]"; -$Gct_state_call_times = "$rowx[19]"; + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; -if ($GMT_day==0) #### Sunday local time - { - if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + if ($GMT_day==0) #### Sunday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==1) #### Monday local time { - if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) - {$dialable=1;} + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==1) #### Monday local time - { - if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + if ($GMT_day==2) #### Tuesday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==3) #### Wednesday local time { - if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) - {$dialable=1;} + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==2) #### Tuesday local time - { - if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + if ($GMT_day==4) #### Thursday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==5) #### Friday local time { - if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) - {$dialable=1;} + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==3) #### Wednesday local time - { - if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + if ($GMT_day==6) #### Saturday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } } - else - { - if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==4) #### Thursday local time - { - if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==5) #### Friday local time - { - if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==6) #### Saturday local time - { - if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) - {$dialable=1;} - } - } -return $dialable; -} + return $dialable; + } /* $ct_states = ''; @@ -1261,7 +2342,7 @@ return $dialable; { if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) { - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $Gstate_call_time_id = "$row[0]"; @@ -1405,15 +2486,15 @@ return $dialable; ##### Logging ##### function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) -{ -if ($api_logging > 0) { - $NOW_TIME = date("Y-m-d H:i:s"); -# api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); - $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; - $rslt=mysql_query($stmt, $link); + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; } -return 1; -} ?> diff --git a/LANG_www/vicidial_de/remote_dispo.php b/LANG_www/vicidial_de/remote_dispo.php index 49637071..dc991f1f 100644 --- a/LANG_www/vicidial_de/remote_dispo.php +++ b/LANG_www/vicidial_de/remote_dispo.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # this is the remote agent disposition screen for calls sent to remote agents. # This allows the remote agent to modify customer information and disposition @@ -10,6 +10,7 @@ # CHANGES # # 60619-1626 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags # @@ -160,14 +161,14 @@ $browser = getenv("HTTP_USER_AGENT"); VICIDIAL DIREKTÜBERTRAGUNG: Anruf-Einteilung -\n"; ?>
-"; @@ -202,7 +203,7 @@ else if ($lead_count > 0) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); @@ -265,7 +266,7 @@ else echo "
+
Timeclock Datensatz bearbeiten for  
-
Timeclock Datensatz bearbeiten for  
  \n"; @@ -436,7 +439,7 @@ if ($modify_timeclock_log > 0) } -echo "VICIDIAL Time Sheet\n"; +echo "Agent Time Sheet\n"; echo " - User-Statistiken\n"; echo " - Ändern Sie Benutzer\n"; @@ -468,7 +471,7 @@ echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; - LICENSE: AGPLv2 @@ -9,6 +9,7 @@ # 80617-1416 - Fixed totals tally bug # 80707-0754 - Fixed groups bug, changed formatting # 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -41,7 +42,7 @@ if (strlen($order)<2) {$order='hours_down';} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -49,8 +50,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -134,9 +136,9 @@ while ($i < $user_groups_to_print) -VICIDIAL: UserTimeclock Report +<TITLE>UserTimeclock Report -<? +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -240,7 +242,7 @@ echo "</FORM>\n\n"; echo "<PRE><FONT SIZE=3>\n"; -echo "VICIDIAL: UserTimeclock Report $NOW_TIME\n"; +echo "UserTimeclock Report $NOW_TIME\n"; echo "Time range: $query_date to $end_date\n\n"; echo "---------- USER TIMECLOCK DETAILS -------------\n"; diff --git a/LANG_www/vicidial_de/timeclock_status.php b/LANG_www/vicidial_de/timeclock_status.php index 4d0dea26..c0006b07 100644 --- a/LANG_www/vicidial_de/timeclock_status.php +++ b/LANG_www/vicidial_de/timeclock_status.php @@ -1,4 +1,4 @@ -<? +<?php # timeclock_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 80602-0201 - First Build # 80603-1500 - formatting changes # 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -35,7 +36,7 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -43,9 +44,11 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $timeclock_end_of_day = $row[2]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $i++; } ##### END SETTINGS LOOKUP ##### @@ -141,8 +144,8 @@ if (strlen($user_group) > 0) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN:Timeclock Status -<? +<title>ADMINISTRATION:Timeclock Status +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -169,8 +172,8 @@ require("admin_header.php"); ?> <CENTER> <TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> -<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Timeclock Status for <? echo $user_group ?></TD><TD ALIGN=RIGHT>             -<? +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Timeclock Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>User Group</a>\n"; ?> @@ -179,7 +182,7 @@ echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARI -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -352,6 +355,7 @@ while ($users_to_print > $o) {$bgcolor[$o]='bgcolor="#66CC66"';} # green } + $s++; echo "<tr $bgcolor[$o]>"; echo "<td><font size=1>$s</td>"; echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; @@ -365,8 +369,6 @@ while ($users_to_print > $o) if (strlen($Tstatus[$o])>0) {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} - - $s++; } $o++; } @@ -410,7 +412,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; @@ -534,7 +536,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_de/user_group_bulk_change.php b/LANG_www/vicidial_de/user_group_bulk_change.php index d2883d5e..dff38a53 100644 --- a/LANG_www/vicidial_de/user_group_bulk_change.php +++ b/LANG_www/vicidial_de/user_group_bulk_change.php @@ -1,4 +1,4 @@ -<? +<?php # user_group_bulk_change.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # 81119-0918 - First build # 90309-1830 - Added admin_log logging # 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -31,7 +32,7 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -39,8 +40,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -102,7 +104,7 @@ $browser = getenv("HTTP_USER_AGENT"); } } -$stmt="select * from vicidial_user_groups order by user_group desc;"; +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -121,8 +123,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: Benutzer-Gruppe Bulk ändern -<? +<title>ADMINISTRATION: Benutzer-Gruppe Bulk ändern +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -155,7 +157,7 @@ require("admin_header.php"); -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -259,7 +261,7 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_de/user_stats.php b/LANG_www/vicidial_de/user_stats.php index 36c536a8..1c2bae33 100644 --- a/LANG_www/vicidial_de/user_stats.php +++ b/LANG_www/vicidial_de/user_stats.php @@ -1,4 +1,4 @@ -<? +<?php # user_stats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -17,11 +17,31 @@ # 90208-0504 - Added link to multi-day report and fixed call status summary section # 90305-1226 - Added user_call_log manual dial logs # 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -50,32 +70,33 @@ $TODAY = date("Y-m-d"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { if($auth>0) { - $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname=$row[0]; + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); fclose($fp); @@ -92,7 +113,6 @@ $browser = getenv("HTTP_USER_AGENT"); $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $full_name = $row[0]; - } @@ -102,8 +122,8 @@ $browser = getenv("HTTP_USER_AGENT"); <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: User-Statistiken -<? +<title>ADMINISTRATION: User-Statistiken +<?php ##### BEGIN Set variables to make header show properly ##### @@ -129,12 +149,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User-Statistiken for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User-Statistiken for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -152,7 +172,7 @@ echo "<input type=submit name=submit value=submit>\n"; echo "           $user - $full_name<BR><BR>\n"; echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Time Sheet</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; echo " | <a href=\"./user_status.php?user=$user\">User Status</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Ändern Sie Benutzer</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; @@ -166,10 +186,10 @@ echo "<br><center>\n"; ##### vicidial agent talk time and status ##### -echo "<B>VICIDIAL GESPRÄCH ZEIT UND STATUS:</B>\n"; +echo "<B>MITTELGESPRÄCH ZEIT UND STATUS:</B>\n"; echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>STATUS</td><td align=right><font size=2>ZÄHLIMPULS</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; +echo "<tr><td><font size=2>STATUS</td><td align=right><font size=2>ZÄHLIMPULS</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by status order by status"; $rslt=mysql_query($stmt, $link); @@ -225,34 +245,20 @@ while ($o < $p) else {$bgcolor='bgcolor="#9BB9FB"';} - $call_seconds = $call_sec[$o]; - $call_hours = ($call_seconds / 3600); - $call_hours_int = round($call_hours, 2); - $call_hours_int = intval("$call_hours_int"); - $call_minutes = ($call_hours - $call_hours_int); - $call_minutes = ($call_minutes * 60); - $call_minutes_int = round($call_minutes, 0); - if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} + $call_hours_minutes = sec_convert($call_sec[$o],'H'); echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; echo "<td align=right><font size=2> $counts[$o]</td>\n"; - echo "<td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; $total_calls = ($total_calls + $counts[$o]); $total_sec = ($total_sec + $call_sec[$o]); $call_seconds=0; $o++; } -$call_seconds = $total_sec; -$call_hours = ($call_seconds / 3600); -$call_hours_int = round($call_hours, 2); -$call_hours_int = intval("$call_hours_int"); -$call_minutes = ($call_hours - $call_hours_int); -$call_minutes = ($call_minutes * 60); -$call_minutes_int = round($call_minutes, 0); -if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} +$call_hours_minutes = sec_convert($total_sec,'H'); -echo "<tr><td><font size=2>GESAMTANRUFE</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; +echo "<tr><td><font size=2>GESAMTANRUFE</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -262,9 +268,9 @@ echo "<br><br>\n"; echo "<center>\n"; -echo "<B>VICIDIAL MITTELLOGIN/LOGOUT ZEIT:</B>\n"; +echo "<B>MITTELLOGIN/LOGOUT ZEIT:</B>\n"; echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> KAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; +echo "<tr><td><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> KAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group from vicidial_user_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59'"; $rslt=mysql_query($stmt, $link); @@ -294,21 +300,17 @@ echo "<tr><td><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td { if ($event_start_seconds) { + $event_stop_seconds = $row[1]; $event_seconds = ($event_stop_seconds - $event_start_seconds); $total_login_time = ($total_login_time + $event_seconds); - $event_hours = ($event_seconds / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($event_seconds,'H'); + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $row[2]</td>\n"; echo "<td align=right><font size=2> $row[3]</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; $event_start_seconds=''; $event_stop_seconds=''; } @@ -327,19 +329,13 @@ echo "<tr><td><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td $o++; } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); echo "<tr><td><font size=2>GESAMTMENGE</td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int</td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -361,7 +357,7 @@ echo "<center>\n"; echo "<B>TIMECLOCK LOGIN/LOGOUT ZEIT:</B>\n"; echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; if ($DB>0) {echo "|$stmt|";} @@ -397,20 +393,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f { $login_sec = $row[3]; $total_login_time = ($total_login_time + $login_sec); - $event_hours = ($login_sec / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($login_sec,'H'); + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; echo "<td align=right><font size=2>$manager_edit</td>"; echo "<td align=right><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $TC_log_date</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int"; + echo "<td align=right><font size=2> $event_hours_minutes"; if ($DB) {echo " - $total_login_time - $login_sec";} echo "</td></tr>\n"; } @@ -422,26 +413,21 @@ if (strlen($login_sec)<1) $total_login_time = ($total_login_time + $login_sec); if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); - if ($DB) {echo " - $total_login_time - $login_sec";} +if ($DB) {echo " - $total_login_time - $login_sec";} echo "<tr><td align=right><font size=2> </td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; echo "</TABLE></center>\n"; + ##### closer in-group selection logs ##### echo "<br><br>\n"; @@ -450,29 +436,30 @@ echo "<center>\n"; echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> KAMPAGNE</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td></tr>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> KAMPAGNE</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; - $stmt="select * from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[2]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[3]</td>\n"; - echo "<td align=left><font size=2> $row[4] </td>\n"; - echo "</tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; } @@ -485,31 +472,31 @@ echo "<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> KAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[4]</td>"; - echo "<td align=left><font size=2> $row[7]</td>\n"; - echo "<td align=left><font size=2> $row[8]</td>\n"; - echo "<td align=left><font size=2> $row[10] </td>\n"; - echo "<td align=right><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[14] </td>\n"; - echo "<td align=right><font size=2> $row[2] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; - echo "<td align=right><font size=2> $row[15] </td></tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; } @@ -522,7 +509,7 @@ echo "<B>INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> KAMPAGNE</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -559,7 +546,7 @@ echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; - $stmt="select * from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -676,7 +663,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_de/user_status.php b/LANG_www/vicidial_de/user_status.php index 0e984192..825ca5a4 100644 --- a/LANG_www/vicidial_de/user_status.php +++ b/LANG_www/vicidial_de/user_status.php @@ -1,4 +1,4 @@ -<? +<?php # user_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -10,6 +10,10 @@ # 81118-1034 - Disabled change campaign because it does not work # 90208-0511 - Added link to user multi-day status report # 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process # header ("Content-type: text/html; charset=utf-8"); @@ -38,17 +42,17 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $i++; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -64,35 +68,34 @@ $ip = getenv("REMOTE_ADDR"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { - $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname = $row[0]; - $change_agent_campaign = $row[1]; - $modify_timeclock_log = $row[2]; + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; if ($webroot_writable > 0) { fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); @@ -116,7 +119,7 @@ $browser = getenv("HTTP_USER_AGENT"); $full_name = $row[0]; $user_group = $row[1]; - $stmt="SELECT * from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $agents_to_print = mysql_num_rows($rslt); @@ -124,13 +127,17 @@ $browser = getenv("HTTP_USER_AGENT"); while ($i < $agents_to_print) { $row=mysql_fetch_row($rslt); - $Aserver_ip = $row[2]; - $Asession_id = $row[3]; - $Aextension = $row[4]; - $Astatus = $row[5]; - $Acampaign = $row[7]; - $Alast_call = $row[14]; - $Acl_campaigns = $row[15]; + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; $i++; } @@ -149,7 +156,7 @@ $browser = getenv("HTTP_USER_AGENT"); } -$stmt="select * from vicidial_campaigns;"; +$stmt="select campaign_id from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -167,8 +174,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: User Status -<? +<title>ADMINISTRATION: User Status +<?php ##### BEGIN Set variables to make header show properly ##### @@ -194,12 +201,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=<? echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User Status for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User Status for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -217,10 +224,170 @@ if ($stage == "live_campaign_change") ##### EMERGENCY LOGOUT OF AN AGENT ##### if ($stage == "log_agent_out") { - $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; - echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } exit; } @@ -283,8 +450,8 @@ if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($mod $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - $status='START'; - $totTIME_HMS='0:00:00'; + $status='START'; + $totTIME_HMS='0:00:00'; $affected_rows = mysql_affected_rows($link); print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; } @@ -406,9 +573,14 @@ if ($agents_to_print > 0) echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} echo "</TABLE>\n<BR>\n"; - if ($change_agent_campaign > 0) { echo "<form action=$PHP_SELF method=POST>\n"; @@ -416,17 +588,16 @@ if ($agents_to_print > 0) echo "<input type=hidden name=user value=\"$user\">\n"; echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; echo "Current Kampagne: <SELECT SIZE=1 NAME=group>\n"; - $o=0; - while ($groups_to_print > $o) + $o=0; + while ($groups_to_print > $o) { - if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} - else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} - $o++; + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; } echo "</SELECT>\n"; echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; - echo "<form action=$PHP_SELF method=POST>\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<input type=hidden name=user value=\"$user\">\n"; @@ -437,7 +608,7 @@ if ($agents_to_print > 0) else { - echo "Agent is not logged in to VICIDIAL\n<BR>"; + echo "Agent is not logged in\n<BR>"; } echo "\n<BR>"; @@ -469,7 +640,7 @@ if ($modify_timeclock_log > 0) $REPORTdate = date("Y-m-d"); echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Time Sheet</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; echo " | <a href=\"./user_stats.php?user=$user\">User-Statistiken</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Ändern Sie Benutzer</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; @@ -497,11 +668,10 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; ?> - diff --git a/LANG_www/vicidial_de/user_territories.php b/LANG_www/vicidial_de/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/LANG_www/vicidial_de/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/LANG_www/vicidial_de/vdremote.php b/LANG_www/vicidial_de/vdremote.php index 011b3c44..59311a64 100644 --- a/LANG_www/vicidial_de/vdremote.php +++ b/LANG_www/vicidial_de/vdremote.php @@ -1,20 +1,22 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # Changes # 50307-1721 - First version # 51123-1502 - removed requirement of PHP Globals=on # 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1603 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes # -$version = '1.1.12'; -$build = '60619-1603'; +$version = '2.2.0'; +$build = '91129-2249'; require("dbconnect.php"); @@ -55,15 +57,15 @@ if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} if (!isset($force_logout)) {$force_logout = 0;} if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Sie haben jetzt heraus geloggt. Danke\n"; exit; -} + } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -75,25 +77,25 @@ $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); if (!isset($query_date)) {$query_date = $NOW_DATE;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { header ("Content-type: text/html; charset=utf-8"); @@ -159,8 +161,8 @@ echo "\n"; .orange {color: black; background-color: orange} --> -VICIDIAL DIREKTÜBERTRAGUNG MITTEL: $LOGfullname - $PHP_AUTH_USER "; +REMOTEMITTEL: $LOGfullname - $PHP_AUTH_USER "; if (!$ADD) {$ADD="31111";} if ($ADD==31111) {echo "Ändern Sie Remotemittel";} @@ -201,14 +203,14 @@ if (strlen($ADD)>4) ##### get inbound groups listing for checkboxes if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; $rslt=mysql_query($stmt, $link); @@ -244,12 +246,12 @@ if (strlen($ADD)>4)
- - +
  VICIDIAL DIREKTÜBERTRAGUNG MITTEL:   Logout  
  ÄNDERN Sie | ">STATUS | ">INBOUND NOTFALL
+
  REMOTEMITTEL:   Logout  
  ÄNDERN Sie | ">STATUS | ">INBOUND NOTFALL
-4) ###################### if ($ADD==31111) -{ + { echo ""; - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -272,25 +274,23 @@ if ($ADD==31111) $status = $row[5]; $campaign_id = $row[6]; -echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]
\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Benutzernummer Anfang: $user_start
Zeilenzahl: (nur Zahlen)
Bediener IP: $row[3]
Externe Verlängerung: (number dialed to reach agents [i.e. 913125551212])
Status:
Kampagne: $campaign_id
Inbound Gruppen: \n"; -echo "$groups_list"; -echo "
\n"; -echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; - -} - + echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Benutzernummer Anfang: $user_start
Zeilenzahl: (nur Zahlen)
Bediener IP: $row[3]
Externe Verlängerung: (number dialed to reach agents [i.e. 913125551212])
Status:
Kampagne: $campaign_id
Inbound Gruppen: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; + } @@ -299,12 +299,12 @@ echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf di ###################### if ($ADD==41111) -{ + { echo ""; - if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) {echo "
REMOTEMITTEL NICHT GEÄNDERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n";} - else + else { $stmt="UPDATE vicidial_remote_agents set number_of_lines='" . mysql_real_escape_string($number_of_lines) . "', conf_exten='" . mysql_real_escape_string($conf_exten) . "', status='" . mysql_real_escape_string($status) . "', closer_campaigns='" . mysql_real_escape_string($groups_value) . "' where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); @@ -316,10 +316,9 @@ if ($ADD==41111) $fp = fopen ("./admin_changes_log.txt", "a"); fwrite ($fp, "$date|MODIFY REMOTEMITTEL ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); fclose($fp); - } - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -330,25 +329,23 @@ if ($ADD==41111) $status = $row[5]; $campaign_id = $row[6]; -echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Benutzernummer Anfang: $user_start
Zeilenzahl: (nur Zahlen)
Bediener IP: $row[3]
Externe Verlängerung: (number dialed to reach agents [i.e. 913125551212])
Status:
Kampagne: $campaign_id
Inbound Gruppen: \n"; -echo "$groups_list"; -echo "
\n"; -echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; - -} - + echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Benutzernummer Anfang: $user_start
Zeilenzahl: (nur Zahlen)
Bediener IP: $row[3]
Externe Verlängerung: (number dialed to reach agents [i.e. 913125551212])
Status:
Kampagne: $campaign_id
Inbound Gruppen: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; + } @@ -357,14 +354,13 @@ echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf di ###################### if ($ADD==61111) -{ + { echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
REMOTEMITTEL-STÖRUNG - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -375,7 +371,7 @@ if ($ADD==61111) } $users_list = preg_replace("/.$/","",$users_list); - echo "VICIDIAL: Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; @@ -385,14 +381,14 @@ if ($ADD==61111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) { $leadlink=0; $row=mysql_fetch_row($rslt); - if (eregi("READY|PAUSED",$row[4])) + if (eregi("READY|PAUSED",$row[4])) { $row[3]=''; $row[5]='- WARTEND -'; @@ -409,7 +405,7 @@ if ($ADD==61111) $leadid = "$leadid"; } $channel = sprintf("%-10s", $row[3]); - $cc=0; + $cc=0; while ( (strlen($channel) > 10) and ($cc < 100) ) { $channel = eregi_replace(".$","",$channel); @@ -438,14 +434,13 @@ if ($ADD==61111) $i++; } - echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; - echo " $i Mittel geloggt innen auf Bediener $server_ip\n\n"; - - echo " - 5 Minuten oder mehr beim Anruf\n"; - echo " - Über 10 Minuten beim Anruf\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i Mittel geloggt innen auf Bediener $server_ip\n\n"; + echo " - 5 Minuten oder mehr beim Anruf\n"; + echo " - Über 10 Minuten beim Anruf\n"; } - else + else { echo "**************************************************************************************\n"; echo "*********************************KEINE MITTEL BEI DEN ANRUFEN*********************************\n"; @@ -453,9 +448,8 @@ if ($ADD==61111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } ###################### @@ -463,7 +457,7 @@ echo "\n\n"; ###################### if ($ADD==71111) -{ + { echo "\n"; echo "\n"; echo "\n"; @@ -472,11 +466,10 @@ if ($ADD==71111) echo "\n\n"; echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
REMOTEMITTEL-STÖRUNG - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -492,17 +485,17 @@ if ($ADD==71111) $row=mysql_fetch_row($rslt); $in_calls = $row[0]; $in_time = $row[1]; - $in_time_M = ($in_time / 60); - $in_time_M = round($in_time_M, 2); - $in_time_M_int = intval("$in_time_M"); - $in_time_SEC = ($in_time_M - $in_time_M_int); - $in_time_SEC = ($in_time_SEC * 60); - $in_time_SEC = round($in_time_SEC, 0); - if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} - $in_time_MS = "$in_time_M_int:$in_time_SEC"; - $in_time_MS = sprintf("%7s", $in_time_MS); + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); - echo "VICIDIAL: Inbound Notfall des Remotemittels $NOW_TIME\n\n"; + echo "Inbound Notfall des Remotemittels $NOW_TIME\n\n"; echo "\n"; echo "Gesamtanrufe genommen$query_date: $in_calls\n"; echo "Gesamtgespräch Zeit an$query_date: $in_time_MS (minutes:seconds)\n"; @@ -518,7 +511,7 @@ if ($ADD==71111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) @@ -550,14 +543,13 @@ if ($ADD==71111) $i++; } - echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; - # echo " $i Mittel geloggt innen auf Bediener $server_ip\n\n"; - - # echo " - 5 Minuten oder mehr beim Anruf\n"; - # echo " - Über 10 Minuten beim Anruf\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; } - else + else { echo "**************************************************************************************\n"; echo "*********************************KEIN ERSUCHT UM DIESEN TAG*******************************\n"; @@ -565,9 +557,8 @@ if ($ADD==71111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } @@ -590,7 +581,7 @@ echo "\n\n\n


\nIndexlaufzeit: $RUNtime seconds
"; - - - - - diff --git a/LANG_www/vicidial_de/vicidial_sales_viewer.php b/LANG_www/vicidial_de/vicidial_sales_viewer.php index 5f065511..5d2af00f 100644 --- a/LANG_www/vicidial_de/vicidial_sales_viewer.php +++ b/LANG_www/vicidial_de/vicidial_sales_viewer.php @@ -1,4 +1,4 @@ - 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { +# Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); +# Header("HTTP/1.0 401 Unauthorized"); + echo "Unzulässiges Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + ?> -VICIDIAL recent sales lookup +Recent Sales Lookup - @@ -54,7 +76,7 @@ function GatherListIDs() { -
"; ?> -
+ @@ -72,9 +94,9 @@ echo "
";
- + - -
Select a VICIDIAL campaign:Select a campaign:
"; } ?> -
"; ?>
Select list ID(s) # (optional):
"; ?>
@@ -140,7 +162,7 @@ echo "
";
** - sorted by call date
- LICENSE: AGPLv2 @@ -6,7 +6,7 @@ # This page does a search against a standard vtiger CRM system. If the record # is not present, it will create a new one and send the agent's screen to that new page. # -# This code is tested against vtiger 5.0.4 +# This code is tested against vtiger 5.0.4 and 5.1.0 # # CHANGES # 60719-1615 - First version @@ -18,6 +18,8 @@ # 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD # 90111-1451 - Added logging of call as activity for account/lead # 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option # header ("Content-type: text/html; charset=utf-8"); @@ -152,7 +154,7 @@ if ($enable_vtiger_integration < 1) exit; } -$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record FROM vicidial_campaigns where campaign_id='$campaign';"; +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $vtc_conf_ct = mysql_num_rows($rslt); @@ -162,6 +164,7 @@ if ($vtc_conf_ct > 0) $vtiger_search_category = $row[0]; $vtiger_create_call_record = $row[1]; $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; } if (strlen($vtiger_search_category)<1) {$vtiger_search_category = 'LEAD';} @@ -188,15 +191,38 @@ mysql_select_db("$vtiger_dbname", $linkV); # LEAD: # $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; -$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; -if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} -if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} -if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} -if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + ########################################################################## @@ -219,78 +245,102 @@ if ($acctid_search > 0) } else { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "account found! ACCTID\n";
-		echo "accountid:   $vendor_id\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -380,79 +430,102 @@ if ($account_search > 0) } if (strlen($accountid) > 0) { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger - echo "
";
-		echo "account found! ACCOUNT\n";
-		echo "accountid:   $accountid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -675,80 +748,104 @@ if ($lead_search > 0) $row=mysql_fetch_row($rslt); $leadid = $row[0]; - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "lead found! LEAD\n";
-		echo "leadid:   $leadid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -774,7 +871,7 @@ echo "Click here to go to the Vtiger home page\n"; - LICENSE: AGPLv2 # -echo "VICIDIAL Willkommen\n"; +echo "ViciDial Willkommen\n"; echo "\n"; echo "\n"; echo "




"; diff --git a/LANG_www/vicidial_de/welcome_demo.php b/LANG_www/vicidial_de/welcome_demo.php index 65997b08..238cf5cf 100644 --- a/LANG_www/vicidial_de/welcome_demo.php +++ b/LANG_www/vicidial_de/welcome_demo.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_de/welcome_languages.php b/LANG_www/vicidial_de/welcome_languages.php index 1218c652..d53707a9 100644 --- a/LANG_www/vicidial_de/welcome_languages.php +++ b/LANG_www/vicidial_de/welcome_languages.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_el/AST_CLOSER_service_level.php b/LANG_www/vicidial_el/AST_CLOSER_service_level.php index e79f8ec8..3a0ca089 100644 --- a/LANG_www/vicidial_el/AST_CLOSER_service_level.php +++ b/LANG_www/vicidial_el/AST_CLOSER_service_level.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -10,6 +10,8 @@ # 80519-0413 - rewrote time intervals code and stats gathering code # 80528-2320 - fixed small calculation bugs and display bugs, added more shifts # 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown # require("dbconnect.php"); @@ -59,7 +61,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -74,7 +76,7 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -82,7 +84,8 @@ $i=0; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; $i++; } ?> @@ -97,13 +100,13 @@ while ($i < $groups_to_print) --> -\n"; -echo "VICIDIAL: VDAD Closer Service Level Stats\n"; +echo "Inbound Service Level Report\n"; - $short_header=1; +$short_header=1; - require("admin_header.php"); +require("admin_header.php"); echo "
"; @@ -112,11 +115,11 @@ echo "\n"; echo "\n"; echo "\n"; echo "Εισερχόμενες Ομάδες: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -265,7 +272,7 @@ $query_date_END = "$end_date $time_END"; -echo "VICIDIAL: Στατιστικά αυτόματης κλήσης Closer: $group_string $NOW_TIME\n"; +echo "Inbound Call Stats: $group_string $NOW_TIME\n"; @@ -951,33 +958,9 @@ while ($i < $statuses_to_print) {$STATUSrate = ($STATUScount / ($TOTALsec / 3600) );} $STATUSrate = sprintf("%.2f", $STATUSrate); - $STATUShours_H = ($row[2] / 3600); - $STATUShours_H_int = round($STATUShours_H, 2); - $STATUShours_H_int = intval("$STATUShours_H_int"); - $STATUShours_M = ($STATUShours_H - $STATUShours_H_int); - $STATUShours_M = ($STATUShours_M * 60); - $STATUShours_M_int = round($STATUShours_M, 2); - $STATUShours_M_int = intval("$STATUShours_M_int"); - $STATUShours_S = ($STATUShours_M - $STATUShours_M_int); - $STATUShours_S = ($STATUShours_S * 60); - $STATUShours_S = round($STATUShours_S, 0); - if ($STATUShours_S < 10) {$STATUShours_S = "0$STATUShours_S";} - if ($STATUShours_M_int < 10) {$STATUShours_M_int = "0$STATUShours_M_int";} - $STATUShours = "$STATUShours_H_int:$STATUShours_M_int:$STATUShours_S"; - - $STATUSavg_H = (($row[2] / 3600) / $STATUScount); - $STATUSavg_H_int = round($STATUSavg_H, 2); - $STATUSavg_H_int = intval("$STATUSavg_H_int"); - $STATUSavg_M = ($STATUSavg_H - $STATUSavg_H_int); - $STATUSavg_M = ($STATUSavg_M * 60); - $STATUSavg_M_int = round($STATUSavg_M, 2); - $STATUSavg_M_int = intval("$STATUSavg_M_int"); - $STATUSavg_S = ($STATUSavg_M - $STATUSavg_M_int); - $STATUSavg_S = ($STATUSavg_S * 60); - $STATUSavg_S = round($STATUSavg_S, 0); - if ($STATUSavg_S < 10) {$STATUSavg_S = "0$STATUSavg_S";} - if ($STATUSavg_M_int < 10) {$STATUSavg_M_int = "0$STATUSavg_M_int";} - $STATUSavg = "$STATUSavg_H_int:$STATUSavg_M_int:$STATUSavg_S"; + $STATUShours = sec_convert($row[2],'H'); + $STATUSavg_sec = ($row[2] / $STATUScount); + $STATUSavg = sec_convert($STATUSavg_sec,'H'); $STATUScount = sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);} $status = sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);} @@ -1020,33 +1003,9 @@ else {$TOTALrate = ($TOTALcalls / ($TOTALsec / 3600) );} $TOTALrate = sprintf("%.2f", $TOTALrate); - $TOTALhours_H = ($TOTALsec / 3600); - $TOTALhours_H_int = round($TOTALhours_H, 2); - $TOTALhours_H_int = intval("$TOTALhours_H_int"); - $TOTALhours_M = ($TOTALhours_H - $TOTALhours_H_int); - $TOTALhours_M = ($TOTALhours_M * 60); - $TOTALhours_M_int = round($TOTALhours_M, 2); - $TOTALhours_M_int = intval("$TOTALhours_M_int"); - $TOTALhours_S = ($TOTALhours_M - $TOTALhours_M_int); - $TOTALhours_S = ($TOTALhours_S * 60); - $TOTALhours_S = round($TOTALhours_S, 0); - if ($TOTALhours_S < 10) {$TOTALhours_S = "0$TOTALhours_S";} - if ($TOTALhours_M_int < 10) {$TOTALhours_M_int = "0$TOTALhours_M_int";} - $TOTALhours = "$TOTALhours_H_int:$TOTALhours_M_int:$TOTALhours_S"; - - $TOTALavg_H = (($TOTALsec / 3600) / $TOTALcalls); - $TOTALavg_H_int = round($TOTALavg_H, 2); - $TOTALavg_H_int = intval("$TOTALavg_H_int"); - $TOTALavg_M = ($TOTALavg_H - $TOTALavg_H_int); - $TOTALavg_M = ($TOTALavg_M * 60); - $TOTALavg_M_int = round($TOTALavg_M, 2); - $TOTALavg_M_int = intval("$TOTALavg_M_int"); - $TOTALavg_S = ($TOTALavg_M - $TOTALavg_M_int); - $TOTALavg_S = ($TOTALavg_S * 60); - $TOTALavg_S = round($TOTALavg_S, 0); - if ($TOTALavg_S < 10) {$TOTALavg_S = "0$TOTALavg_S";} - if ($TOTALavg_M_int < 10) {$TOTALavg_M_int = "0$TOTALavg_M_int";} - $TOTALavg = "$TOTALavg_H_int:$TOTALavg_M_int:$TOTALavg_S"; + $TOTALhours = sec_convert($TOTALsec,'H'); + $TOTALavg_sec = ($TOTALsec / $TOTALcalls); + $TOTALavg = sec_convert($TOTALavg_sec,'H'); } $TOTALcalls = sprintf("%10s", $TOTALcalls); $TOTALhours = sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);} @@ -1091,6 +1050,67 @@ echo "| TOTAL | $TOTCATcalls |\n"; echo "+----------------------+------------+\n"; +############################## +######### CALL INITIAL QUEUE POSITION BREAKDOWN + +$TOTALcalls = 0; + +echo "\n"; +echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; +echo "| 1 2 3 4 5 6 7 8 9 10 15 20 25 +25 | TOTAL |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + +$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) group by queue_position;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$positions_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $positions_to_print) + { + $row=mysql_fetch_row($rslt); + + $TOTALcalls = ($TOTALcalls + $row[0]); + + if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);} + if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);} + if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);} + if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);} + if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);} + if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);} + if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);} + if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);} + if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);} + if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);} + if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);} + if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);} + if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);} + if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);} + $i++; + } + +$qp_1 = sprintf("%5s", $qp_1); +$qp_2 = sprintf("%5s", $qp_2); +$qp_3= sprintf("%5s", $qp_3); +$qp_4 = sprintf("%5s", $qp_4); +$qp_5 = sprintf("%5s", $qp_5); +$qp_6 = sprintf("%5s", $qp_6); +$qp_7 = sprintf("%5s", $qp_7); +$qp_8 = sprintf("%5s", $qp_8); +$qp_9 = sprintf("%5s", $qp_9); +$qp10 = sprintf("%5s", $qp10); +$qp15 = sprintf("%5s", $qp15); +$qp20 = sprintf("%5s", $qp20); +$qp25 = sprintf("%5s", $qp25); +$qp99 = sprintf("%5s", $qp99); + +$TOTALcalls = sprintf("%10s", $TOTALcalls); + +echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + + + ############################## ######### USER STATS @@ -1101,9 +1121,9 @@ $TOTavg=0; echo "\n"; echo "---------- ΧΕΙΡΙΣΤΗΣSTATS\n"; -echo "+--------------------------+------------+----------+--------+\n"; -echo "| ΧΕΙΡΙΣΤΗΣ | CALLS | TIME M | AVRG M |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| ΧΕΙΡΙΣΤΗΣ | CALLS | TIME H:M:S |AVERAGE |\n"; +echo "+--------------------------+------------+------------+--------+\n"; $stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;"; $rslt=mysql_query($stmt, $link); @@ -1118,34 +1138,25 @@ while ($i < $users_to_print) $TOTtime = ($TOTtime + $row[3]); $user = sprintf("%-6s", $row[0]); - $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + if ($non_latin < 1) + { + $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + } + else + { + $full_name = sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');} + } $USERcalls = sprintf("%10s", $row[2]); $USERtotTALK = $row[3]; $USERavgTALK = $row[4]; - $USERtotTALK_M = ($USERtotTALK / 60); - $USERtotTALK_M_int = round($USERtotTALK_M, 2); - $USERtotTALK_M_int = intval("$USERtotTALK_M_int"); - $USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int); - $USERtotTALK_S = ($USERtotTALK_S * 60); - $USERtotTALK_S = round($USERtotTALK_S, 0); - if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";} - $USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S"; - $USERtotTALK_MS = eregi_replace('-','',$USERtotTALK_MS); - $USERtotTALK_MS = sprintf("%8s", $USERtotTALK_MS); + $USERtotTALK_MS = sec_convert($USERtotTALK,'H'); + $USERavgTALK_MS = sec_convert($USERavgTALK,'H'); - $USERavgTALK_M = ($USERavgTALK / 60); - $USERavgTALK_M_int = round($USERavgTALK_M, 2); - $USERavgTALK_M_int = intval("$USERavgTALK_M_int"); - $USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int); - $USERavgTALK_S = ($USERavgTALK_S * 60); - $USERavgTALK_S = round($USERavgTALK_S, 0); - if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";} - $USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S"; - $USERavgTALK_MS = eregi_replace('-','',$USERavgTALK_MS); - $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); + $USERtotTALK_MS = sprintf("%9s", $USERtotTALK_MS); + $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); - echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; + echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; $i++; } @@ -1154,36 +1165,21 @@ if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;} else { $TOTavg = ($TOTtime / $TOTcalls); - $TOTavg = round($TOTavg, 0); - $TOTavg_M = ($TOTavg / 60); - $TOTavg_M_int = round($TOTavg_M, 2); - $TOTavg_M_int = intval("$TOTavg_M_int"); - $TOTavg_S = ($TOTavg_M - $TOTavg_M_int); - $TOTavg_S = ($TOTavg_S * 60); - $TOTavg_S = round($TOTavg_S, 0); - if ($TOTavg_S < 10) {$TOTavg_S = "0$TOTavg_S";} - $TOTavg_MS = "$TOTavg_M_int:$TOTavg_S"; + $TOTavg_MS = sec_convert($TOTavg,'H'); $TOTavg = sprintf("%6s", $TOTavg_MS); } -$TOTtime_M = ($TOTtime / 60); -$TOTtime_M_int = round($TOTtime_M, 2); -$TOTtime_M_int = intval("$TOTtime_M_int"); -$TOTtime_S = ($TOTtime_M - $TOTtime_M_int); -$TOTtime_S = ($TOTtime_S * 60); -$TOTtime_S = round($TOTtime_S, 0); -if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";} -$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S"; -$TOTtime = sprintf("%6s", $TOTtime_MS); +$TOTtime_MS = sec_convert($TOTtime,'H'); +$TOTtime = sprintf("%10s", $TOTtime_MS); $TOTagents = sprintf("%10s", $i); $TOTcalls = sprintf("%10s", $TOTcalls); $TOTtime = sprintf("%8s", $TOTtime); $TOTavg = sprintf("%6s", $TOTavg); -echo "+--------------------------+------------+----------+--------+\n"; -echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| TOTAL Πράκτορες: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; +echo "+--------------------------+------------+------------+--------+\n"; ############################## diff --git a/LANG_www/vicidial_el/AST_CLOSERsummary_hourly.php b/LANG_www/vicidial_el/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/LANG_www/vicidial_el/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_el/AST_IVRfilter.php b/LANG_www/vicidial_el/AST_IVRfilter.php index 4d15a96e..bc35da25 100644 --- a/LANG_www/vicidial_el/AST_IVRfilter.php +++ b/LANG_www/vicidial_el/AST_IVRfilter.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # # 81030-0432 - First build # 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -81,7 +82,7 @@ $i=0; --> -\n"; echo "VICIDIAL: VDL IVR Filter Stats\n"; diff --git a/LANG_www/vicidial_el/AST_IVRstats.php b/LANG_www/vicidial_el/AST_IVRstats.php index ffcaf04e..5abf350b 100644 --- a/LANG_www/vicidial_el/AST_IVRstats.php +++ b/LANG_www/vicidial_el/AST_IVRstats.php @@ -1,15 +1,16 @@ - LICENSE: AGPLv2 # # CHANGES -# # 81026-2026 - First build # 81107-0341 - Added time range and option and 15-minute increment graph # 81107-1148 - Added average times and totals # 81108-0922 - Added no-callerID and unique caller counts # 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list # require("dbconnect.php"); @@ -61,7 +62,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -76,18 +77,23 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; - $LISTgroups[$i]='---NONE---'; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; $i++; $groups_to_print++; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $LISTgroups[$i] =$row[0]; + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; $i++; } @@ -139,7 +145,7 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: IVR Stats\n"; +echo "IVR Stats Report\n"; $short_header=1; @@ -203,14 +209,14 @@ echo "
\n"; echo "Εισερχόμενες Ομάδες: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -248,434 +254,427 @@ echo "
\n\n";
 
 
 if ($groups_to_print < 1)
-{
-echo "\n\n";
-echo "Επιλέξτε μια Ενδοομιλικών ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ άνω ΚΛΙΚ ΚΑΙ ΑΠΟΣΤΟΛΗ\n";
-}
+	{
+	echo "\n\n";
+	echo "Επιλέξτε μια Ενδοομιλικών ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ άνω ΚΛΙΚ ΚΑΙ ΑΠΟΣΤΟΛΗ\n";
+	}
 
 else
-{
-
-
-echo "VICIDIAL: IVR Stats: $group_string          $NOW_TIME\n";
-
-
-
-
-
-
-$TOTALcalls=0;
-$NOCALLERIDcalls=0;
-$UNIQUEcallers=0;
-$totFLOWivr_time=0;
-$totFLOWtotal_time=0;
-
-##### Grab all records for the IVR for the specified time period
-$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$logs_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $logs_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-	$uniqueid[$p] =		$row[0];
-	$extension[$p] =	$row[1];
-	$start_time[$p] =	$row[2];
-	$comment_a[$p] =	$row[3];
-	$comment_b[$p] =	$row[4];
-	$comment_d[$p] =	$row[5];
-	$epoch[$p] =		$row[6];
-	$phone_ext[$p] =	$row[7];
-	$p++;
-	}
-
-### create the call flow of all calls by uniqueid
-$last_uniqueid='';
-$first_epoch='';
-$last_epoch='';
-$p=0;
-$r=-1;
-while ($p < $logs_to_print)
-	{
-	if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
-	if ($last_uniqueid === "$uniqueid[$p]")
-		{
-		$unique_calls[$r] .= "----------$comment_b[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		$last_epoch[$r]=$epoch[$p];
-		}
-	else
-		{
-		$r++;
-		$caller_id[$r]=$phone_ext[$p];
-		if (strlen($phone_ext[$p])<2)
-			{$NOCALLERIDcalls++;}
-		else
-			{
-			if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
-				{
-				$unique_callerIDs .= "_$phone_ext[$p]_";
-				$UNIQUEcallers++;
-				}
-			}
-		$first_epoch[$r]=$epoch[$p];
-		$last_epoch[$r]=$epoch[$p];
-		$unique_calls[$r] = $comment_b[$p];
-		$FLOWuniqueid[$r] = "$uniqueid[$p]";
-		$last_uniqueid = "$uniqueid[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		}
-	$p++;
-	}
-
-### sort call flows for counting
-$RAWunique_calls = $unique_calls;
-if ($logs_to_print > 0)
-	{sort($unique_calls);}
-
-
-### count each unique call flow
-$last_Suniqueid='';
-$p=-1;
-$s=0;
-while ($s <= $r)
-	{
-	if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
-	if ($last_Suniqueid === "$unique_calls[$s]")
-		{
-		$STunique_calls_count[$p]++;
-		}
-	else
-		{
-		$p++;
-		$STunique_calls[$p] = $unique_calls[$s];
-		$last_Suniqueid = "$unique_calls[$s]";
-		$STunique_calls_count[$p]=1;
-		}
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$TOTALcalls=0;
-$s=0;
-while ($s <= $p)
-	{
-	$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
-	$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
-	$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
-	$s++;
-	}
-
-#### PRINT TOTAL CALLS INTO THIS IVR
-echo "\n";
-echo "Calls taken into this IVR:   $TOTALcalls\n";
-echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
-echo "Unique Callers:              $UNIQUEcallers\n";
-echo "\n";
-
-### sort call flows for counting
-if ($p > 0)
-	{rsort($FLOWunique_calls);}
-
-
-### put call flows and counts together for sorting again
-$RUC_ct = count($RAWunique_calls);
-$s=0;
-while ($s <= $p)
-	{
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$t=0;
-	while ($t < $RUC_ct)
-		{
-		if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
-			{
-			$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
-			if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
-			else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
-			$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
-			}
-		$t++;
-		}
-
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$s=0;
-
-echo "+--------+--------+--------+--------+------+------+\n";
-echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
-echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
-echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
-echo "+--------+--------+--------+--------+------+------+------------\n";
-
-while ($s <= $p)
-	{
-	$vcl_statuses = $MT;
-	$FLOWdrop[$s]=0;
-	$FLOWtotal[$s]=0;
-	$FLOWdropPCT[$s]=0;
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
 
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
 
 	##### Grab all records for the IVR for the specified time period
-	$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
 	$rslt=mysql_query($stmt, $link);
 	if ($DB) {echo "$stmt\n";}
-	$vcl_statuses_to_print = mysql_num_rows($rslt);
-	$w=0;
-	while ($w < $vcl_statuses_to_print)
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
 		{
 		$row=mysql_fetch_row($rslt);
-		$vcl_statuses[$w] =		$row[0];
-		if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
-			{$FLOWdrop[$s]++;}
-		$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
-		$FLOWtotal[$s]++;
-		$w++;
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
 		}
-	if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
 		{
-		$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
-		$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
-		}
-	$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
-	$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
-	$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
-	$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
-	$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
-	$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
-
-	$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
-	$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
-	$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
-	$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
-	$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
-	$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
-
-	$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
-	$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
-	$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
-	$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
-
-	echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
-
-	$s++;
-	}
-$TOTALcalls = sprintf("%6s", $TOTALcalls);
-$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
-$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
-if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
-$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
-$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
-if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
-$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
-$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
-if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
-	{$totFLOWdropPCT = '0';}
-else
-	{
-	$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
-	$totFLOWdropPCT = round($totFLOWdropPCT, 0);
-	}
-$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
-
-echo "+--------+--------+--------+--------+------+------+------------\n";
-echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
-echo "+--------+--------+--------+--------+------+------+\n";
-
-
-
-
-
-
-
-
-
-
-
-
-
-##############################
-#########  TIME STATS
-
-echo "\n";
-echo "---------- ΣΤΑΤ.ΧΡΟΝ.\n";
-
-echo "\n";
-
-$hi_hour_count=0;
-$last_full_record=0;
-$i=0;
-$h=0;
-while ($i <= 96)
-	{
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-	$h++;
-	}
-
-if ($hi_hour_count < 1)
-	{$hour_multiplier = 0;}
-else
-	{
-	$hour_multiplier = (100 / $hi_hour_count);
-	#$hour_multiplier = round($hour_multiplier, 0);
-	}
-
-echo "\n";
-echo "ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ TAKEN INTO THIS IVR\n";
-
-$k=1;
-$Mk=0;
-$call_scale = '0';
-while ($k <= 102) 
-	{
-	if ($Mk >= 5) 
-		{
-		$Mk=0;
-		if ( ($k < 1) or ($hour_multiplier <= 0) )
-			{$scale_num = 100;}
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
 		else
 			{
-			$scale_num=($k / $hour_multiplier);
-			$scale_num = round($scale_num, 0);
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
 			}
-		$LENscale_num = (strlen($scale_num));
-		$k = ($k + $LENscale_num);
-		$call_scale .= "$scale_num";
+		$p++;
 		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣINTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
 	else
 		{
-		$call_scale .= " ";
-		$k++;   $Mk++;
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
 		}
-	}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
-echo "| HOUR |$call_scale| TOTAL |\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
 
-$ZZ = '00';
-$i=0;
-$h=4;
-$hour= -1;
-$no_lines_yet=1;
 
-while ($i <= 96)
-	{
-	$char_counter=0;
-	$time = '      ';
-	if ($h >= 4) 
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- ΣΤΑΤ.ΧΡΟΝ.\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
 		{
-		$hour++;
-		$h=0;
-		if ($hour < 10) {$hour = "0$hour";}
-		$time = "+$hour$ZZ+";
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
 		}
-	if ($h == 1) {$time = "   15 ";}
-	if ($h == 2) {$time = "   30 ";}
-	if ($h == 3) {$time = "   45 ";}
-	$Ghour_count = $hour_count[$i];
-	if ($Ghour_count < 1) 
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
 		{
-		if ( ($no_lines_yet) or ($i > $last_full_record) )
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
 			{
-			$do_nothing=1;
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
 			}
 		else
 			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
-			echo "|$time|";
-			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
 			echo "| $hour_count[$i] |\n";
 			}
+		
+		
+		$i++;
+		$h++;
 		}
-	else
-		{
-		$no_lines_yet=0;
-		$Xhour_count = ($Ghour_count * $hour_multiplier);
-		$Yhour_count = (99 - $Xhour_count);
 
-		$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 
-		echo "|$time|";
-		$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-		echo "*X";   $char_counter++;
-		$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-			while ($char_counter <= 101) {echo " ";   $char_counter++;}
-		echo "| $hour_count[$i] |\n";
-		}
-	
-	
-	$i++;
-	$h++;
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
 	}
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
-
-
-
-
-
-
-
-
-
-
-$ENDtime = date("U");
-$RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds\n";
-}
-
-
 
 ?>
 
diff --git a/LANG_www/vicidial_el/AST_OUTBOUNDsummary_interval.php b/LANG_www/vicidial_el/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/LANG_www/vicidial_el/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_el/AST_VDADstats.php b/LANG_www/vicidial_el/AST_VDADstats.php index 5ae95cd0..d562e759 100644 --- a/LANG_www/vicidial_el/AST_VDADstats.php +++ b/LANG_www/vicidial_el/AST_VDADstats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -17,17 +17,36 @@ # 81109-2341 - Added Productivity Rating # 90225-1140 - Changed to multi-campaign capability # 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; -if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} - elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} @@ -47,6 +66,10 @@ $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -54,16 +77,25 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} @@ -71,8 +103,7 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -87,7 +118,16 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select campaign_id from vicidial_campaigns;"; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); @@ -95,10 +135,14 @@ $i=0; while ($i < $campaigns_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} $i++; } +$rollover_groups_count=0; $i=0; $group_string='|'; $group_ct = count($group); @@ -107,15 +151,41 @@ while($i < $group_ct) $group_string .= "$group[$i]|"; $group_SQL .= "'$group[$i]',"; $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + $i++; } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) - {$group_SQL = "";} + { + $group_SQL = ""; + $group_drop_SQL = ""; + } else { $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; $group_SQLand = "and campaign_id IN($group_SQL)"; $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; } $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; @@ -131,6 +201,35 @@ while ($i < $statcats_to_print) $vsc_count[$i] = 0; $i++; } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + ?> @@ -144,9 +243,9 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: VDAD Stats\n"; +echo "Outbound Stats\n"; $short_header=1; @@ -158,6 +257,9 @@ echo "
\n"; echo "
Ημερομηνίες:
"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "
to
\n"; echo "
Εκστρατείες:
"; @@ -168,13 +270,35 @@ else {echo "\n";} $o=0; while ($campaigns_to_print > $o) -{ - if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} - else {echo "\n";} + { + if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} + else {echo "\n";} $o++; -} + } echo "\n"; -echo "
Shift:
"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; echo "
- \ No newline at end of file + diff --git a/LANG_www/vicidial_el/AST_VICIDIAL_hopperlist.php b/LANG_www/vicidial_el/AST_VICIDIAL_hopperlist.php index 48b6a798..0b39b286 100644 --- a/LANG_www/vicidial_el/AST_VICIDIAL_hopperlist.php +++ b/LANG_www/vicidial_el/AST_VICIDIAL_hopperlist.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -10,6 +10,8 @@ # 70115-1614 - Added ALT field for vicidial_hopper alt_dial column # 71029-0852 - Added list_id to the output # 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY # require("dbconnect.php"); @@ -73,19 +75,19 @@ while ($i < $campaigns_to_print) --> -\n"; -echo "VICIDIAL: Λίστα Hopper\n"; +echo "Λίστα Hopper Report\n"; echo "\n"; #echo "\n"; #echo "\n"; echo "\n"; echo "\n"; @@ -96,74 +98,70 @@ echo "
\n\n";
 
 
 if (!$group)
-{
-echo "\n\n";
-echo "ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΑΝΩΤΕΡΩ ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ\n";
-}
-
-else
-{
-
-
-echo "VICIDIAL: Ενεργή Λίστα στον Hopper                      $NOW_TIME\n";
-
-echo "\n";
-echo "---------- TOTALS\n";
-
-$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$TOTALcalls =	sprintf("%10s", $row[0]);
-
-echo "Αριθμός οδηγών στον hopper τώρα::       $TOTALcalls\n";
-
-
-##############################
-#########  LEAD STATS
-
-echo "\n";
-echo "---------- LEADS IN HOPPER\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-echo "|ORDER |ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ| LEAD ID   | ID ΛΙΣΤΑΣ    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-
-$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$users_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $users_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-
-	$FMT_i =		sprintf("%-4s", $i);
-	$lead_id =		sprintf("%-9s", $row[0]);
-	$phone_number =	sprintf("%-10s", $row[1]);
-	$state =		sprintf("%-5s", $row[2]);
-	$status =		sprintf("%-6s", $row[3]);
-	$count =		sprintf("%-5s", $row[4]);
-	$gmt =			sprintf("%-6s", $row[5]);
-	$hopper_id =	sprintf("%-6s", $row[6]);
-	$alt_dial =		sprintf("%-5s", $row[7]);
-	$list_id =		sprintf("%-10s", $row[8]);
-	$priority =		sprintf("%-6s", $row[9]);
-
-if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
-else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
-
-	$i++;
+	echo "\n\n";
+	echo "ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΑΝΩΤΕΡΩ ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ\n";
 	}
 
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+else
+	{
+	echo "Ενεργή Λίστα στον Hopper                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Αριθμός οδηγών στον hopper τώρα::       $TOTALcalls\n";
 
 
-}
+	##############################
+	#########  LEAD STATS
 
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ| LEAD ID   | ID ΛΙΣΤΑΣ    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
 
 
 ?>
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_el/AST_agent_days_detail.php b/LANG_www/vicidial_el/AST_agent_days_detail.php index 857ddb11..c43f6389 100644 --- a/LANG_www/vicidial_el/AST_agent_days_detail.php +++ b/LANG_www/vicidial_el/AST_agent_days_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-2202 - First build # 90225-1051 - Added CSV download option # 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags # @@ -157,10 +158,10 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Ημέρες Status\n"; + echo "Agent Ημέρες Status Report\n"; echo ""; $short_header=1; @@ -208,14 +209,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Days Λεπτομέρειες: $user $NOW_TIME\n"; + echo "Agent Ημέρες Status Report: $user $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- ΧΕΙΡΙΣΤΗΣΛεπτομέρειεςs -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Days Λεπτομέρειες: $user $NOW_TIME\n"; + $file_output .= "Agent Ημέρες Status Report: $user $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } diff --git a/LANG_www/vicidial_el/AST_agent_performance.php b/LANG_www/vicidial_el/AST_agent_performance.php index e2436508..071c65c4 100644 --- a/LANG_www/vicidial_el/AST_agent_performance.php +++ b/LANG_www/vicidial_el/AST_agent_performance.php @@ -1,13 +1,14 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60619-1711 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $campaigns_to_print) --> -\n"; echo "VICIDIAL: Agent Performance\n"; echo "\n"; diff --git a/LANG_www/vicidial_el/AST_agent_performance_detail.php b/LANG_www/vicidial_el/AST_agent_performance_detail.php index bae61cd2..31b72079 100644 --- a/LANG_www/vicidial_el/AST_agent_performance_detail.php +++ b/LANG_www/vicidial_el/AST_agent_performance_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -16,9 +16,14 @@ # 81108-0716 - fixed user same-name bug # 81110-0056 - fixed pause code display bug # 90310-2039 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90523-0935 - Rewrite of seconds to minutes and hours conversion +# 90717-1500 - Changed to be multi-campaign, multi-user-group select +# 90908-1058 - Added DEAD time statistics # require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -111,6 +116,44 @@ while ($i < $user_groups_to_print) $user_groups[$i] =$row[0]; $i++; } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} ?> @@ -124,9 +167,9 @@ while ($i < $user_groups_to_print) --> -\n"; -echo "VICIDIAL: Agent Performance\n"; +echo "Agent Performance Λεπτομέρειες\n"; $short_header=1; @@ -135,39 +178,58 @@ echo "VICIDIAL: Agent Performance
"; echo "\n"; +echo "
Ημερομηνίες:
"; echo "\n"; echo "\n"; -echo " to \n"; -echo "\n"; +echo "
Εκστρατείες:
"; +echo "\n"; +echo "
Ομάδες Χρήστη:
"; +echo "\n"; -echo "\n"; +echo "
Shift:
"; echo "\n"; +echo "

\n"; echo "\n"; -echo "           ΤΡΟΠΟΠΟΙΗΣΗ | ΑΝΑΦΟΡΕΣ \n"; +echo "
        "; + +echo "          \n"; +echo " ΑΝΑΦΟΡΕΣ \n"; +echo "\n"; +echo "
"; + echo "\n\n"; + echo "
\n";
 
 
@@ -205,7 +267,7 @@ $query_date_END = "$end_date $time_END";
 if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
 else {$ugSQL='';}
 
-echo "VICIDIAL: Agent Performance Λεπτομέρειες                        $NOW_TIME\n";
+echo "Agent Performance Λεπτομέρειες                        $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENTS Λεπτομέρειεςs -------------\n\n";
@@ -225,7 +287,7 @@ $usersARY[0]='';
 $user_namesARY[0]='';
 $k=0;
 
-$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000 $ugSQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $rows_to_print = mysql_num_rows($rslt);
@@ -243,6 +305,7 @@ while ($i < $rows_to_print)
 	$wait_sec[$i] =		$row[5];
 	$dispo_sec[$i] =	$row[6];
 	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
 	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
 		{
 		$statusesTXT = sprintf("%8s", $status[$i]);
@@ -264,9 +327,9 @@ while ($i < $rows_to_print)
 	}
 
 echo "CALL STATS BREAKDOWN:\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "| USER NAME       | ID       | CALLS  | TIME    | PAUSE  | PAUSAVG| WAIT   | WAITAVG| TALK   | TALKAVG| DISPO  | DISPAVG|$statusesHTML\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -281,6 +344,7 @@ while ($m < $k)
 	$Spause_sec=0;
 	$Swait_sec=0;
 	$Sdispo_sec=0;
+	$Sdead_sec=0;
 	$SstatusesHTML='';
 
 	### BEGIN loop through each status ###
@@ -300,6 +364,7 @@ while ($m < $k)
 				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
 				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
 				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
 				$SstatusTXT = sprintf("%8s", $calls[$i]);
 				$SstatusesHTML .= " $SstatusTXT |";
 				$status_found++;
@@ -321,6 +386,7 @@ while ($m < $k)
 	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
 	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
 	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
 	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
 	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
 		else {$Stalk_avg=0;}
@@ -330,6 +396,8 @@ while ($m < $k)
 		else {$Swait_avg=0;}
 	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
 		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
 
 	$RAWuser = $Suser;
 	$RAWcalls = $Scalls;
@@ -337,112 +405,45 @@ while ($m < $k)
 
 	if ($non_latin < 1)
 		{
-		 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
-			while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
-		 $Suser =		sprintf("%-8s", $Suser);
-			while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
 		}
 	else
 		{	
-			$Sfull_name=	sprintf("%-45s", $Sfull_name); 
-		 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
-			$Suser =	sprintf("%-24s", $Suser);
-		 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
 
-	$USERtime_M = ($Stime / 60);
-	$USERtime_M_int = round($USERtime_M, 2);
-	$USERtime_M_int = intval("$USERtime_M_int");
-	$USERtime_S = ($USERtime_M - $USERtime_M_int);
-	$USERtime_S = ($USERtime_S * 60);
-	$USERtime_S = round($USERtime_S, 0);
-	if ($USERtime_S < 10) {$USERtime_S = "0$USERtime_S";}
-	$USERtime_MS = "$USERtime_M_int:$USERtime_S";
-	$pfUSERtime_MS =		sprintf("%7s", $USERtime_MS);
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
 
-	$USERtotTALK_M = ($Stalk_sec / 60);
-	$USERtotTALK_M_int = round($USERtotTALK_M, 2);
-	$USERtotTALK_M_int = intval("$USERtotTALK_M_int");
-	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
-	$USERtotTALK_S = ($USERtotTALK_S * 60);
-	$USERtotTALK_S = round($USERtotTALK_S, 0);
-	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
-	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
-	$pfUSERtotTALK_MS =		sprintf("%6s", $USERtotTALK_MS);
-
-	$USERavgTALK_M = ($Stalk_avg / 60);
-	$USERavgTALK_M_int = round($USERavgTALK_M, 2);
-	$USERavgTALK_M_int = intval("$USERavgTALK_M_int");
-	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
-	$USERavgTALK_S = ($USERavgTALK_S * 60);
-	$USERavgTALK_S = round($USERavgTALK_S, 0);
-	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
-	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
-	$pfUSERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
-
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
 	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
 
-	$USERavgPAUSE_M = ($Spause_avg / 60);
-	$USERavgPAUSE_M_int = round($USERavgPAUSE_M, 2);
-	$USERavgPAUSE_M_int = intval("$USERavgPAUSE_M_int");
-	$USERavgPAUSE_S = ($USERavgPAUSE_M - $USERavgPAUSE_M_int);
-	$USERavgPAUSE_S = ($USERavgPAUSE_S * 60);
-	$USERavgPAUSE_S = round($USERavgPAUSE_S, 0);
-	if ($USERavgPAUSE_S < 10) {$USERavgPAUSE_S = "0$USERavgPAUSE_S";}
-	$USERavgPAUSE_MS = "$USERavgPAUSE_M_int:$USERavgPAUSE_S";
-	$pfUSERavgPAUSE_MS =		sprintf("%6s", $USERavgPAUSE_MS);
-
-	$USERtotWAIT_M = ($Swait_sec / 60);
-	$USERtotWAIT_M_int = round($USERtotWAIT_M, 2);
-	$USERtotWAIT_M_int = intval("$USERtotWAIT_M_int");
-	$USERtotWAIT_S = ($USERtotWAIT_M - $USERtotWAIT_M_int);
-	$USERtotWAIT_S = ($USERtotWAIT_S * 60);
-	$USERtotWAIT_S = round($USERtotWAIT_S, 0);
-	if ($USERtotWAIT_S < 10) {$USERtotWAIT_S = "0$USERtotWAIT_S";}
-	$USERtotWAIT_MS = "$USERtotWAIT_M_int:$USERtotWAIT_S";
-	$pfUSERtotWAIT_MS =		sprintf("%6s", $USERtotWAIT_MS);
-
-	$USERavgWAIT_M = ($Swait_avg / 60);
-	$USERavgWAIT_M_int = round($USERavgWAIT_M, 2);
-	$USERavgWAIT_M_int = intval("$USERavgWAIT_M_int");
-	$USERavgWAIT_S = ($USERavgWAIT_M - $USERavgWAIT_M_int);
-	$USERavgWAIT_S = ($USERavgWAIT_S * 60);
-	$USERavgWAIT_S = round($USERavgWAIT_S, 0);
-	if ($USERavgWAIT_S < 10) {$USERavgWAIT_S = "0$USERavgWAIT_S";}
-	$USERavgWAIT_MS = "$USERavgWAIT_M_int:$USERavgWAIT_S";
-	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
-	
-	$USERtotDISPO_M = ($Sdispo_sec / 60);
-	$USERtotDISPO_M_int = round($USERtotDISPO_M, 2);
-	$USERtotDISPO_M_int = intval("$USERtotDISPO_M_int");
-	$USERtotDISPO_S = ($USERtotDISPO_M - $USERtotDISPO_M_int);
-	$USERtotDISPO_S = ($USERtotDISPO_S * 60);
-	$USERtotDISPO_S = round($USERtotDISPO_S, 0);
-	if ($USERtotDISPO_S < 10) {$USERtotDISPO_S = "0$USERtotDISPO_S";}
-	$USERtotDISPO_MS = "$USERtotDISPO_M_int:$USERtotDISPO_S";
-	$pfUSERtotDISPO_MS =		sprintf("%6s", $USERtotDISPO_MS);
-
-	$USERavgDISPO_M = ($Sdispo_avg / 60);
-	$USERavgDISPO_M_int = round($USERavgDISPO_M, 2);
-	$USERavgDISPO_M_int = intval("$USERavgDISPO_M_int");
-	$USERavgDISPO_S = ($USERavgDISPO_M - $USERavgDISPO_M_int);
-	$USERavgDISPO_S = ($USERavgDISPO_S * 60);
-	$USERavgDISPO_S = round($USERavgDISPO_S, 0);
-	if ($USERavgDISPO_S < 10) {$USERavgDISPO_S = "0$USERavgDISPO_S";}
-	$USERavgDISPO_MS = "$USERavgDISPO_M_int:$USERavgDISPO_S";
-	$pfUSERavgDISPO_MS =		sprintf("%6s", $USERavgDISPO_MS);
-
-	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS |$SstatusesHTML\n";
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
 
 	$TOPsorted_output[$m] = $Toutput;
 
@@ -517,120 +518,60 @@ while ($n < $j)
 	}
 ### END loop through each status ###
 
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTcalls =	sprintf("%7s", $TOTcalls);
-	$TOT_AGENTS = sprintf("%-4s", $m);
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
 
-	$TOTtime_M = ($TOTtime / 60);
-	$TOTtime_M_int = round($TOTtime_M, 2);
-	$TOTtime_M_int = intval("$TOTtime_M_int");
-	$TOTtime_S = ($TOTtime_M - $TOTtime_M_int);
-	$TOTtime_S = ($TOTtime_S * 60);
-	$TOTtime_S = round($TOTtime_S, 0);
-	if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";}
-	$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S";
-	$TOTtime_MS =		sprintf("%8s", $TOTtime_MS);
-		while(strlen($TOTtime_MS)>8) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
 
-	$TOTtotTALK_M = ($TOTtotTALK / 60);
-	$TOTtotTALK_M_int = round($TOTtotTALK_M, 2);
-	$TOTtotTALK_M_int = intval("$TOTtotTALK_M_int");
-	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
-	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
-	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
-	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
-	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
-	$TOTtotTALK_MS =		sprintf("%8s", $TOTtotTALK_MS);
-		while(strlen($TOTtotTALK_MS)>8) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
 
-	if ($TOTtotDISPO < 1) {$TOTtotDISPO_M = '0';}
-	else {$TOTtotDISPO_M = ($TOTtotDISPO / 60);}
-	$TOTtotDISPO_M_int = round($TOTtotDISPO_M, 2);
-	$TOTtotDISPO_M_int = intval("$TOTtotDISPO_M_int");
-	$TOTtotDISPO_S = ($TOTtotDISPO_M - $TOTtotDISPO_M_int);
-	$TOTtotDISPO_S = ($TOTtotDISPO_S * 60);
-	$TOTtotDISPO_S = round($TOTtotDISPO_S, 0);
-	if ($TOTtotDISPO_S < 10) {$TOTtotDISPO_S = "0$TOTtotDISPO_S";}
-	$TOTtotDISPO_MS = "$TOTtotDISPO_M_int:$TOTtotDISPO_S";
-	$TOTtotDISPO_MS =		sprintf("%8s", $TOTtotDISPO_MS);
-		while(strlen($TOTtotDISPO_MS)>8) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTtotPAUSE_M = '0';}
-	else {$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);}
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTtotWAIT_M = '0';}
-	else {$TOTtotWAIT_M = ($TOTtotWAIT / 60);}
-	$TOTtotWAIT_M_int = round($TOTtotWAIT_M, 2);
-	$TOTtotWAIT_M_int = intval("$TOTtotWAIT_M_int");
-	$TOTtotWAIT_S = ($TOTtotWAIT_M - $TOTtotWAIT_M_int);
-	$TOTtotWAIT_S = ($TOTtotWAIT_S * 60);
-	$TOTtotWAIT_S = round($TOTtotWAIT_S, 0);
-	if ($TOTtotWAIT_S < 10) {$TOTtotWAIT_S = "0$TOTtotWAIT_S";}
-	$TOTtotWAIT_MS = "$TOTtotWAIT_M_int:$TOTtotWAIT_S";
-	$TOTtotWAIT_MS =		sprintf("%8s", $TOTtotWAIT_MS);
-		while(strlen($TOTtotWAIT_MS)>8) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
-
-	if ($TOTtotTALK < 1) {$TOTavgTALK_M = '0';}
-	else {$TOTavgTALK_M = ( ($TOTtotTALK / $TOTcalls) / 60);}
-	$TOTavgTALK_M_int = round($TOTavgTALK_M, 2);
-	$TOTavgTALK_M_int = intval("$TOTavgTALK_M_int");
-	$TOTavgTALK_S = ($TOTavgTALK_M - $TOTavgTALK_M_int);
-	$TOTavgTALK_S = ($TOTavgTALK_S * 60);
-	$TOTavgTALK_S = round($TOTavgTALK_S, 0);
-	if ($TOTavgTALK_S < 10) {$TOTavgTALK_S = "0$TOTavgTALK_S";}
-	$TOTavgTALK_MS = "$TOTavgTALK_M_int:$TOTavgTALK_S";
-	$TOTavgTALK_MS =		sprintf("%6s", $TOTavgTALK_MS);
-		while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
-
-	if ($TOTtotDISPO < 1) {$TOTavgDISPO_M = '0';}
-	else {$TOTavgDISPO_M = ( ($TOTtotDISPO / $TOTcalls) / 60);}
-	$TOTavgDISPO_M_int = round($TOTavgDISPO_M, 2);
-	$TOTavgDISPO_M_int = intval("$TOTavgDISPO_M_int");
-	$TOTavgDISPO_S = ($TOTavgDISPO_M - $TOTavgDISPO_M_int);
-	$TOTavgDISPO_S = ($TOTavgDISPO_S * 60);
-	$TOTavgDISPO_S = round($TOTavgDISPO_S, 0);
-	if ($TOTavgDISPO_S < 10) {$TOTavgDISPO_S = "0$TOTavgDISPO_S";}
-	$TOTavgDISPO_MS = "$TOTavgDISPO_M_int:$TOTavgDISPO_S";
-	$TOTavgDISPO_MS =		sprintf("%6s", $TOTavgDISPO_MS);
-		while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTavgPAUSE_M = '0';}
-	else {$TOTavgPAUSE_M = ( ($TOTtotPAUSE / $TOTcalls) / 60);}
-	$TOTavgPAUSE_M_int = round($TOTavgPAUSE_M, 2);
-	$TOTavgPAUSE_M_int = intval("$TOTavgPAUSE_M_int");
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_M - $TOTavgPAUSE_M_int);
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_S * 60);
-	$TOTavgPAUSE_S = round($TOTavgPAUSE_S, 0);
-	if ($TOTavgPAUSE_S < 10) {$TOTavgPAUSE_S = "0$TOTavgPAUSE_S";}
-	$TOTavgPAUSE_MS = "$TOTavgPAUSE_M_int:$TOTavgPAUSE_S";
-	$TOTavgPAUSE_MS =		sprintf("%6s", $TOTavgPAUSE_MS);
-		while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTavgWAIT_M = '0';}
-	else {$TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60);}
-	$TOTavgWAIT_M_int = round($TOTavgWAIT_M, 2);
-	$TOTavgWAIT_M_int = intval("$TOTavgWAIT_M_int");
-	$TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int);
-	$TOTavgWAIT_S = ($TOTavgWAIT_S * 60);
-	$TOTavgWAIT_S = round($TOTavgWAIT_S, 0);
-	if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";}
-	$TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S";
-	$TOTavgWAIT_MS =		sprintf("%6s", $TOTavgWAIT_MS);
-		while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
 
 
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 echo "\n\n";
 
@@ -658,7 +599,7 @@ $PCusers='-';
 $PCusersARY=$MT;
 $PCuser_namesARY=$MT;
 $k=0;
-$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 $ugSQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $subs_to_print = mysql_num_rows($rslt);
@@ -695,9 +636,9 @@ while ($i < $subs_to_print)
 	}
 
 echo "PAUSE CODE BREAKDOWN:\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
-echo "| USER NAME       | ID       | TOTAL  |NONPAUSE| PAUSE  |  |$sub_statusesHTML\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -738,15 +679,8 @@ while ($m < $k)
 				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
 				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
 
-				$USERcodePAUSE_M = ($PCpause_sec[$i] / 60);
-				$USERcodePAUSE_M_int = round($USERcodePAUSE_M, 2);
-				$USERcodePAUSE_M_int = intval("$USERcodePAUSE_M_int");
-				$USERcodePAUSE_S = ($USERcodePAUSE_M - $USERcodePAUSE_M_int);
-				$USERcodePAUSE_S = ($USERcodePAUSE_S * 60);
-				$USERcodePAUSE_S = round($USERcodePAUSE_S, 0);
-				if ($USERcodePAUSE_S < 10) {$USERcodePAUSE_S = "0$USERcodePAUSE_S";}
-				$USERcodePAUSE_MS = "$USERcodePAUSE_M_int:$USERcodePAUSE_S";
-				$pfUSERcodePAUSE_MS =		sprintf("%6s", $USERcodePAUSE_MS);
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
 
 				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
 				$SstatusesHTML .= " $SstatusTXT |";
@@ -775,7 +709,6 @@ while ($m < $k)
 		{
 		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
 		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
 		$Suser =	sprintf("%-24s", $Suser);
 		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
@@ -783,44 +716,19 @@ while ($m < $k)
 	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
 	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
 
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
 
-	$USERtotNONPAUSE_M = ($Snon_pause_sec / 60);
-	$USERtotNONPAUSE_M_int = round($USERtotNONPAUSE_M, 2);
-	$USERtotNONPAUSE_M_int = intval("$USERtotNONPAUSE_M_int");
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_M - $USERtotNONPAUSE_M_int);
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_S * 60);
-	$USERtotNONPAUSE_S = round($USERtotNONPAUSE_S, 0);
-	if ($USERtotNONPAUSE_S < 10) {$USERtotNONPAUSE_S = "0$USERtotNONPAUSE_S";}
-	$USERtotNONPAUSE_MS = "$USERtotNONPAUSE_M_int:$USERtotNONPAUSE_S";
-	$pfUSERtotNONPAUSE_MS =		sprintf("%6s", $USERtotNONPAUSE_MS);
-
-	$USERtotTOTAL_M = ($Stotal_sec / 60);
-	$USERtotTOTAL_M_int = round($USERtotTOTAL_M, 2);
-	$USERtotTOTAL_M_int = intval("$USERtotTOTAL_M_int");
-	$USERtotTOTAL_S = ($USERtotTOTAL_M - $USERtotTOTAL_M_int);
-	$USERtotTOTAL_S = ($USERtotTOTAL_S * 60);
-	$USERtotTOTAL_S = round($USERtotTOTAL_S, 0);
-	if ($USERtotTOTAL_S < 10) {$USERtotTOTAL_S = "0$USERtotTOTAL_S";}
-	$USERtotTOTAL_MS = "$USERtotTOTAL_M_int:$USERtotTOTAL_S";
-	$pfUSERtotTOTAL_MS =		sprintf("%6s", $USERtotTOTAL_MS);
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
 
 	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
 
 	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
 
-#	if (!ereg("ID|TIME|CALLS",$stage))
-#		{
-		echo "$BOTTOMoutput";
-#		}
+	echo "$BOTTOMoutput";
 
 	$m++;
 	}
@@ -873,15 +781,8 @@ while ($n < $j)
 		{
 		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
 
-		$USERsumstatPAUSE_M = ($Scalls / 60);
-		$USERsumstatPAUSE_M_int = round($USERsumstatPAUSE_M, 2);
-		$USERsumstatPAUSE_M_int = intval("$USERsumstatPAUSE_M_int");
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_M - $USERsumstatPAUSE_M_int);
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_S * 60);
-		$USERsumstatPAUSE_S = round($USERsumstatPAUSE_S, 0);
-		if ($USERsumstatPAUSE_S < 10) {$USERsumstatPAUSE_S = "0$USERsumstatPAUSE_S";}
-		$USERsumstatPAUSE_MS = "$USERsumstatPAUSE_M_int:$USERsumstatPAUSE_S";
-		$pfUSERsumstatPAUSE_MS =		sprintf("%6s", $USERsumstatPAUSE_MS);
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
 
 		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
 		$SUMstatusesHTML .= " $SUMstatusTXT |";
@@ -892,44 +793,22 @@ while ($n < $j)
 
 	$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
 
-	$TOTtotNONPAUSE_M = ($TOTtotNONPAUSE / 60);
-	$TOTtotNONPAUSE_M_int = round($TOTtotNONPAUSE_M, 2);
-	$TOTtotNONPAUSE_M_int = intval("$TOTtotNONPAUSE_M_int");
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_M - $TOTtotNONPAUSE_M_int);
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_S * 60);
-	$TOTtotNONPAUSE_S = round($TOTtotNONPAUSE_S, 0);
-	if ($TOTtotNONPAUSE_S < 10) {$TOTtotNONPAUSE_S = "0$TOTtotNONPAUSE_S";}
-	$TOTtotNONPAUSE_MS = "$TOTtotNONPAUSE_M_int:$TOTtotNONPAUSE_S";
-	$TOTtotNONPAUSE_MS =		sprintf("%8s", $TOTtotNONPAUSE_MS);
-		while(strlen($TOTtotNONPAUSE_MS)>8) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
 
-	$TOTtotTOTAL_M = ($TOTtotTOTAL / 60);
-	$TOTtotTOTAL_M_int = round($TOTtotTOTAL_M, 2);
-	$TOTtotTOTAL_M_int = intval("$TOTtotTOTAL_M_int");
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_M - $TOTtotTOTAL_M_int);
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_S * 60);
-	$TOTtotTOTAL_S = round($TOTtotTOTAL_S, 0);
-	if ($TOTtotTOTAL_S < 10) {$TOTtotTOTAL_S = "0$TOTtotTOTAL_S";}
-	$TOTtotTOTAL_MS = "$TOTtotTOTAL_M_int:$TOTtotTOTAL_S";
-	$TOTtotTOTAL_MS =		sprintf("%8s", $TOTtotTOTAL_MS);
-		while(strlen($TOTtotTOTAL_MS)>8) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
 
 
-
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 echo "\n\n";
 
@@ -940,4 +819,4 @@ echo "\n\n";
 
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_el/AST_agent_status_detail.php b/LANG_www/vicidial_el/AST_agent_status_detail.php index ca8c15dd..73a3a3df 100644 --- a/LANG_www/vicidial_el/AST_agent_status_detail.php +++ b/LANG_www/vicidial_el/AST_agent_status_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-1554 - First build # 90225-2252 - Added CSV download option # 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags # @@ -202,9 +203,9 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Ημέρες Status\n"; + echo "Agent Status Λεπτομέρειες Report\n"; echo ""; $short_header=1; @@ -252,14 +253,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Status Λεπτομέρειες $NOW_TIME\n"; + echo "Agent Status Λεπτομέρειες Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- ΧΕΙΡΙΣΤΗΣΛεπτομέρειεςs -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Status Λεπτομέρειες $NOW_TIME\n"; + $file_output .= "Agent Status Λεπτομέρειες Report $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } @@ -284,7 +285,7 @@ else { $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) and (strlen($row[3]) > 0) ) + if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3]))) { $calls[$i] = $row[0]; $full_name[$i] = $row[1]; diff --git a/LANG_www/vicidial_el/AST_agent_time_detail.php b/LANG_www/vicidial_el/AST_agent_time_detail.php new file mode 100644 index 00000000..a98137e5 --- /dev/null +++ b/LANG_www/vicidial_el/AST_agent_time_detail.php @@ -0,0 +1,867 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 90522-0723 - First build +# 90908-1103 - Added DEAD time stats +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($stage)<2) {$stage='NAME';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + $TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL); + $TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/LANG_www/vicidial_el/AST_agent_time_sheet.php b/LANG_www/vicidial_el/AST_agent_time_sheet.php
index 75c4cbb0..4d26daed 100644
--- a/LANG_www/vicidial_el/AST_agent_time_sheet.php
+++ b/LANG_www/vicidial_el/AST_agent_time_sheet.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -9,9 +9,28 @@
 #            - Added required user/pass to gain access to this page
 # 80624-0132 - Added vicidial_timeclock entries
 # 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
 #
 
 require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
 
 $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
 $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
@@ -32,11 +51,12 @@ $user=$agent;
 $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
 $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
 
-	$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
-	if ($DB) {echo "|$stmt|\n";}
-	$rslt=mysql_query($stmt, $link);
-	$row=mysql_fetch_row($rslt);
-	$auth=$row[0];
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
 
   if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
 	{
@@ -64,9 +84,9 @@ if (!isset($query_date)) {$query_date = $NOW_DATE;}
 -->
  
 
-\n";
-echo "VICIDIAL: Agent Ώρα Φύλλο";
+echo "<TITLE>Agent Ώρα Φύλλο";
 
 
 ##### BEGIN Set variables to make header show properly #####
@@ -122,7 +142,7 @@ if ($DB) {echo "$stmt\n";}
 $row=mysql_fetch_row($rslt);
 $full_name = $row[0];
 
-echo "VICIDIAL: AgentΏρα Φύλλο                            $NOW_TIME\n";
+echo "AgentΏρα Φύλλο                            $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- ΧΕΙΡΙΣΤΗΣTIME SHEET: $agent - $full_name -------------\n\n";
@@ -136,120 +156,25 @@ if ($calls_summary)
 
 	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
 
-		$TOTAL_TIME_H = ($TOTAL_TIME / 3600);
-		$TOTAL_TIME_H = round($TOTAL_TIME_H, 2);
-		$TOTAL_TIME_H_int = intval("$TOTAL_TIME_H");
-		$TOTAL_TIME_M = ($TOTAL_TIME_H - $TOTAL_TIME_H_int);
-		$TOTAL_TIME_M = ($TOTAL_TIME_M * 60);
-		$TOTAL_TIME_M = round($TOTAL_TIME_M, 2);
-		$TOTAL_TIME_M_int = intval("$TOTAL_TIME_M");
-		$TOTAL_TIME_S = ($TOTAL_TIME_M - $TOTAL_TIME_M_int);
-		$TOTAL_TIME_S = ($TOTAL_TIME_S * 60);
-		$TOTAL_TIME_S = round($TOTAL_TIME_S, 0);
-		if ($TOTAL_TIME_S < 10) {$TOTAL_TIME_S = "0$TOTAL_TIME_S";}
-		if ($TOTAL_TIME_M_int < 10) {$TOTAL_TIME_M_int = "0$TOTAL_TIME_M_int";}
-		$TOTAL_TIME_HMS = "$TOTAL_TIME_H_int:$TOTAL_TIME_M_int:$TOTAL_TIME_S";
-		$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
 
-		$TALK_TIME_H = ($row[1] / 3600);
-		$TALK_TIME_H = round($TALK_TIME_H, 2);
-		$TALK_TIME_H_int = intval("$TALK_TIME_H");
-		$TALK_TIME_M = ($TALK_TIME_H - $TALK_TIME_H_int);
-		$TALK_TIME_M = ($TALK_TIME_M * 60);
-		$TALK_TIME_M = round($TALK_TIME_M, 2);
-		$TALK_TIME_M_int = intval("$TALK_TIME_M");
-		$TALK_TIME_S = ($TALK_TIME_M - $TALK_TIME_M_int);
-		$TALK_TIME_S = ($TALK_TIME_S * 60);
-		$TALK_TIME_S = round($TALK_TIME_S, 0);
-		if ($TALK_TIME_S < 10) {$TALK_TIME_S = "0$TALK_TIME_S";}
-		if ($TALK_TIME_M_int < 10) {$TALK_TIME_M_int = "0$TALK_TIME_M_int";}
-		$TALK_TIME_HMS = "$TALK_TIME_H_int:$TALK_TIME_M_int:$TALK_TIME_S";
-		$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
-
-		$PAUSE_TIME_H = ($row[3] / 3600);
-		$PAUSE_TIME_H = round($PAUSE_TIME_H, 2);
-		$PAUSE_TIME_H_int = intval("$PAUSE_TIME_H");
-		$PAUSE_TIME_M = ($PAUSE_TIME_H - $PAUSE_TIME_H_int);
-		$PAUSE_TIME_M = ($PAUSE_TIME_M * 60);
-		$PAUSE_TIME_M = round($PAUSE_TIME_M, 2);
-		$PAUSE_TIME_M_int = intval("$PAUSE_TIME_M");
-		$PAUSE_TIME_S = ($PAUSE_TIME_M - $PAUSE_TIME_M_int);
-		$PAUSE_TIME_S = ($PAUSE_TIME_S * 60);
-		$PAUSE_TIME_S = round($PAUSE_TIME_S, 0);
-		if ($PAUSE_TIME_S < 10) {$PAUSE_TIME_S = "0$PAUSE_TIME_S";}
-		if ($PAUSE_TIME_M_int < 10) {$PAUSE_TIME_M_int = "0$PAUSE_TIME_M_int";}
-		$PAUSE_TIME_HMS = "$PAUSE_TIME_H_int:$PAUSE_TIME_M_int:$PAUSE_TIME_S";
-		$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
-
-		$WAIT_TIME_H = ($row[5] / 3600);
-		$WAIT_TIME_H = round($WAIT_TIME_H, 2);
-		$WAIT_TIME_H_int = intval("$WAIT_TIME_H");
-		$WAIT_TIME_M = ($WAIT_TIME_H - $WAIT_TIME_H_int);
-		$WAIT_TIME_M = ($WAIT_TIME_M * 60);
-		$WAIT_TIME_M = round($WAIT_TIME_M, 2);
-		$WAIT_TIME_M_int = intval("$WAIT_TIME_M");
-		$WAIT_TIME_S = ($WAIT_TIME_M - $WAIT_TIME_M_int);
-		$WAIT_TIME_S = ($WAIT_TIME_S * 60);
-		$WAIT_TIME_S = round($WAIT_TIME_S, 0);
-		if ($WAIT_TIME_S < 10) {$WAIT_TIME_S = "0$WAIT_TIME_S";}
-		if ($WAIT_TIME_M_int < 10) {$WAIT_TIME_M_int = "0$WAIT_TIME_M_int";}
-		$WAIT_TIME_HMS = "$WAIT_TIME_H_int:$WAIT_TIME_M_int:$WAIT_TIME_S";
-		$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
-
-		$WRAPUP_TIME_H = ($row[7] / 3600);
-		$WRAPUP_TIME_H = round($WRAPUP_TIME_H, 2);
-		$WRAPUP_TIME_H_int = intval("$WRAPUP_TIME_H");
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_H - $WRAPUP_TIME_H_int);
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_M * 60);
-		$WRAPUP_TIME_M = round($WRAPUP_TIME_M, 2);
-		$WRAPUP_TIME_M_int = intval("$WRAPUP_TIME_M");
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_M - $WRAPUP_TIME_M_int);
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_S * 60);
-		$WRAPUP_TIME_S = round($WRAPUP_TIME_S, 0);
-		if ($WRAPUP_TIME_S < 10) {$WRAPUP_TIME_S = "0$WRAPUP_TIME_S";}
-		if ($WRAPUP_TIME_M_int < 10) {$WRAPUP_TIME_M_int = "0$WRAPUP_TIME_M_int";}
-		$WRAPUP_TIME_HMS = "$WRAPUP_TIME_H_int:$WRAPUP_TIME_M_int:$WRAPUP_TIME_S";
-		$pfWRAPUP_TIME_HMS =		sprintf("%8s", $WRAPUP_TIME_HMS);
-
-		$TALK_AVG_M = ($row[2] / 60);
-		$TALK_AVG_M = round($TALK_AVG_M, 2);
-		$TALK_AVG_M_int = intval("$TALK_AVG_M");
-		$TALK_AVG_S = ($TALK_AVG_M - $TALK_AVG_M_int);
-		$TALK_AVG_S = ($TALK_AVG_S * 60);
-		$TALK_AVG_S = round($TALK_AVG_S, 0);
-		if ($TALK_AVG_S < 10) {$TALK_AVG_S = "0$TALK_AVG_S";}
-		$TALK_AVG_MS = "$TALK_AVG_M_int:$TALK_AVG_S";
-		$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
-
-		$PAUSE_AVG_M = ($row[4] / 60);
-		$PAUSE_AVG_M = round($PAUSE_AVG_M, 2);
-		$PAUSE_AVG_M_int = intval("$PAUSE_AVG_M");
-		$PAUSE_AVG_S = ($PAUSE_AVG_M - $PAUSE_AVG_M_int);
-		$PAUSE_AVG_S = ($PAUSE_AVG_S * 60);
-		$PAUSE_AVG_S = round($PAUSE_AVG_S, 0);
-		if ($PAUSE_AVG_S < 10) {$PAUSE_AVG_S = "0$PAUSE_AVG_S";}
-		$PAUSE_AVG_MS = "$PAUSE_AVG_M_int:$PAUSE_AVG_S";
-		$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
-
-		$WAIT_AVG_M = ($row[6] / 60);
-		$WAIT_AVG_M = round($WAIT_AVG_M, 2);
-		$WAIT_AVG_M_int = intval("$WAIT_AVG_M");
-		$WAIT_AVG_S = ($WAIT_AVG_M - $WAIT_AVG_M_int);
-		$WAIT_AVG_S = ($WAIT_AVG_S * 60);
-		$WAIT_AVG_S = round($WAIT_AVG_S, 0);
-		if ($WAIT_AVG_S < 10) {$WAIT_AVG_S = "0$WAIT_AVG_S";}
-		$WAIT_AVG_MS = "$WAIT_AVG_M_int:$WAIT_AVG_S";
-		$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
-
-		$WRAPUP_AVG_M = ($row[8] / 60);
-		$WRAPUP_AVG_M = round($WRAPUP_AVG_M, 2);
-		$WRAPUP_AVG_M_int = intval("$WRAPUP_AVG_M");
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_M - $WRAPUP_AVG_M_int);
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_S * 60);
-		$WRAPUP_AVG_S = round($WRAPUP_AVG_S, 0);
-		if ($WRAPUP_AVG_S < 10) {$WRAPUP_AVG_S = "0$WRAPUP_AVG_S";}
-		$WRAPUP_AVG_MS = "$WRAPUP_AVG_M_int:$WRAPUP_AVG_S";
-		$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
 
 	echo "ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣTAKEN: $row[0]\n";
 	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
@@ -284,23 +209,11 @@ echo "LAST LOG ACTIVITY:    $row[0]\n";
 $end = $row[1];
 
 $login_time = ($end - $start);
-	$LOGIN_TIME_H = ($login_time / 3600);
-	$LOGIN_TIME_H = round($LOGIN_TIME_H, 2);
-	$LOGIN_TIME_H_int = intval("$LOGIN_TIME_H");
-	$LOGIN_TIME_M = ($LOGIN_TIME_H - $LOGIN_TIME_H_int);
-	$LOGIN_TIME_M = ($LOGIN_TIME_M * 60);
-	$LOGIN_TIME_M = round($LOGIN_TIME_M, 2);
-	$LOGIN_TIME_M_int = intval("$LOGIN_TIME_M");
-	$LOGIN_TIME_S = ($LOGIN_TIME_M - $LOGIN_TIME_M_int);
-	$LOGIN_TIME_S = ($LOGIN_TIME_S * 60);
-	$LOGIN_TIME_S = round($LOGIN_TIME_S, 0);
-	if ($LOGIN_TIME_S < 10) {$LOGIN_TIME_S = "0$LOGIN_TIME_S";}
-	if ($LOGIN_TIME_M_int < 10) {$LOGIN_TIME_M_int = "0$LOGIN_TIME_M_int";}
-	$LOGIN_TIME_HMS = "$LOGIN_TIME_H_int:$LOGIN_TIME_M_int:$LOGIN_TIME_S";
-	$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
 
 echo "-----------------------------------------\n";
-echo "TOTAL LOGGED-IN TIME:    $pfLOGIN_TIME_HMS\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
 
 
 ### timeclock records
@@ -354,20 +267,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f
 			{
 			$login_sec = $row[3];
 			$total_login_time = ($total_login_time + $login_sec);
-			$event_hours = ($login_sec / 3600);
-			$event_hours_int = round($event_hours, 2);
-			$event_hours_int = intval("$event_hours_int");
-			$event_minutes = ($event_hours - $event_hours_int);
-			$event_minutes = ($event_minutes * 60);
-			$event_minutes_int = round($event_minutes, 0);
-			if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";}
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
 			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
 			echo "<td align=right><font size=2>$manager_edit</td>";
 			echo "<td align=right><font size=2>$row[0]</td>";
 			echo "<td align=right><font size=2> $TC_log_date</td>\n";
 			echo "<td align=right><font size=2> $row[4]</td>\n";
 			echo "<td align=right><font size=2> $row[2]</td>\n";
-			echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int";
+			echo "<td align=right><font size=2> $event_hours_minutes";
 			if ($DB) {echo " - $total_login_time - $login_sec";}
 			echo "</td></tr>\n";
 			}
@@ -379,13 +287,7 @@ if (strlen($login_sec)<1)
 	$total_login_time = ($total_login_time + $login_sec);
 		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
 	}
-$total_login_hours = ($total_login_time / 3600);
-$total_login_hours_int = round($total_login_hours, 2);
-$total_login_hours_int = intval("$total_login_hours_int");
-$total_login_minutes = ($total_login_hours - $total_login_hours_int);
-$total_login_minutes = ($total_login_minutes * 60);
-$total_login_minutes_int = round($total_login_minutes, 0);
-if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
 
 	if ($DB) {echo " - $total_login_time - $login_sec";}
 
@@ -393,8 +295,8 @@ echo "<tr><td align=right><font size=2> </td>";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
-echo "<td align=right><font size=2><font size=2>TOTAL </td>\n";
-echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int  </td></tr>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
 
 echo "</TABLE>\n";
 
@@ -406,4 +308,4 @@ echo "</TABLE>\n";
 
 ?>
 
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
diff --git a/LANG_www/vicidial_el/AST_agent_timeclock_detail.php b/LANG_www/vicidial_el/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/LANG_www/vicidial_el/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
+$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
+
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
+	{
+    Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\"");
+    Header("HTTP/1.0 401 Unauthorized");
+    echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/LANG_www/vicidial_el/AST_inboundEXTstats.php b/LANG_www/vicidial_el/AST_inboundEXTstats.php index 77d6f8e4..5ddd431a 100644 --- a/LANG_www/vicidial_el/AST_inboundEXTstats.php +++ b/LANG_www/vicidial_el/AST_inboundEXTstats.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # 60421-1450 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60620-1322 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $inbound_to_print) --> -\n"; #echo"\n"; echo "ASTERISK: Στατιστικά Εισερχομένων Κλήσεων\n"; diff --git a/LANG_www/vicidial_el/AST_server_performance.php b/LANG_www/vicidial_el/AST_server_performance.php index 3d371111..02c6edc1 100644 --- a/LANG_www/vicidial_el/AST_server_performance.php +++ b/LANG_www/vicidial_el/AST_server_performance.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # - Fixed vertical scaling issues # 80118-1508 - Fixed horizontal scale marking issues # 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -24,6 +25,8 @@ if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"]; elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} @@ -82,9 +85,9 @@ while ($i < $servers_to_print) --> -\n"; -echo "VICIDIAL: Server Performance\n"; +echo "Server Performance Report\n"; $short_header=1; @@ -125,7 +128,7 @@ $query_date_BEGIN = $begin_query_time; $query_date_END = $end_query_time; -echo "VICIDIAL: Server Performance $NOW_TIME\n"; +echo "Server Performance Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- TOTALS, PEAKS and AVERAGES\n"; diff --git a/LANG_www/vicidial_el/AST_timeonVDAD.php b/LANG_www/vicidial_el/AST_timeonVDAD.php index 11bf3ae8..2d87dafa 100644 --- a/LANG_www/vicidial_el/AST_timeonVDAD.php +++ b/LANG_www/vicidial_el/AST_timeonVDAD.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -13,6 +13,7 @@ # 80422-0305 - Added phone login to display, lower font size to 2 # 81013-2227 - Fixed Remote Agent display bug # 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -77,7 +78,7 @@ if ($reset_counter > 7) -\n"; echo " -\n"; echo"\n"; -echo "VICIDIAL: Time On VDAD\n"; +echo "Server-Specific Real-Time Report\n"; $short_header=1; @@ -143,7 +144,7 @@ echo "SERVER: $server_ip\n"; if ($closer_display>0) {$closer_display_reverse=0; $closer_reverse_link='DEFAULT';} else {$closer_display_reverse=1; $closer_reverse_link='CLOSER';} -echo "VICIDIAL: Agents Time On Calls $NOW_TIME $closer_reverse_link | ΑΝΑΦΟΡΕΣ\n\n"; +echo "Πράκτορες Time On Calls $NOW_TIME $closer_reverse_link | ΑΝΑΦΟΡΕΣ\n\n"; if ($closer_display>0) { @@ -364,7 +365,7 @@ $talking_to_print = mysql_num_rows($rslt); #echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Time On VDAD TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; +echo "Server-Specific Real-Time Report TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; echo "| CHANNEL | STATUS | CAMPAIGN | PHONE NUMBER | CALLTIME | MINUTES |\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; diff --git a/LANG_www/vicidial_el/AST_timeonVDADall.php b/LANG_www/vicidial_el/AST_timeonVDADall.php index 9821af6f..a92de3a6 100644 --- a/LANG_www/vicidial_el/AST_timeonVDADall.php +++ b/LANG_www/vicidial_el/AST_timeonVDADall.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -45,14 +45,29 @@ # 90105-1153 - Changed monitor links to use 0 prefix instead of 6 # 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option # 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended # -$version = '2.0.5-36'; -$build = '90310-0906'; + +$version = '2.2.0-49'; +$build = '91204-1548'; header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -97,6 +112,11 @@ if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdispl elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -115,13 +135,14 @@ while ($i < $qm_conf_ct) ##### END SETTINGS LOOKUP ##### ########################################### +if (!isset($DB)) {$DB=0;} if (!isset($RR)) {$RR=40;} if (!isset($group)) {$group='';} if (!isset($usergroup)) {$usergroup='';} if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes -if (!isset($UidORname)) {$UidORname=0;} # 0=id, 1=name +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name if (!isset($orderby)) {$orderby='timeup';} -if (!isset($SERVdisplay)) {$SERVdisplay=1;} # 0=no, 1=yes +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes @@ -138,50 +159,66 @@ $ingroup_detail=''; if (strlen($group)>1) {$groups[0] = $group; $RR=40;} else {$group = $groups[0];} -function get_server_load($windows = false) { -$os = strtolower(PHP_OS); -if(strpos($os, "win") === false) { -if(file_exists("/proc/loadavg")) { -$load = file_get_contents("/proc/loadavg"); -$load = explode(' ', $load); -return $load[0]; -} -elseif(function_exists("shell_exec")) { -$load = explode(' ', `uptime`); -return $load[count($load)-1]; -} -else { -return false; -} -} -elseif($windows) { -if(class_exists("COM")) { -$wmi = new COM("WinMgmts:\\\\."); -$cpus = $wmi->InstancesOf("Win32_Processor"); +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); -$cpuload = 0; -$i = 0; -while ($cpu = $cpus->Next()) { -$cpuload += $cpu->LoadPercentage; -$i++; -} + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } -$cpuload = round($cpuload / $i, 2); -return "$cpuload%"; -} -else { -return false; -} -} -} + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } $load_ave = get_server_load(true); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); @@ -195,17 +232,18 @@ $auth=$row[0]; echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - -$NOW_TIME = date("Y-m-d H:i:s"); -$NOW_DAY = date("Y-m-d"); -$NOW_HOUR = date("H:i:s"); -$STARTtime = date("U"); -$epochSIXhoursAGO = ($STARTtime - 21600); -$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } $stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; $rslt=mysql_query($stmt, $link); -if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; @@ -230,21 +268,32 @@ while($i < $group_ct) $groupQS .= "&groups[]=$groups[$i]"; $i++; } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) { + $all_active = 0; $group_SQL = "''"; -# $group_SQL = "group_id IN('')"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; } else { - $group_SQL = eregi_replace(",$",'',$group_SQL); -# $group_SQL = "group_id IN($group_SQL)"; + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; } -#if ( (eregi('ALL-ACTIVE',$group_string)) and ($with_inbound=='O') and ($outbound_autodial_active > 0) ) -# {$with_inbound='N';} -$stmt="select * from vicidial_user_groups;"; +$stmt="select user_group from vicidial_user_groups;"; $rslt=mysql_query($stmt, $link); if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} @@ -265,14 +314,14 @@ $F=''; $FG=''; $B=''; $BG=''; $select_list = ""; $select_list .= "
Select Εκστρατείες:
"; $select_list .= ""; $select_list .= "
(Για να επιλέξετε περισσότερα από 1 εκστρατείας, κρατήστε πατημένο το πλήκτρο Ctrl και κάντε κλικ)"; @@ -284,12 +333,12 @@ if ($UGdisplay > 0) $select_list .= "Select Ομάδα Χρήστη:
"; $select_list .= "

"; } @@ -306,6 +355,26 @@ $select_list .= "
"; @@ -323,18 +392,229 @@ $open_list = "< \n"; -$stmt = "select count(*) from vicidial_campaigns where campaign_id IN($group_SQL) and campaign_allow_inbound='Y';"; +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $campaign_allow_inbound = $row[0]; echo "\n"; -echo"\n"; -echo "VICIDIAL: Time On VDAD Εκστρατεία: $group\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; $short_header=1; @@ -397,9 +678,11 @@ echo "VICIDIAL: Time On VDAD Εκστρατεία: $group< echo "
"; -echo "
\n"; +echo "\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -411,15 +694,18 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL Real-Time                                                                          \n"; -echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; echo "
\n"; echo "Επιλογές εμφάνισης Επιλέξτε Έκθεση"; echo "
\n"; echo "
\n"; -echo "STOP | "; -echo "SLOW | "; -echo "GO"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; if (eregi('ALL-ACTIVE',$group_string)) { echo "       ΤΡΟΠΟΠΟΙΗΣΗ | \n"; @@ -436,14 +722,30 @@ if (!$group) {echo "

please select a campaign from the pulldown above $c) { - $multi_drop++; - $stmt = "select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); $ccamps_to_print = mysql_num_rows($rslt); + $c=0; while ($ccamps_to_print > $c) { $row=mysql_fetch_row($rslt); @@ -453,8 +755,19 @@ if (ereg('O',$with_inbound)) $closer_campaignsSQL .= "'$closer_campaigns',"; $c++; } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; if ($adastats>1) { @@ -569,16 +882,19 @@ if (ereg('O',$with_inbound)) } - $stmt="select agent_pause_codes_active from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; if (eregi('ALL-ACTIVE',$group_string)) { - $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats;"; + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; } - $stmtC="select agent_non_pause_sec from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} @@ -696,10 +1012,13 @@ else { if (eregi('ALL-ACTIVE',$group_string)) { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} $multi_drop++; - $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns;"; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; - $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats;"; + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; } else { @@ -708,29 +1027,15 @@ else if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) { $multi_drop++; - $stmt = "select distinct closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} - $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; } else { - $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; } @@ -758,16 +1063,11 @@ else $CALLtime = $row[16]; $DIALtimeout = $row[17]; $DIALstatuses = $row[18]; - $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); - $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; - $stmt="select count(*) from vicidial_hopper where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select count(*) from vicidial_hopper;"; - } + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $VDhop = $row[0]; @@ -809,15 +1109,29 @@ else } else {$diffpctONEMIN = '0.00';} - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats;"; - } + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $balanceSHORT = $row[0]; + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Κατάλογος Mix: $row[0]"; + $DIALorder = "Κατάλογος Mix: $row[0]"; + } + } + echo "
"; echo ""; echo ""; @@ -890,59 +1204,59 @@ echo "$ingroup_detail"; if ($adastats<2) { - echo "+ VIEW MORE"; + echo "+ VIEW MORE"; } else { - echo "+ VIEW LESS"; + echo "+ VIEW LESS"; } if ($UGdisplay>0) { - echo "       ΑΠΟΚΡΥΨΗ ΟΜΑΔΑ ΧΡΗΣΤΩΝ"; + echo "       ΑΠΟΚΡΥΨΗ ΟΜΑΔΑ ΧΡΗΣΤΩΝ"; } else { - echo "       VIEW ΟΜΑΔΑ ΧΡΗΣΤΩΝ"; + echo "       VIEW ΟΜΑΔΑ ΧΡΗΣΤΩΝ"; } if ($UidORname>0) { - echo "       ΕΜΦΑΝΙΣΗ ΧΕΙΡΙΣΤΗΣID"; + echo "       ΕΜΦΑΝΙΣΗ ΧΕΙΡΙΣΤΗΣID"; } else { - echo "       ΕΜΦΑΝΙΣΗ ΧΕΙΡΙΣΤΗΣNAME"; + echo "       ΕΜΦΑΝΙΣΗ ΧΕΙΡΙΣΤΗΣNAME"; } if ($SERVdisplay>0) { - echo "       ΑΠΟΚΡΥΨΗ ΔΙΑΚΟΜΙΣΤΗΣ INFO"; + echo "       ΑΠΟΚΡΥΨΗ ΔΙΑΚΟΜΙΣΤΗΣ INFO"; } else { - echo "       ΕΜΦΑΝΙΣΗ ΔΙΑΚΟΜΙΣΤΗΣ INFO"; + echo "       ΕΜΦΑΝΙΣΗ ΔΙΑΚΟΜΙΣΤΗΣ INFO"; } if ($CALLSdisplay>0) { - echo "       ΑΠΟΚΡΥΨΗ WAITING CALLS"; + echo "       ΑΠΟΚΡΥΨΗ WAITING CALLS"; } else { - echo "       ΕΜΦΑΝΙΣΗ WAITING CALLS"; + echo "       ΕΜΦΑΝΙΣΗ WAITING CALLS"; } if ($PHONEdisplay>0) { - echo "       ΑΠΟΚΡΥΨΗ PHONES"; + echo "       ΑΠΟΚΡΥΨΗ PHONES"; } else { - echo "       ΕΜΦΑΝΙΣΗ PHONES"; + echo "       ΕΜΦΑΝΙΣΗ PHONES"; } if ($CUSTPHONEdisplay>0) { - echo "       ΑΠΟΚΡΥΨΗ CUSTPHONES"; + echo "       ΑΠΟΚΡΥΨΗ CUSTPHONES"; } else { - echo "       ΕΜΦΑΝΙΣΗ CUSTPHONES"; + echo "       ΕΜΦΑΝΙΣΗ CUSTPHONES"; } echo ""; echo ""; @@ -955,34 +1269,15 @@ echo "\n\n"; ################################################################################### if ($campaign_allow_inbound > 0) { - $stmt="select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - $closer_campaignsSQL=''; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (campaign_id IN($group_SQL) and call_type IN('OUT','OUTBALANCE')) ) order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; } else { - if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} - else {$UgroupSQL = " and campaign_id IN($group_SQL)";} - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $UgroupSQL order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; } if ($CALLSdisplay > 0) { - $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority"; + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; } else { @@ -991,6 +1286,7 @@ else $k=0; +$agentonlycount=0; $stmt = "$stmtA $stmtB"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} @@ -1019,6 +1315,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1037,6 +1335,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1089,11 +1389,13 @@ $parked_to_print = mysql_num_rows($rslt); ################################################################################### ###### CALLS WAITING ################################################################################### - +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} $Cecho = ''; $Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; -$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ |\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ | $agentonlyheader\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; $p=0; @@ -1105,24 +1407,23 @@ while($p<$k) $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); - $Ccall_time_M = ($Ccall_time_S / 60); - $Ccall_time_M = round($Ccall_time_M, 2); - $Ccall_time_M_int = intval("$Ccall_time_M"); - $Ccall_time_SEC = ($Ccall_time_M - $Ccall_time_M_int); - $Ccall_time_SEC = ($Ccall_time_SEC * 60); - $Ccall_time_SEC = round($Ccall_time_SEC, 0); - if ($Ccall_time_SEC < 10) {$Ccall_time_SEC = "0$Ccall_time_SEC";} - $Ccall_time_MS = "$Ccall_time_M_int:$Ccall_time_SEC"; + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); $G = ''; $EG = ''; if ($CDcall_type[$p] == 'IN') { - $G=""; $EG=''; + $G=""; $EG=''; } - $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG |\n"; + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; $p++; } @@ -1159,39 +1460,41 @@ if ($campaignord=='campaignup') {$campaignord='campaigndown';} else {$campaignord='campaignup';} $Aecho = ''; -$Aecho .= "VICIDIAL: Agents Time On Calls Εκστρατεία: $group_string $NOW_TIME\n"; +$Aecho .= "VICIDIAL: Πράκτορες Time On Calls Εκστρατεία: $group_string $NOW_TIME\n"; $HDbegin = "+"; $HTbegin = "|"; -$HDstation = "------------+"; -$HTstation = " STATION |"; -$HDphone = "------------+"; -$HTphone = " PHONE |"; -$HDuser = "--------------------+"; -$HTuser = " USER |"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; $HDusergroup = "--------------+"; -$HTusergroup = " ΟΜΑΔΑ ΧΡΗΣΤΩΝ |"; +$HTusergroup = " ΟΜΑΔΑ ΧΡΗΣΤΩΝ |"; $HDsessionid = "------------------+"; $HTsessionid = " SESSIONID |"; $HDbarge = "-------+"; $HTbarge = " BARGE |"; $HDstatus = "----------+"; $HTstatus = " STATUS |"; -$HDcustphone = "------------+"; -$HTcustphone = " CUST PHONE |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; $HDserver_ip = "-----------------+"; $HTserver_ip = " ΔΙΑΚΟΜΙΣΤΗΣ IP |"; $HDcall_server_ip = "-----------------+"; $HTcall_server_ip = " CALL ΔΙΑΚΟΜΙΣΤΗΣ IP |"; $HDtime = "---------+"; -$HTtime = " MM:SS |"; +$HTtime = " MM:SS |"; $HDcampaign = "------------+"; -$HTcampaign = " CAMPAIGN |"; +$HTcampaign = " CAMPAIGN |"; $HDcalls = "-------+"; $HTcalls = " CALLS |"; $HDpause = ''; $HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; if (!ereg("N",$agent_pause_codes_active)) { @@ -1215,12 +1518,12 @@ if ($UGdisplay < 1) $HDusergroup = ''; $HTusergroup = ''; } -if ( ($SIPmonitorLINK<1) && ($IAXmonitorLINK<1) ) +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) { $HDsessionid = "-----------+"; $HTsessionid = " SESSIONID |"; } -if ( ($SIPmonitorLINK<2) && ($IAXmonitorLINK<2) ) +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) { $HDbarge = ''; $HTbarge = ''; @@ -1235,8 +1538,8 @@ if ($SERVdisplay < 1) -$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls\n"; -$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls\n"; +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; $Aecho .= "$Aline"; $Aecho .= "$Bline"; $Aecho .= "$Aline"; @@ -1265,7 +1568,7 @@ else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} if (strlen($usergroup)<1) {$usergroupSQL = '';} else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} -$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); @@ -1291,6 +1594,7 @@ $talking_to_print = mysql_num_rows($rslt); $Acalls_today[$i] = $row[12]; $Acallerid[$i] = $row[13]; $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; $i++; } @@ -1352,6 +1656,12 @@ $calls_to_list = mysql_num_rows($rslt); $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); $exten = "extension='$dialplan'"; } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; $rslt=mysql_query($stmt, $link); @@ -1396,9 +1706,9 @@ $calls_to_list = mysql_num_rows($rslt); $phone_split = explode("-----",$Alogin[$j]); $i = $phone_split[1]; - if (eregi("READY|PAUSED",$Astatus[$i])) + if (eregi("READY|PAUSED",$Astatus[$i])) { - $Acall_time[$i]=$Acall_finish[$i]; + $Acall_time[$i]=$Astate_change[$i]; if ($Alead_id[$i] > 0) { @@ -1407,27 +1717,28 @@ $calls_to_list = mysql_num_rows($rslt); $status = ' DISPO'; } } - if ($non_latin < 1) + if ($non_latin < 1) { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-10s", $extension); - while(strlen($extension)>10) {$extension = substr("$extension", 0, -1);} + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} } - else + else { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-40s", $extension); - while(mb_strlen($extension, 'utf-8')>10) {$extension = mb_substr("$extension", 0, -1,'utf8');} + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} } - $phone = sprintf("%-10s", $phone_split[0]); - $custphone = sprintf("%-10s", $custphone); + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); $Luser = $Auser[$i]; - $user = sprintf("%-18s", $Auser[$i]); + $user = sprintf("%-20s", $Auser[$i]); $Lsessionid = $Asessionid[$i]; $sessionid = sprintf("%-9s", $Asessionid[$i]); $Lstatus = $Astatus[$i]; $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; $server_ip = sprintf("%-15s", $Aserver_ip[$i]); $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); @@ -1441,12 +1752,27 @@ $calls_to_list = mysql_num_rows($rslt); if (eregi("INCALL",$Lstatus)) { - ### temporarily deactivate DEAD calls display until bug is fixed - if (!ereg("$Acallerid[$i]\|",$callerids)) + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) { - $Astatus[$i] = 'DEAD'; - $Lstatus = 'DEAD'; - $status = ' DEAD '; + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } } if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) @@ -1463,12 +1789,12 @@ $calls_to_list = mysql_num_rows($rslt); if ($UGdisplay > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { $user_group = sprintf("%-12s", $Auser_group[$i]); while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} } - else + else { $user_group = sprintf("%-40s", $Auser_group[$i]); while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} @@ -1476,42 +1802,35 @@ $calls_to_list = mysql_num_rows($rslt); } if ($UidORname > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { - $user = sprintf("%-18s", $Afull_name[$i]); - while(strlen($user)>18) {$user = substr("$user", 0, -1);} + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} } - else + else { - $user = sprintf("%-40s", $Afull_name[$i]); - while(mb_strlen($user, 'utf-8')>18) {$user = mb_substr("$user", 0, -1,'utf8');} + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} } } - if (!eregi("INCALL|QUEUE",$Astatus[$i])) - {$call_time_S = ($STARTtime - $Acall_finish[$i]);} + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} else {$call_time_S = ($STARTtime - $Acall_time[$i]);} - $call_time_M = ($call_time_S / 60); - $call_time_M = round($call_time_M, 2); - $call_time_M_int = intval("$call_time_M"); - $call_time_SEC = ($call_time_M - $call_time_M_int); - $call_time_SEC = ($call_time_SEC * 60); - $call_time_SEC = round($call_time_SEC, 0); - if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} - $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sec_convert($call_time_S,'M'); $call_time_MS = sprintf("%7s", $call_time_MS); $G = ''; $EG = ''; - if ($Lstatus=='INCALL') + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) { if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} - # if ($call_time_M_int >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} } if ($Lstatus=='DEAD') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { @@ -1522,15 +1841,15 @@ $calls_to_list = mysql_num_rows($rslt); } if ($Lstatus=='DISPO') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } if ($Lstatus=='PAUSED') @@ -1546,27 +1865,27 @@ $calls_to_list = mysql_num_rows($rslt); else {$pausecode='';} - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } # if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) # {$G=''; $EG='';} - if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) { $G=''; $EG=''; - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } $L=''; @@ -1575,6 +1894,10 @@ $calls_to_list = mysql_num_rows($rslt); if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} if ($SIPmonitorLINK>1) {$R=" | BARGE";} if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} else {$CP = "";} @@ -1586,31 +1909,31 @@ $calls_to_list = mysql_num_rows($rslt); else {$SVD = "";} if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} - else {$phoneD = "";} + else {$phoneD = " ";} $vac_stage=''; $vac_campaign=''; $INGRP=''; if ($CM == 'I') { - $stmt="select campaign_id,stage from vicidial_auto_calls where callerid='$Acallerid[$i]' LIMIT 1;"; + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $ingrp_to_print = mysql_num_rows($rslt); if ($ingrp_to_print > 0) { $row=mysql_fetch_row($rslt); - $vac_campaign = sprintf("%-20s", $row[0]); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); $row[1] = eregi_replace(".*-",'',$row[1]); $vac_stage = sprintf("%-4s", $row[1]); } - $INGRP = " $G$vac_stage$EG $G$vac_campaign$EG "; + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; } $agentcount++; - $Aecho .= "| $G$extension$EG |$phoneD $G$user$EG |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG+ |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; $j++; } diff --git a/LANG_www/vicidial_el/AST_timeonVDADallSUMMARY.php b/LANG_www/vicidial_el/AST_timeonVDADallSUMMARY.php index db0b93b8..c0f77c90 100644 --- a/LANG_www/vicidial_el/AST_timeonVDADallSUMMARY.php +++ b/LANG_www/vicidial_el/AST_timeonVDADallSUMMARY.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -15,6 +15,7 @@ # 71029-1900 - Changed CLOSER-type to not require campaign_id restriction # 80525-1040 - Added IVR status summary display for inbound calls # 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -103,10 +104,10 @@ if (!isset($RR)) {$RR=4;} --> -\n"; -echo "VICIDIAL: Realtime All Εκστρατείες Summary\n"; +echo "Real-Time All Εκστρατείες Summary\n"; $short_header=1; @@ -114,7 +115,7 @@ echo "VICIDIAL: Realtime All Εκστρατείες Summary
DIAL ΕΠΙΠΕΔΟ:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL    
"; -echo "VICIDIAL: Realtime All Εκστρατείες Summary           \n"; +echo "Real-Time All Εκστρατείες Summary           \n"; echo "STOP | "; echo "SLOW | "; echo "GO "; diff --git a/LANG_www/vicidial_el/AST_timeonpark.php b/LANG_www/vicidial_el/AST_timeonpark.php index b21f49fc..c373de42 100644 --- a/LANG_www/vicidial_el/AST_timeonpark.php +++ b/LANG_www/vicidial_el/AST_timeonpark.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60620-1042 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -83,7 +84,7 @@ if ($reset_counter > 7) --> -\n"; echo"\n"; echo "VICIDIAL: Time On Park\n"; @@ -154,7 +155,7 @@ $parked_to_print = mysql_num_rows($rslt); echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Agents Time On Inbound Calls $NOW_TIME\n\n"; +echo "VICIDIAL: Πράκτορες Time On Inbound Calls $NOW_TIME\n\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; echo "| STATION | USER | CHANNEL | GROUP | START TIME | MINUTES |\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; diff --git a/LANG_www/vicidial_el/admin.php b/LANG_www/vicidial_el/admin.php index e91c056d..1ea589bc 100644 --- a/LANG_www/vicidial_el/admin.php +++ b/LANG_www/vicidial_el/admin.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -38,6 +38,9 @@ $reports_color = '#99FF33'; $carriers_color = '#FF33FF'; $settings_color = '#FF33FF'; $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; $subcamp_color = '#FF9933'; $users_font = 'BLACK'; $campaigns_font = 'BLACK'; @@ -55,6 +58,9 @@ $reports_font = 'BLACK'; $server_font = 'BLACK'; $settings_font = 'BLACK'; $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; $subcamp_font = 'BLACK'; ### comment this section out for colorful section headings @@ -77,6 +83,9 @@ $reports_color = '#E6E6E6'; $carriers_color = '#C6C6C6'; $settings_color = '#C6C6C6'; $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; $subcamp_color = '#C6C6C6'; ### @@ -954,7 +963,208 @@ if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enfor elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} - +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -967,12 +1177,11 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -980,7 +1189,9 @@ while ($i < $qm_conf_ct) $SSenable_vtiger_integration = $row[2]; $SSqc_features_active = $row[3]; $SSoutbound_autodial_active = $row[4]; - $i++; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -992,476 +1203,601 @@ while ($i < $qm_conf_ct) ###################################################################################################### if ($non_latin < 1) -{ -### DIGITS ONLY ### -$adaptive_dropped_percentage = ereg_replace("[^0-9]","",$adaptive_dropped_percentage); -$adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); -$admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); -$admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); -$admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); -$AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); -$agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); -$agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); -$agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); -$AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); -$allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); -$alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); -$am_message_exten = ereg_replace("[^0-9]","",$am_message_exten); -$answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); -$ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); -$ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); -$attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); -$attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); -$auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); -$balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); -$call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); -$CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); -$campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); -$campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); -$campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); -$change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); -$closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); -$conf_exten = ereg_replace("[^0-9]","",$conf_exten); -$conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); -$conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); -$ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); -$ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); -$ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); -$ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); -$ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); -$ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); -$ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); -$ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); -$ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); -$ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); -$ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); -$ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); -$ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); -$ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); -$ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); -$ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); -$DBX_port = ereg_replace("[^0-9]","",$DBX_port); -$DBY_port = ereg_replace("[^0-9]","",$DBY_port); -$dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); -$delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); -$delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); -$delete_filters = ereg_replace("[^0-9]","",$delete_filters); -$delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); -$delete_lists = ereg_replace("[^0-9]","",$delete_lists); -$delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); -$delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); -$delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); -$delete_users = ereg_replace("[^0-9]","",$delete_users); -$dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); -$dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); -$drop_call_seconds = ereg_replace("[^0-9]","",$drop_call_seconds); -$enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); -$enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); -$fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); -$hopper_level = ereg_replace("[^0-9]","",$hopper_level); -$hotkey = ereg_replace("[^0-9]","",$hotkey); -$hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); -$list_id = ereg_replace("[^0-9]","",$list_id); -$load_leads = ereg_replace("[^0-9]","",$load_leads); -$max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); -$modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); -$modify_users = ereg_replace("[^0-9]","",$modify_users); -$modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); -$modify_lists = ereg_replace("[^0-9]","",$modify_lists); -$modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); -$modify_filters = ereg_replace("[^0-9]","",$modify_filters); -$modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); -$modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); -$modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); -$modify_servers = ereg_replace("[^0-9]","",$modify_servers); -$view_reports = ereg_replace("[^0-9]","",$view_reports); -$modify_leads = ereg_replace("[^0-9]","",$modify_leads); -$monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); -$number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); -$old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); -$outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); -$park_ext = ereg_replace("[^0-9]","",$park_ext); -$park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -$QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); -$recording_exten = ereg_replace("[^0-9]","",$recording_exten); -$remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); -$telnet_port = ereg_replace("[^0-9]","",$telnet_port); -$updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); -$user_level = ereg_replace("[^0-9]","",$user_level); -$user_start = ereg_replace("[^0-9]","",$user_start); -$user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); -$VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); -$VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); -$vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); -$vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); -$voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); -$voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); -$voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); -$voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); -$voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); -$wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); -$use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); -$webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); -$enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); -$enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); -$allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); -$mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); -$prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); -$agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); -$manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); -$qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); -$qc_pass = ereg_replace("[^0-9]","",$qc_pass); -$qc_finish = ereg_replace("[^0-9]","",$qc_finish); -$qc_commit = ereg_replace("[^0-9]","",$qc_commit); -$shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); -$timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); -$survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); -$add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); -$modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); -$delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); -$vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); -$vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); -$hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); -$hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); -$did_id = ereg_replace("[^0-9]","",$did_id); -$source_did = ereg_replace("[^0-9]","",$source_did); -$modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); -$delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); -$answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); -$answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); -$enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); -$qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); -$outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); -$download_lists = ereg_replace("[^0-9]","",$download_lists); -$caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); -$outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); -$manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); -$export_reports = ereg_replace("[^0-9]","",$export_reports); + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); -### DIGITS and COLONS -$shift_length = ereg_replace("[^\:0-9]","",$shift_length); + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); -### DIGITS and HASHES and STARS -$survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); -$survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); -### DIGITS and DASHES -$group_rank = ereg_replace("[^-0-9]","",$group_rank); -$campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); -$queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); -### DIGITS and NEWLINES -$phone_numbers = ereg_replace("[^\n0-9]","",$phone_numbers); + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); -### Y or N ONLY ### -$active = ereg_replace("[^NY]","",$active); -$allow_closers = ereg_replace("[^NY]","",$allow_closers); -$reset_hopper = ereg_replace("[^NY]","",$reset_hopper); -$amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); -$alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); -$selectable = ereg_replace("[^NY]","",$selectable); -$reset_list = ereg_replace("[^NY]","",$reset_list); -$fronter_display = ereg_replace("[^NY]","",$fronter_display); -$use_internal_dnc = ereg_replace("[^NY]","",$use_internal_dnc); -$use_campaign_dnc = ereg_replace("[^NY]","",$use_campaign_dnc); -$omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); -$available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); -$sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); -$vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); -$vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); -$campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); -$disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); -$no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); -$human_answered = ereg_replace("[^NY]","",$human_answered); -$tovdad_display = ereg_replace("[^NY]","",$tovdad_display); -$campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); -$disable_alter_custphone = ereg_replace("[^NY]","",$disable_alter_custphone); -$display_queue_count = ereg_replace("[^NY]","",$display_queue_count); -$qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); -$sale_category = ereg_replace("[^NY]","",$sale_category); -$dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); -$agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); -$play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); -$play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); -$no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); -$did_active = ereg_replace("[^NY]","",$did_active); -$active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); -$generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); -$rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); -$agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); -$qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + ### Y or N ONLY ### + $allow_closers = ereg_replace("[^NY]","",$allow_closers); + $reset_hopper = ereg_replace("[^NY]","",$reset_hopper); + $amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); + $alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); -### ALPHA-NUMERIC ONLY ### -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); -$submit = ereg_replace("[^0-9a-zA-Z]","",$submit); -$campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); -$get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); -$campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); -$ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); -$dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); -$state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); -$scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); -$concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); -$billable = ereg_replace("[^0-9a-zA-Z]","",$billable); -$pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); -$vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); -$ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); -$queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); -$after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); -$after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); -$qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); -$code = ereg_replace("[^0-9a-zA-Z]","",$code); -$survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); -$survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); -$qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); -$agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); -$three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); -$shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); -$agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); + $get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); + $campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); + $ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); + $dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); + $state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); -### DIGITS and Dots -$server_ip = ereg_replace("[^\.0-9]","",$server_ip); -$auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); -$adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); -$phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); -$old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); -$computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); -$queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); -$vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); -### ALPHA-NUMERIC and spaces and hash and star and comma -$xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); -$xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); -### ALPHACAPS-NUMERIC -$xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); -$xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); -### ALPHA-NUMERIC and underscore and dash -$agi_output = ereg_replace("[^-\_0-9a-zA-Z]","",$agi_output); -$ASTmgrSECRET = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrSECRET); -$ASTmgrUSERNAME = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAME); -$ASTmgrUSERNAMElisten = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); -$ASTmgrUSERNAMEsend = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); -$ASTmgrUSERNAMEupdate = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); -$call_time_id = ereg_replace("[^-\_0-9a-zA-Z]","",$call_time_id); -$campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); -$CoNfIrM = ereg_replace("[^-\_0-9a-zA-Z]","",$CoNfIrM); -$DBX_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_database); -$DBX_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_pass); -$DBX_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_user); -$DBY_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_database); -$DBY_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_pass); -$DBY_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_user); -$dial_method = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_method); -$dial_status_a = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_a); -$dial_status_b = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_b); -$dial_status_c = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_c); -$dial_status_d = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_d); -$dial_status_e = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_e); -$ext_context = ereg_replace("[^-\_0-9a-zA-Z]","",$ext_context); -$group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_id); -$lead_filter_id = ereg_replace("[^-\_0-9a-zA-Z]","",$lead_filter_id); -$local_call_time = ereg_replace("[^-\_0-9a-zA-Z]","",$local_call_time); -$login = ereg_replace("[^-\_0-9a-zA-Z]","",$login); -$login_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$login_campaign); -$login_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$login_pass); -$login_user = ereg_replace("[^-\_0-9a-zA-Z]","",$login_user); -$next_agent_call = ereg_replace("[^-\_0-9a-zA-Z]","",$next_agent_call); -$old_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_campaign_id); -$old_server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_server_id); -$OLDuser_group = ereg_replace("[^-\_0-9a-zA-Z]","",$OLDuser_group); -$park_file_name = ereg_replace("[^-\_0-9a-zA-Z]","",$park_file_name); -$pass = ereg_replace("[^-\_0-9a-zA-Z]","",$pass); -$phone_login = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_login); -$phone_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_pass); -$PHP_AUTH_PW = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_PW); -$PHP_AUTH_USER = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_USER); -$protocol = ereg_replace("[^-\_0-9a-zA-Z]","",$protocol); -$server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$server_id); -$stage = ereg_replace("[^-\_0-9a-zA-Z]","",$stage); -$state_rule = ereg_replace("[^-\_0-9a-zA-Z]","",$state_rule); -$status = ereg_replace("[^-\_0-9a-zA-Z]","",$status); -$trunk_restriction = ereg_replace("[^-\_0-9a-zA-Z]","",$trunk_restriction); -$user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); -$user_group = ereg_replace("[^-\_0-9a-zA-Z]","",$user_group); -$VICIDIAL_park_on_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); -$auto_alt_dial = ereg_replace("[^-\_0-9a-zA-Z]","",$auto_alt_dial); -$dial_status = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status); -$queuemetrics_eq_prepend = ereg_replace("[^-\_0-9a-zA-Z]","",$queuemetrics_eq_prepend); -$vicidial_agent_disable = ereg_replace("[^-\_0-9a-zA-Z]","",$vicidial_agent_disable); -$alter_custdata_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custdata_override); -$list_order_mix = ereg_replace("[^-\_0-9a-zA-Z]","",$list_order_mix); -$vcl_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vcl_id); -$mix_method = ereg_replace("[^-\_0-9a-zA-Z]","",$mix_method); -$category = ereg_replace("[^-\_0-9a-zA-Z]","",$category); -$vsc_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vsc_id); -$moh_context = ereg_replace("[^-\_0-9a-zA-Z]","",$moh_context); -$agent_alert_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_alert_exten); -$source_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_campaign_id); -$source_user_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_user_id); -$source_group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_group_id); -$default_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$default_xfer_group); -$drop_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_exten); -$safe_harbor_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$safe_harbor_exten); -$drop_action = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_action); -$drop_inbound_group = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_inbound_group); -$afterhours_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$afterhours_xfer_group); -$after_hours_action = ereg_replace("[^-\_0-9a-zA-Z]","",$after_hours_action); -$alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$alias_id); -$shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$shift_id); -$qc_shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$qc_shift_id); -$survey_first_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_first_audio_file); -$survey_opt_in_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_opt_in_audio_file); -$survey_ni_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_ni_audio_file); -$survey_method = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_method); -$alter_custphone_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custphone_override); -$manual_dial_filter = ereg_replace("[^-\_0-9a-zA-Z]","",$manual_dial_filter); -$agent_clipboard_copy = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_clipboard_copy); -$hold_time_option = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option); -$hold_time_option_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_xfer_group); -$hold_recall_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_recall_xfer_group); -$play_welcome_message = ereg_replace("[^-\_0-9a-zA-Z]","",$play_welcome_message); -$did_route = ereg_replace("[^-\_0-9a-zA-Z]","",$did_route); -$user_unavailable_action = ereg_replace("[^-\_0-9a-zA-Z]","",$user_unavailable_action); -$user_route_settings_ingroup = ereg_replace("[^-\_0-9a-zA-Z]","",$user_route_settings_ingroup); -$call_handle_method = ereg_replace("[^-\_0-9a-zA-Z]","",$call_handle_method); -$agent_search_method = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_search_method); -$hold_time_option_voicemail = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_voicemail); -$hold_time_option_callback_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_callback_filename); -$exten_context = ereg_replace("[^-\_0-9a-zA-Z]","",$exten_context); -$three_way_call_cid = ereg_replace("[^-\_0-9a-zA-Z]","",$three_way_call_cid); -$web_form_target = ereg_replace("[^-\_0-9a-zA-Z]","",$web_form_target); -$recording_web_link = ereg_replace("[^-\_0-9a-zA-Z]","",$recording_web_link); -$vtiger_search_category = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_search_category); -$vtiger_create_call_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_call_record); -$vtiger_create_lead_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_lead_record); -$vtiger_screen_login = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_screen_login); -$cpd_amd_action = ereg_replace("[^-\_0-9a-zA-Z]","",$cpd_amd_action); -$template_id = ereg_replace("[^-\_0-9a-zA-Z]","",$template_id); -$carrier_id = ereg_replace("[^-\_0-9a-zA-Z]","",$carrier_id); -$group_alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_alias_id); -$default_group_alias = ereg_replace("[^-\_0-9a-zA-Z]","",$default_group_alias); + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); -### ALPHA-NUMERIC and underscore and dash and comma -$logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); -$forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); -### ALPHA-NUMERIC and spaces -$lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); -### ALPHA-NUMERIC and hash -$group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); -### ALPHA-NUMERIC and hash and star and dot and underscore -$hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); -$did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); -$voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); -$phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); -$phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); -### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores -$adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); -$adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); -$asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); -$call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); -$call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); -$campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); -$campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); -$ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); -$company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); -$full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); -$fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); -$group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); -$HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); -$lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); -$lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); -$list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); -$local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); -$phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); -$picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); -$script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); -$script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); -$server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); -$status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); -$status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); -$wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); -$pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); -$campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); -$list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); -$vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); -$vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); -$vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); -$code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); -$alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); -$shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); -$did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); -$alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); -$template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); -$carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); -$group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); -$caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### ALPHA-NUMERIC and spaces + $lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); + ### ALPHA-NUMERIC and hash + $group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); + ### ALPHA-NUMERIC and hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); -### ALPHA-NUMERIC and underscore and dash and slash and at and dot -$call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); -$client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); -$DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); -$DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); -$dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); -$extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); -$install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); -$old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); -$telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); -$queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); -$queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); -$queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); -$after_hours_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$after_hours_message_filename); -$welcome_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$welcome_message_filename); -$onhold_prompt_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$onhold_prompt_filename); -$email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); -$vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); -$vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); -$vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); -### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon -$vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); -$vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); -### ALPHA-NUMERIC and underscore and dash and at and space and parantheses -$vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); -### remove semi-colons ### -$lead_filter_sql = ereg_replace(";","",$lead_filter_sql); -$list_mix_container = ereg_replace(";","",$list_mix_container); -$survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); -$survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); -$conf_override = ereg_replace(";","",$conf_override); -$template_contents = ereg_replace(";","",$template_contents); -$registration_string = ereg_replace(";","",$registration_string); -$account_entry = ereg_replace(";","",$account_entry); -$globals_string = ereg_replace(";","",$globals_string); -$dialplan_entry = ereg_replace(";","",$dialplan_entry); + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); -### VARIABLES TO BE mysql_real_escape_string ### -# $web_form_address -# $queuemetrics_url -# $admin_home_url -# $qc_web_form_address -# $vtiger_url + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); -### VARIABLES not filtered at all ### -# $script_text + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } -} # end of non_latin ##### END VARIABLE FILTERING FOR SECURITY ##### -# AST GUI database administration +# ViciDial database administration # admin.php # # CHANGELOG: @@ -1644,12 +1980,74 @@ $dialplan_entry = ereg_replace(";","",$dialplan_entry); # 90308-0956 - Added server statistics # 90309-0059 - Changed logging to admin_server_log # 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 # 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.0.5-173'; -$build = '90320-0424'; +$admin_version = '2.2.0-233'; +$build = '100104-1454'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -1664,29 +2062,50 @@ $past_month_date = date("Y-m-d H:i:s",$month_old); $week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); $past_week_date = date("Y-m-d H:i:s",$week_old); +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; + exit; } - echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; - exit; -} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin FROM system_settings;"; +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -1705,21 +2124,20 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT * from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGfull_name =$row[3]; @@ -1754,11 +2172,12 @@ $browser = getenv("HTTP_USER_AGENT"); $LOGdelete_dids =$row[57]; $LOGmanager_shift_enforcement_override=$row[61]; $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - $LOGallowed_campaigns =$row[0]; + $LOGallowed_campaigns = $row[0]; if ($WeBRooTWritablE > 0) { @@ -1787,7 +2206,7 @@ header ("Content-type: text/html; charset=utf-8"); echo "\n"; echo "\n"; echo "\n"; -echo "ΔΙΑΧΕΙΡΙΣΗ: "; +echo "<title>ADMINISTRATION: "; if (!isset($ADD)) {$ADD=0;} @@ -1801,6 +2220,8 @@ if ($ADD==1111) {$hh='ingroups'; echo "Πρόσθεσε Νέα Εισ-Ομάδ if ($ADD==1211) {$hh='ingroups'; echo "$$$-ΟΜΑΔΑ αντιγράφων";} if ($ADD==1311) {$hh='ingroups'; echo "Προσθήκη νέουDID";} if ($ADD==1411) {$hh='ingroups'; echo "ΑντιγραφήDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Προσθήκη Call Μενού";} +if ($ADD==1611) {$hh='ingroups'; echo "Αντιγραφή Call Μενού";} if ($ADD==11111) {$hh='remoteagent'; echo "Πρόσθεσε Νέους Απομακρυσμένους Χειριστές";} if ($ADD==111111) {$hh='usergroups'; echo "Πρόσθεσε Νέα Ομάδα Χρηστών";} if ($ADD==1111111) {$hh='scripts'; echo "Πρόσθεσε Νέο Βοηθό";} @@ -1814,6 +2235,9 @@ if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "Προσθήκη νέο if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "ΠΡΟΣΘΕΣΕ ΝΕΟ ΔΙΑΚΟΜΙΣΤΗ";} if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "Προσθήκη νέου ΠΙΣΤ TEMPLATE";} if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "Προσθήκη νέου ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "Προσθήκη νέου TTS ΕΙΣΟΔΟΣ";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "Προσθήκη νέουMusic on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "Προσθήκη νέου ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "ΠΡΟΣΘΕΣΕ ΝΕΑ ΣΥΝΔΙΑΛΕΞΗ";} if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} if ($ADD=='2') {$hh='users'; echo "Προσθήκη Νέου Χρήστη";} @@ -1832,6 +2256,8 @@ if ($ADD==2111) {$hh='ingroups'; echo "Προσθήκη Νέας Εισ-Ομά if ($ADD==2011) {$hh='ingroups'; echo "Νέα αντιγραμμένη προσθήκη-ΟΜΑΔΑΣ";} if ($ADD==2311) {$hh='ingroups'; echo "Νέα προσθήκη DID";} if ($ADD==2411) {$hh='ingroups'; echo "Νέα προσθήκη αντιγραφή DID";} +if ($ADD==2511) {$hh='ingroups'; echo "Νέα Πρόσκληση Μενού";} +if ($ADD==2611) {$hh='ingroups'; echo "Νέα Πρόσκληση Μενού";} if ($ADD==21111) {$hh='remoteagent'; echo "Προσθήκη Νέων Απομακρυσμένων Χειριστών";} if ($ADD==211111) {$hh='usergroups'; echo "Προσθήκη Νέας Ομάδας Χρηστών";} if ($ADD==2111111) {$hh='scripts'; echo "Νέα προσθήκη Βοηθού";} @@ -1846,6 +2272,9 @@ if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "ΠΡΟΣΘΗΚΗ ΝΕ if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ΠΡΟΣΘΕΤΕΙ ΝΕΑ ΕΓΓΡΑΦΗ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ";} if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "Την προσθήκη νέων ΠΙΣΤ TEMPLATE";} if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "Την προσθήκη νέων ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Adding New TTS ΕΙΣΟΔΟΣ";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "Adding New Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "Adding New ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΣΥΝΔΙΑΛΕΞΗΣ";} if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ΠΡΟΣΘΗΚΗ ΤΩΝ ΘΈΣΕΩΝ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} @@ -1854,29 +2283,29 @@ if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "Adding VICIDIAL QC if ($ADD==3) {$hh='users'; echo "Τροποποίηση Χρήστη";} if ($ADD==30) {$hh='campaigns'; echo "Εκστρατεία δεν επιτρέπεται";} if ($ADD==31) - { - $hh='campaigns'; $sh='detail'; echo "Τροποποίηση Εκστρατείας - Λεπτομέρειες - $campaign_id"; - if ($SUB==22) {echo " - Καθεστώτων";} - if ($SUB==23) {echo " - HotKeys";} - if ($SUB==25) {echo " -Μόλυβδος ανακύκλωσηςEntries";} - if ($SUB==26) {echo " - Alt Auto Dial Καθεστώτων";} - if ($SUB==27) {echo " - Agent Παύση Κώδικες";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Κατάλογος Mixes";} - if ($SUB=='20A') {echo " - Έρευνα";} - } + { + $hh='campaigns'; $sh='detail'; echo "Τροποποίηση Εκστρατείας - Λεπτομέρειες - $campaign_id"; + if ($SUB==22) {echo " - Καθεστώτων";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Μόλυβδος ανακύκλωσηςEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Καθεστώτων";} + if ($SUB==27) {echo " - Agent Παύση Κώδικες";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Κατάλογος Mixes";} + if ($SUB=='20A') {echo " - Έρευνα";} + } if ($ADD==34) - { - $hh='campaigns'; $sh='basic'; echo "Τροποποίηση Εκστρατείας - Βασική Επισκόπηση - $campaign_id"; - if ($SUB==22) {echo " - Καθεστώτων";} - if ($SUB==23) {echo " - HotKeys";} - if ($SUB==25) {echo " -Μόλυβδος ανακύκλωσηςEntries";} - if ($SUB==26) {echo " - Alt Auto Dial Καθεστώτων";} - if ($SUB==27) {echo " - Agent Παύση Κώδικες";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Κατάλογος Mixes";} - if ($SUB=='20A') {echo " - Έρευνα";} - } + { + $hh='campaigns'; $sh='basic'; echo "Τροποποίηση Εκστρατείας - Βασική Επισκόπηση - $campaign_id"; + if ($SUB==22) {echo " - Καθεστώτων";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Μόλυβδος ανακύκλωσηςEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Καθεστώτων";} + if ($SUB==27) {echo " - Agent Παύση Κώδικες";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Κατάλογος Mixes";} + if ($SUB=='20A') {echo " - Έρευνα";} + } if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Θέσεις εκστρατείας";} if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Εκστρατεία HotKeys";} if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "Ανακύκλωσης καταχωρήσεις μολύβδου εκστρατείας";} @@ -1887,6 +2316,7 @@ if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Μίγματα καταλ if ($ADD==311) {$hh='lists'; echo "Τροποποίηση Λίστας";} if ($ADD==3111) {$hh='ingroups'; echo "Τροποποίηση Εισ-Ομάδων";} if ($ADD==3311) {$hh='ingroups'; echo "ModifyDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Τροποποίηση Call Μενού";} if ($ADD==31111) {$hh='remoteagent'; echo "Τροποποίηση Απομακρυσμένων Χειριστών";} if ($ADD==311111) {$hh='usergroups'; echo "Τροποποίηση Ομάδων Χρηστών";} if ($ADD==3111111) {$hh='scripts'; echo "Τροποποιήστε τον Βοηθό";} @@ -1901,6 +2331,9 @@ if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ";} if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFY ΠΙΣΤ TEMPLATE";} if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ΕΙΣΟΔΟΥ";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFY Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFY ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΣΥΝΔΙΑΛΕΞΗ";} if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} @@ -1922,6 +2355,7 @@ if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Τροποποίηση if ($ADD==411) {$hh='lists'; echo "Τροποποίηση Λίστας";} if ($ADD==4111) {$hh='ingroups'; echo "Τροποποίηση Εισ-Ομάδων";} if ($ADD==4311) {$hh='ingroups'; echo "ModifyDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Τροποποίηση Call Μενού";} if ($ADD==41111) {$hh='remoteagent'; echo "Τροποποίηση Απομακρυσμένων Χειριστών";} if ($ADD==411111) {$hh='usergroups'; echo "Τροποποίηση Ομάδων Χρηστών";} if ($ADD==4111111) {$hh='scripts'; echo "Τροποποιήστε τον Βοηθό";} @@ -1936,6 +2370,9 @@ if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "ΤΡΟΠΟΠΟΙΗΣΕ if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ";} if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFY ΠΙΣΤ TEMPLATE";} if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ΕΙΣΟΔΟΥ";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFY Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFY ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΣΥΝΔΙΑΛΕΞΗ";} if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} @@ -1949,6 +2386,7 @@ if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "έκτακτης ανάγ if ($ADD==511) {$hh='lists'; echo "ΔιαγράφωList";} if ($ADD==5111) {$hh='ingroups'; echo "ΔιαγράφωIn-Group";} if ($ADD==5311) {$hh='ingroups'; echo "ΔιαγράφωDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Διαγραφή Call Μενού";} if ($ADD==51111) {$hh='remoteagent'; echo "Διάγραψε τους Απομακρυσμένους Χειριστές";} if ($ADD==511111) {$hh='usergroups'; echo "Διάγραψε τους χρήστες Group";} if ($ADD==5111111) {$hh='scripts'; echo "Διάγραψε τον Βοηθό";} @@ -1962,6 +2400,9 @@ if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "Διαγραφή ομά if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "DELETE ΠΙΣΤ TEMPLATE";} if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "DELETE ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ΕΙΣΟΔΟΥ";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==6) {$hh='users'; echo "ΔιαγράφωΧρήστης";} @@ -1976,6 +2417,7 @@ if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "Μίγμα καταλόγ if ($ADD==611) {$hh='lists'; echo "ΔιαγράφωList";} if ($ADD==6111) {$hh='ingroups'; echo "ΔιαγράφωIn-Group";} if ($ADD==6311) {$hh='ingroups'; echo "ΔιαγράφωDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Διαγραφή Call Μενού";} if ($ADD==61111) {$hh='remoteagent'; echo "Διάγραψε τους Απομακρυσμένους Χειριστές";} if ($ADD==611111) {$hh='usergroups'; echo "Διάγραψε τους χρήστες Group";} if ($ADD==6111111) {$hh='scripts'; echo "Διάγραψε τον Βοηθό";} @@ -1988,8 +2430,11 @@ if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "Διαγραφή ομάδας ALIAS";} if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "ΔΙΑΓΡΑΦΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ";} -if ($ADD==621111111111) {$hh='admin'; $sh='templates'; echo "DELETE ΠΙΣΤ TEMPLATE";} -if ($ADD==621111111111) {$hh='admin'; $sh='carriers'; echo "DELETE ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "DELETE ΠΙΣΤ TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "DELETE ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ΕΙΣΟΔΟΥ";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==73) {$hh='campaigns'; echo "Μετρητής Κληθέντων Οδηγών";} @@ -2007,6 +2452,7 @@ if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Εκστρατείες";} if ($ADD==100) {$hh='lists'; echo "Λίστες";} if ($ADD==1000) {$hh='ingroups'; echo "Εισ-Ομάδες";} if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Καλέστε Menus";} if ($ADD==10000) {$hh='remoteagent'; echo "Απομακρυσμένοι Χειριστές";} if ($ADD==100000) {$hh='usergroups'; echo "Ομάδες Χρήστη";} if ($ADD==1000000) {$hh='scripts'; echo "Βοηθοί";} @@ -2020,6 +2466,9 @@ if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "ΟΜΑΔΑ ALIAS ΚΑΤ if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "ΛΙΣΤΑ ΔΙΑΚΟΜΙΣΤΗ";} if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "ΠΙΣΤ TEMPLATE ΚΑΤΑΛΟΓΟΣ";} if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "ΘΑΛΑΜΙΣΚΟ ΚΑΤΑΛΟΓΟΣ";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS Συμμετοχές";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "Music on Hold Συμμετοχές";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ πλαίσια λίστας";} if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "ΛΙΣΤΑ ΣΥΝΔΙΑΛΕΞΕΩΝ";} if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL ΛΙΣΤΑ ΣΥΝΔΙΑΛΕΞΕΩΝ";} if ($ADD==550) {$hh='users'; echo "Φόρμα Αναζήτησης";} @@ -2216,53 +2665,53 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### BEGIN get inbound groups listing for checkboxes ##### $xfer_groupsSQL=''; if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) - { - $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - $xfer_groups = $row[1]; - $xfer_groups = preg_replace("/ -$/","",$xfer_groups); - $XFERgroups = explode(" ", $xfer_groups); - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } - if ($ADD==41) - { - $p=0; - $XFERgroup_ct = count($XFERgroups); - while ($p < $XFERgroup_ct) { - $xfer_groups .= " $XFERgroups[$p]"; - $p++; + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; } - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } if ($ADD==3) - { - $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; # $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; @@ -2390,10 +2839,10 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get inbound groups listing for checkboxes ##### - ##### BEGIN get campaigns listing for checkboxes ##### - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) { - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) { $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -2415,26 +2864,26 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; $qc_groups_value=''; $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; - $p=0; - while ($p<100) + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) { - if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) - { - $campaigns_list.=" CHECKED"; - $campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) - { - $qc_campaigns_list.=" CHECKED"; - $qc_campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-GROUPS',$qc_groups[$p])) - { - $qc_groups_list.=" CHECKED"; - $qc_groups_value .= " -ALL-GROUPS- -"; - } - $p++; + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } $campaigns_list.="> ALL-CAMPAIGNS - ΟΙ ΧΡΗΣΤΕΣ ΜΠΟΡΟΥΝ ΝΑ ΔΟΥΝ ΟΠΟΙΑΔΗΠΟΤΕ ΕΚΣΤΡΑΤΕΙΑ</B><BR>\n"; $qc_campaigns_list.="> ALL-CAMPAIGNS - Οι χρήστες μπορούν να QC οποιαδήποτε καμπάνια</B><BR>\n"; $qc_groups_list.="> ALL-GROUPS - Οι χρήστες μπορούν να ANY QC εισερχόμενα ΟΜΑΔΑ</B><BR>\n"; @@ -2452,9 +2901,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; $p=0; - while ($p<100) + while ($p<1000) { - if ($campaign_id_value == $campaigns[$p]) + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) { # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; $campaigns_list .= " CHECKED"; @@ -2485,9 +2934,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $group_name_value = $rowx[1]; $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; $p=0; - while ($p<100) + while ($p<2000) { - if ($group_id_value == $qc_groups[$p]) + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) { $qc_groups_list .= " CHECKED"; $qc_groups_value .= " $group_id_value"; @@ -2505,7 +2954,7 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get campaigns listing for checkboxes ##### - if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) { ##### get server listing for dynamic pulldown $stmt="SELECT server_ip,server_description from servers order by server_ip"; @@ -2540,1363 +2989,1455 @@ $NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"ΒΟΗΘΕ ###################### if ($ADD==99999) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "
ΔΙΑΧΕΙΡΙΣΗ: ΒΟΗΘΕΙΑ


\n"; - -?> -VICIDIAL_ΧΡΗΣΤΕΣ ΠΙΝΑΚΑΣ

- -
-ID Χρήστη - Σε αυτό το πεδίο τοποθετείται ο αριθμός ID του χρήστη, μπορεί να είναι μεταξύ 2 και 8 ψηφία. - -
-
-
-Κωδικός - Σε αυτό το πεδίο τοποθετείται ο κωδικός του χρήστη στο VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες. - -
-
-
-Πλήρες Ονομα - Αυτό το πεδίο είναι που μπορείτε να ορίσετε το πλήρες όνομα των χρηστών VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες. - -
-
-
-Επίπεδο Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε το επίπεδο χρήστη των VICIDIAL χρηστών. Πρέπει να έχει επίπεδο 1 για να συνδεθεί στο σύστημα. Πρέπει να έχει επίπεδο μεγαλύτερο από 2 για να συνδεθεί ως closer. Πρέπει να έχει επίπεδο 8 ή μεγαλύερο για ενέργειες διαχειριστή. - -
-
-
-Ομάδα Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε την ομάδα χρηστών που ανήκει ο χρήστης. - -
-
-
-Σύνδεση Τηλεφώνου - εδώ μπορείτε να θέσετε μία προκαθορισμένη σύνδεση τηλεφώνου κατά την είσοδο του χειριστή στο vicidial.php. - -
-
-
-Κωδικός Τηλεφώνου - εδώ μπορείτε να θέσετε ένα προκαθορισμένο κωδικό τηλεφώνου κατά την είσοδο του χειριστή στο vicidial.php. - -
-
-
-Ενεργή - Το πεδίο αυτό καθορίζει αν ο χρήστης είναι ενεργός στο σύστημα και μπορεί να χρησιμοποιήσει VICIDIAL πόρων. Προεπιλεγμένο είναι Y - -
-
-
-Hot Keys ενεργός - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να χρησιμοποιήσει τα πλήκτρα γρήγορου τερματισμού vicidial.php. - -
-
-
-Ο πράκτορας επιλέγει Ingroups - εάν θέσετε σε 1 αυτή την επιλογή επιτρέπει στο χρήστη να επιλέξει τις εισ-ομάδες που θα λάβουν τις κλήσεις. Διαφορετικά ο Manager θα πρέπει να το θέσει αυτό στην σελίδα διαχείρισης. - -
-
-
-Προγραμματισμένες Επανακλήσεις - Αυτή η επιλογή επιτρέπει στον χειριστή να τερματίσει μία κλήση ως CALLBK και να επιλέξει τα δεδομένα και την ώρα κατά την οποία ο οδηγός θα ξανα-ενεργοποιηθεί. - -
-
-
-Μόνο του Χρήστη Επανακλήσεις- Αυτή η επιλογή επιτρέπει στον χρήστη να θέσει μία επανάκληση με τέτοιο τρόπο, ώστε μόνο αυτός να μπορεί να καλέσει τον πελάτη. Επίσης, επιτρέπει στον χρήστη να δει τις λίστες των επανακλήσεων και να τις καλέσει οποιαδήποτε στιγμή. - -
-
-
-Χειροκίνητη Κλήση Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να καταχωρήσει χειροκίνητα ένα νέο οδηγό στο σύστημα και να τον καλέσε. - -
-
-
-Ηχογράφηση - Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να κάνει ηχογραφήσεις και θα πρέπει να ακολουθεί την διαδικασία ηχογράφησης της εκστρατείας. - -
-
-
-Μεταφορές- Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να ανοίξει την διαδικασία μεταφορά-συνδιάσκεψη. Αν είναι απενεργοποιημένη, ο χρήστης δεν μπορεί να μεαφέρει κλήσεις ή να κάνει κλήση σε τρίτο. - - 0) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: ΒΟΗΘΕΙΑ


\n"; + ?> + VICIDIAL_ΧΡΗΣΤΕΣ ΠΙΝΑΚΑΣ

+
-
+ ID Χρήστη - Σε αυτό το πεδίο τοποθετείται ο αριθμός ID του χρήστη, μπορεί να είναι μεταξύ 2 και 8 ψηφία. +
- Πιό στενή προεπιλογή που συνδυάζεται - αυτή η επιλογή προκαθορίζει απλά το συνδυασμένο τετραγωνίδιο σε μια ΠΙΟ ΣΤΕΝΉ οθόνη σύνδεσης. - +
+
+ Κωδικός - Σε αυτό το πεδίο τοποθετείται ο κωδικός του χρήστη στο VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες. -
-
-
-VICIDIAL συμπληρωματική προμήθεια καταγραφής - αυτή η επιλογήθα αγνοήσει οποιο δήποτε η επιλογή είναι στην εκστρατεία για τηνκαταγραφή. Τα ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΈΣ ΑΝΑΓΚΕΣ δεν θα αγνοήσουν τηρύθμιση καταγραφής εκστρατείας. Δεν θα θέσει εκτός λειτουργίαςΠΟΤΕ την καταγραφή στον πελάτη. ONDEMAND είναι η προεπιλογήκαι επιτρέπει στον πράκτορα για να αρχίσει και να σταματήσει όπωςαπαιτείται. ALLCALLS θα αρχίσει την καταγραφή στον πελάτηόποτε μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θααρχίσει την καταγραφή στον πελάτη όποτε μια κλήση στέλνεται σεέναν πράκτορα που δεν δίνει στον πράκτορα καμία επιλογή νασταματήσει. Για ALLCALLS και ALLFORCE υπάρχει μια επιλογή ναχρησιμοποιηθεί η καθυστέρηση καταγραφής για να περικόψει στιςπολύ σύντομα καταγραφές και recude το φορτίο συστημάτων. +
+
+
+ Πλήρες Ονομα - Αυτό το πεδίο είναι που μπορείτε να ορίσετε το πλήρες όνομα των χρηστών VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες. -
-
-
-Agent Shift Επιβολή Override - Η ρύθμιση αυτή θα αντικαταστήσει τους χρήστες ανεξάρτητα από την ομάδα χρηστών που έχει για την εκτέλεση Shift. DISABLED θα χρησιμοποιήσει ο χρήστης ομάδα ρύθμιση. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Η προεπιλογή είναι άτομα με ειδικές ανάγκες. +
+
+
+ Επίπεδο Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε το επίπεδο χρήστη των VICIDIAL χρηστών. Πρέπει να έχει επίπεδο 1 για να συνδεθεί στο σύστημα. Πρέπει να έχει επίπεδο μεγαλύτερο από 2 για να συνδεθεί ως closer. Πρέπει να έχει επίπεδο 8 ή μεγαλύερο για ενέργειες διαχειριστή. -
-
-
-Alert Enabled - Το πεδίο αυτό δείχνει κατά πόσο ο μεσάζων έχει τη δυνατότητα web browser ειδοποιήσεις για κλήσεις όταν έρθουν σε vicidial.php συνόδου τους. Η προεπιλογή είναι 0 για τα NO. +
+
+
+ Ομάδα Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε την ομάδα χρηστών που ανήκει ο χρήστης. -
-
-
-Τάξεις εκστρατείας - σε αυτό το τμήμα μπορείτε να καθορίσετε τηντάξη που ένας πράκτορας θα έχει για κάθε εκστρατεία. Αυτές οιτάξεις μπορούν να χρησιμοποιηθούν για να επιτρέψουν τηνπροτιμημένη κλήση καθοδηγώντας όταν τίθεται η επόμενη κλήσηπρακτόρων campaign_rank. Επίσης σε αυτό το τμήμα της WEB VARs για κάθε καμπάνια. Αυτά επιτρέπουν κάθε παράγοντα να έχει μια διαφορετική μεταβλητή συμβολοσειρά που μπορεί να προστεθεί στην ηλεκτρονική φόρμα ή SCRIPT καρτέλα URLs από απλά θέτοντας - Α - web_vars - Β - όπως θα την κάθε άλλο τομέα. +
+
+
+ Σύνδεση Τηλεφώνου - εδώ μπορείτε να θέσετε μία προκαθορισμένη σύνδεση τηλεφώνου κατά την είσοδο του χειριστή στο vicidial.php. -
-
-
-Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία CLOSER. Θα είστε σε θέση επίσης να θέσετε την τάξη, ή το επίπεδοικανότητας, σε αυτό το τμήμα κάθε μιας από τις εισερχόμενεςομάδες καθώς επίσης και όντας σε θέση να δείτε τοναριθμό κλήσεων που παραλαμβάνονται από κάθε εισερχόμενη ομάδαγια αυτόν τον συγκεκριμένο πράκτορα. Επίσης σε αυτό το τμήμα είναι η δυνατότητα να δοθεί στονπράκτορα μια τάξη για κάθε εισερχόμενη ομάδα. Αυτές οι τάξειςμπορούν να χρησιμοποιηθούν για την προτιμημένη κλήση καθοδηγώνταςόταν επιλέγεται εκείνη η επιλογή στην οθόνη-ΟΜΑΔΑΣ. Επίσης σε αυτό το τμήμα της WEB VARs για κάθε καμπάνια. Αυτά επιτρέπουν κάθε παράγοντα να έχει μια διαφορετική μεταβλητή συμβολοσειρά που μπορεί να προστεθεί στην ηλεκτρονική φόρμα ή SCRIPT καρτέλα URLs από απλά θέτοντας - Α - web_vars - Β - όπως θα την κάθε άλλο τομέα. +
+
+
+ Κωδικός Τηλεφώνου - εδώ μπορείτε να θέσετε ένα προκαθορισμένο κωδικό τηλεφώνου κατά την είσοδο του χειριστή στο vicidial.php. -
-
-
-Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών - αυτή η επιλογή θα αγνοήσει οποιος δήποτε η επιλογήείναι στην εκστρατεία για την αλλαγή των στοιχείων πελατών.NOT_ACTIVE θα χρησιμοποιήσει οποιου δήποτε που θέτει είναιπαρών για την εκστρατεία. ALLOW_ALTER θα επιτρέψει πάντα τονπράκτορα να αλλάξει τα στοιχεία πελατών, η των οποίων ρύθμισηεκστρατείας είναι. Η προεπιλογή είναι NOT_ACTIVE. +
+
+
+ Ενεργή - Το πεδίο αυτό καθορίζει αν ο χρήστης είναι ενεργός στο σύστημα και μπορεί να χρησιμοποιήσει VICIDIAL πόρων. Προεπιλεγμένο είναι Y -
-
-
-Agent Alter Πελατών τηλέφωνο Παράκαμψη - Η επιλογή αυτή θα υπερισχύσει του όποια κι αν είναι η επιλογή είναι στην εκστρατεία για την τροποποίηση του πελάτη τον αριθμό του τηλεφώνου. NOT_ACTIVE θα χρησιμοποιήσει όποια ρύθμιση είναι παρόντες κατά την εκστρατεία. ALLOW_ALTER θα επιτρέπει πάντα για τον πράκτορα να τροποποιήσει τον αριθμό τηλεφώνου του πελάτη, δεν το θέμα αυτό η εκστρατεία η ρύθμιση. Προεπιλεγμένο είναι NOT_ACTIVE. +
+
+
+ E-mail, το χρήστη και Κωδικός Επικράτεια - Αυτά είναι προαιρετικά πεδία. -
-
-
-Αλλάξτε τις επιλογές διεπαφών Χειριστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο διαχειριστή να τροποποιήσει τις επιλογές διεπαφών χειριστών στην admin.php. +
+
+
+ Hot Keys ενεργός - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να χρησιμοποιήσει τα πλήκτρα γρήγορου τερματισμού vicidial.php. -
-
-
-Διαγραφή Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει άλλους χρήστες ίσου ή μικρότερου επιπέδου από το σύστημα. +
+
+
+ Ο πράκτορας επιλέγει Ingroups - εάν θέσετε σε 1 αυτή την επιλογή επιτρέπει στο χρήστη να επιλέξει τις εισ-ομάδες που θα λάβουν τις κλήσεις. Διαφορετικά ο Manager θα πρέπει να το θέσει αυτό στην σελίδα διαχείρισης. -
-
-
-Διαγραφή Ομάδων Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις ομάδες χρηστών από το σύστημα. +
+
+
+ Agent Επιλέξτε Εδάφη - Αυτή η επιλογή αν οριστεί σε 1 επιτρέπει στο χρήστη να επιλέξει τις περιοχές που θα λάβουν κλήσεις από όταν συνδεθείτε με ένα εγχειρίδιο ή Εισερχόμενα_MAN καμπάνια. Αντίθετη περίπτωση ο χρήστης θα πρέπει να ρυθμιστεί να χρησιμοποιεί όλα τα εδάφη που έχουν οριστεί σε ανήκουν στο χρήστη Εδάφη διοικητική ενότητα. -
-
-
-Διαγραφή Λιστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις λίστες από το σύστημα. +
+
+
+ Scheduled Callbacks - Η επιλογή αυτή επιτρέπει σε έναν πράκτορα για τη διάθεσή μια κλήση όπως CALLBK και να επιλέξει την ημερομηνία και την ώρα κατά την οποία το αποτέλεσμα θα πρέπει να ενεργοποιηθεί και πάλι. -
-
-
-Διαγραφή Εκστρατειών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις εκστρατείες από το σύστημα. +
+
+
+ Μόνο του Χρήστη Επανακλήσεις- Αυτή η επιλογή επιτρέπει στον χρήστη να θέσει μία επανάκληση με τέτοιο τρόπο, ώστε μόνο αυτός να μπορεί να καλέσει τον πελάτη. Επίσης, επιτρέπει στον χρήστη να δει τις λίστες των επανακλήσεων και να τις καλέσει οποιαδήποτε στιγμή. -
-
-
-Διαγραφή Εισ-Ομάδων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις Εισ-Ομάδες από το σύστημα. +
+
+
+ Χειροκίνητη Κλήση Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να καταχωρήσει χειροκίνητα ένα νέο οδηγό στο σύστημα και να τον καλέσε. -
-
-
-Διαγράψτε τους Απομακρυσμένους Χειριστές - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τους απομακρυσμένους χειριστές από το σύστημα. +
+
+
+ Ηχογράφηση - Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να κάνει ηχογραφήσεις και θα πρέπει να ακολουθεί την διαδικασία ηχογράφησης της εκστρατείας. - 0) - { +
+
+
+ Μεταφορές- Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να ανοίξει την διαδικασία μεταφορά-συνδιάσκεψη. Αν είναι απενεργοποιημένη, ο χρήστης δεν μπορεί να μεαφέρει κλήσεις ή να κάνει κλήση σε τρίτο. + + 0) + { + ?> +
+
+
+ Πιό στενή προεπιλογή που συνδυάζεται - αυτή η επιλογή προκαθορίζει απλά το συνδυασμένο τετραγωνίδιο σε μια ΠΙΟ ΣΤΕΝΉ οθόνη σύνδεσης. + +
-
+
- Εισαγωγή Οδηγών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να εισάγει τους οδηγούς στον πίνακα vicidial_list μέσω του βασισμένου σε Ιστοσελίδα Εισαγωγέα οδηγών. - + VICIDIAL συμπληρωματική προμήθεια καταγραφής - αυτή η επιλογήθα αγνοήσει οποιο δήποτε η επιλογή είναι στην εκστρατεία για τηνκαταγραφή. Τα ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΈΣ ΑΝΑΓΚΕΣ δεν θα αγνοήσουν τηρύθμιση καταγραφής εκστρατείας. Δεν θα θέσει εκτός λειτουργίαςΠΟΤΕ την καταγραφή στον πελάτη. ONDEMAND είναι η προεπιλογήκαι επιτρέπει στον πράκτορα για να αρχίσει και να σταματήσει όπωςαπαιτείται. ALLCALLS θα αρχίσει την καταγραφή στον πελάτηόποτε μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θααρχίσει την καταγραφή στον πελάτη όποτε μια κλήση στέλνεται σεέναν πράκτορα που δεν δίνει στον πράκτορα καμία επιλογή νασταματήσει. Για ALLCALLS και ALLFORCE υπάρχει μια επιλογή ναχρησιμοποιηθεί η καθυστέρηση καταγραφής για να περικόψει στιςπολύ σύντομα καταγραφές και recude το φορτίο συστημάτων. -
-
-
-Λεπτομέρειες Εκστρατείας - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να δει και να τροποποιήσει τα λεπτομερή στοιχεία της εκστρατείας. +
+
+
+ Agent Shift Επιβολή Override - Η ρύθμιση αυτή θα αντικαταστήσει τους χρήστες ανεξάρτητα από την ομάδα χρηστών που έχει για την εκτέλεση Shift. DISABLED θα χρησιμοποιήσει ο χρήστης ομάδα ρύθμιση. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Η προεπιλογή είναι άτομα με ειδικές ανάγκες. -
-
-
-AGC Πρόσβαση Διαχειριστή - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να συνδεθεί στις σελίδες του astGUIclient ως διαχειριστής. +
+
+
+ Alert Enabled - Το πεδίο αυτό δείχνει κατά πόσο ο μεσάζων έχει τη δυνατότητα web browser ειδοποιήσεις για κλήσεις όταν έρθουν σε vicidial.php συνόδου τους. Η προεπιλογή είναι 0 για τα NO. -
-
-
-AGC διαγραφή τηλεφώνων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τα τηλέφωνα στις σελίδες του διαχειριστή του astGUIclient. +
+
+
+ Επιτρέψτε Alerts - Αυτό το πεδίο σας δίνει τη δυνατότητα να επιτρέψει browser πράκτορα ειδοποιήσεις για να ενεργοποιηθεί από το πρακτορείο για κλήσεις όταν έρχονται σε vicidial.php συνεδρία τους. Προεπιλογή είναι 0 για το NO. -
-
-
-Διαγραφή Βοηθού - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τους οδηγούς της εκστρατείας . +
+
+
+ Τάξεις εκστρατείας - σε αυτό το τμήμα μπορείτε να καθορίσετε τηντάξη που ένας πράκτορας θα έχει για κάθε εκστρατεία. Αυτές οιτάξεις μπορούν να χρησιμοποιηθούν για να επιτρέψουν τηνπροτιμημένη κλήση καθοδηγώντας όταν τίθεται η επόμενη κλήσηπρακτόρων campaign_rank. Επίσης σε αυτό το τμήμα της WEB VARs για κάθε καμπάνια. Αυτά επιτρέπουν κάθε παράγοντα να έχει μια διαφορετική μεταβλητή συμβολοσειρά που μπορεί να προστεθεί στην ηλεκτρονική φόρμα ή SCRIPT καρτέλα URLs από απλά θέτοντας - Α - web_vars - Β - όπως θα την κάθε άλλο τομέα. -
-
-
-Τροποποιήστε τους οδηγούς - αυτή η επιλογή εάν τη θέσετε σε 1, επιτρέπει στο χρήστη να τροποποιήσει τους οδηγούς στη σελίδα αποτελεσμάτων αναζήτησης οδηγών. +
+
+
+ Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία CLOSER. Θα είστε σε θέση επίσης να θέσετε την τάξη, ή το επίπεδοικανότητας, σε αυτό το τμήμα κάθε μιας από τις εισερχόμενεςομάδες καθώς επίσης και όντας σε θέση να δείτε τοναριθμό κλήσεων που παραλαμβάνονται από κάθε εισερχόμενη ομάδαγια αυτόν τον συγκεκριμένο πράκτορα. Επίσης σε αυτό το τμήμα είναι η δυνατότητα να δοθεί στονπράκτορα μια τάξη για κάθε εισερχόμενη ομάδα. Αυτές οι τάξειςμπορούν να χρησιμοποιηθούν για την προτιμημένη κλήση καθοδηγώνταςόταν επιλέγεται εκείνη η επιλογή στην οθόνη-ΟΜΑΔΑΣ. Επίσης σε αυτό το τμήμα της WEB VARs για κάθε καμπάνια. Αυτά επιτρέπουν κάθε παράγοντα να έχει μια διαφορετική μεταβλητή συμβολοσειρά που μπορεί να προστεθεί στην ηλεκτρονική φόρμα ή SCRIPT καρτέλα URLs από απλά θέτοντας - Α - web_vars - Β - όπως θα την κάθε άλλο τομέα. -
-
-
-Αλλαγή Εκστρατείας Χειριστού - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να αλλάξει την εκτρατεία όπου ένας πράκτορας έχει συνδεθεί . +
+
+
+ Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών - αυτή η επιλογή θα αγνοήσει οποιος δήποτε η επιλογήείναι στην εκστρατεία για την αλλαγή των στοιχείων πελατών.NOT_ACTIVE θα χρησιμοποιήσει οποιου δήποτε που θέτει είναιπαρών για την εκστρατεία. ALLOW_ALTER θα επιτρέψει πάντα τονπράκτορα να αλλάξει τα στοιχεία πελατών, η των οποίων ρύθμισηεκστρατείας είναι. Η προεπιλογή είναι NOT_ACTIVE. - 0) - { +
+
+
+ Agent Alter Πελατών τηλέφωνο Παράκαμψη - Η επιλογή αυτή θα υπερισχύσει του όποια κι αν είναι η επιλογή είναι στην εκστρατεία για την τροποποίηση του πελάτη τον αριθμό του τηλεφώνου. NOT_ACTIVE θα χρησιμοποιήσει όποια ρύθμιση είναι παρόντες κατά την εκστρατεία. ALLOW_ALTER θα επιτρέπει πάντα για τον πράκτορα να τροποποιήσει τον αριθμό τηλεφώνου του πελάτη, δεν το θέμα αυτό η εκστρατεία η ρύθμιση. Προεπιλεγμένο είναι NOT_ACTIVE. + +
+
+
+ Custom χρήστη Κενά - Αυτές οι πέντε τομείς που μπορούν να χρησιμοποιηθούν για διάφορους σκοπούς, και μπορούν να κατοικείται σε διευθύνσεις φόρμα και σενάρια ως user_custom_one και ούτω καθεξής. + +
+
+
+ Αλλάξτε τις επιλογές διεπαφών Χειριστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο διαχειριστή να τροποποιήσει τις επιλογές διεπαφών χειριστών στην admin.php. + +
+
+
+ Διαγραφή Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει άλλους χρήστες ίσου ή μικρότερου επιπέδου από το σύστημα. + +
+
+
+ Διαγραφή Ομάδων Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις ομάδες χρηστών από το σύστημα. + +
+
+
+ Διαγραφή Λιστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις λίστες από το σύστημα. + +
+
+
+ Διαγραφή Εκστρατειών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις εκστρατείες από το σύστημα. + +
+
+
+ Διαγραφή Εισ-Ομάδων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις Εισ-Ομάδες από το σύστημα. + +
+
+
+ Διαγράψτε τους Απομακρυσμένους Χειριστές - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τους απομακρυσμένους χειριστές από το σύστημα. + + 0) + { + ?> +
+
+
+ Εισαγωγή Οδηγών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να εισάγει τους οδηγούς στον πίνακα vicidial_list μέσω του βασισμένου σε Ιστοσελίδα Εισαγωγέα οδηγών. + +
-
+
- Διαγραφή Φίλτρων - Αυτή η επιλογή επιτρέπει στον χειριστή να διαγράφει φίλτρα από το σύστημα. - + Λεπτομέρειες Εκστρατείας - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να δει και να τροποποιήσει τα λεπτομερή στοιχεία της εκστρατείας. -
-
-
-Διαγραφή Χρόνων Κλήσεων - Αυτή η επιλογή επιτρέπει στον χρήστη να διαγράφει εγγραφές χρόνων κλήσεων και καταστάσεων από το σύστημα. +
+
+
+ AGC Πρόσβαση Διαχειριστή - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να συνδεθεί στις σελίδες του astGUIclient ως διαχειριστής. -
-
-
-Τροποποίηση Χρόνων Κλήσεων - Αυτή η επιλογή επιτρέπει στον χρήστη εμφανίσει και να τροποποιήσει τους χρόνους κλήσεων και τις εγγραφές χρόνων κλήσεων κατάστασης. Δεν χρειάζεται να είναι ενεργή αυτή η επιλογή εάν μόνο χρειάζεται η αλλαγή της επιλογής των χρόνων κλήσεων στην οθόνη των εκστρατειών. +
+
+
+ AGC διαγραφή τηλεφώνων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τα τηλέφωνα στις σελίδες του διαχειριστή του astGUIclient. -
-
-
-Τροποποιήστε τα τμήματα - αυτές οι επιλογές επιτρέπουν στοχρήστη για να δουν και να τροποποιήσουν κάθε ένας αρχείατμημάτων. Εάν θέστε 0, ο χρήστης θα είναι σε θέση ναδει τον κατάλογο τμημάτων, αλλά όχι την οθόνηλεπτομέρειας ή τροποποίησης ενός αρχείου σε εκείνο το τμήμα. +
+
+
+ Διαγραφή Βοηθού - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τους οδηγούς της εκστρατείας . -
-
-
-Εκθέσεις άποψης - αυτή η επιλογή επιτρέπει στο χρήστη για να δειτις εκθέσεις VICIDIAL. +
+
+
+ Τροποποιήστε τους οδηγούς - αυτή η επιλογή εάν τη θέσετε σε 1, επιτρέπει στο χρήστη να τροποποιήσει τους οδηγούς στη σελίδα αποτελεσμάτων αναζήτησης οδηγών. - 0) - { +
+
+
+ Αλλαγή Εκστρατείας Χειριστού - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να αλλάξει την εκτρατεία όπου ένας πράκτορας έχει συνδεθεί . + + 0) + { + ?> +
+
+
+ Διαγραφή Φίλτρων - Αυτή η επιλογή επιτρέπει στον χειριστή να διαγράφει φίλτρα από το σύστημα. + -
-
-
- QC Enabled - Η επιλογή αυτή επιτρέπει στο χρήστη να συνδεθείτε με το γραφείο ποιοτικού ελέγχου της οθόνης.
-
+
- QC επίπεδο χρήστη - Αυτή η ρύθμιση ορίζει τι ο πράκτορας Ελέγχου Ποιότητας χρήστη επίπεδο. Αυτό θα υπαγορεύσει το επίπεδο λειτουργικότητας για τον αντιπρόσωπο στο τμήμα QC:
- 1 - Τίποτα δεν Modify
- 2 - Τίποτα δεν ModifyΕκτός Status
- 3 - Τροποποιήστε Όλα τα πεδία
- 4 - Βεβαιωθείτε πρώτου γύρου, QC
- 5 - Δείτε QC Στατιστικά
- 6 - Ικανότητα ModifyΕΤΟΙΜΑ αρχεία
- 7 - Manager Επίπεδο
+ Διαγραφή Χρόνων Κλήσεων - Αυτή η επιλογή επιτρέπει στον χρήστη να διαγράφει εγγραφές χρόνων κλήσεων και καταστάσεων από το σύστημα.
-
+
- QC Εγγραφή Pass - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει περάσει από τον πρώτο γύρο, QC, μετά την επανεξέταση των ρεκόρ. + Τροποποίηση Χρόνων Κλήσεων - Αυτή η επιλογή επιτρέπει στον χρήστη εμφανίσει και να τροποποιήσει τους χρόνους κλήσεων και τις εγγραφές χρόνων κλήσεων κατάστασης. Δεν χρειάζεται να είναι ενεργή αυτή η επιλογή εάν μόνο χρειάζεται η αλλαγή της επιλογής των χρόνων κλήσεων στην οθόνη των εκστρατειών.
-
+
- QC Εγγραφή Finish - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει τελειώσει ο δεύτερος γύρος των QC πέρασε μετά την επανεξέταση των ρεκόρ. + Τροποποιήστε τα τμήματα - αυτές οι επιλογές επιτρέπουν στοχρήστη για να δουν και να τροποποιήσουν κάθε ένας αρχείατμημάτων. Εάν θέστε 0, ο χρήστης θα είναι σε θέση ναδει τον κατάλογο τμημάτων, αλλά όχι την οθόνηλεπτομέρειας ή τροποποίησης ενός αρχείου σε εκείνο το τμήμα.
-
+
- QC Αναλήψεις Record - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι ένα ρεκόρ το οποίο έχει δεσμευθεί στην QC. Αυτό δεν είναι πλέον δυνατό να τροποποιηθεί από κανέναν. - + Εκθέσεις άποψης - αυτή η επιλογή επιτρέπει στο χρήστη για να δειτις εκθέσεις VICIDIAL. -
-
-
-ΠροσθήκηΏρα ρολόι Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να προσθέσετε εγγραφές στο μητρώο timeclock. + 0) + { + ?> +
+
+
+ QC Enabled - Η επιλογή αυτή επιτρέπει στο χρήστη να συνδεθείτε με το γραφείο ποιοτικού ελέγχου της οθόνης. -
-
-
-ΤροποποιήστεΏρα ρολόι Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να τροποποιήσει τις εγγραφές του timeclock log. +
+
+
+ QC επίπεδο χρήστη - Αυτή η ρύθμιση ορίζει τι ο πράκτορας Ελέγχου Ποιότητας χρήστη επίπεδο. Αυτό θα υπαγορεύσει το επίπεδο λειτουργικότητας για τον αντιπρόσωπο στο τμήμα QC:
+ 1 - Τίποτα δεν Modify
+ 2 - Τίποτα δεν ModifyΕκτός Status
+ 3 - Τροποποιήστε Όλα τα πεδία
+ 4 - Βεβαιωθείτε πρώτου γύρου, QC
+ 5 - Δείτε QC Στατιστικά
+ 6 - Ικανότητα ModifyΕΤΟΙΜΑ αρχεία
+ 7 - Manager Επίπεδο
-
-
-
-Εγγραφή ΔιαγραφήΏρα ρολόι Record - Η επιλογή αυτή επιτρέπει στο χρήστη να διαγράψει αρχεία στο timeclock log. +
+
+
+ QC Εγγραφή Pass - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει περάσει από τον πρώτο γύρο, QC, μετά την επανεξέταση των ρεκόρ. -
-
-
-Agent API Πρόσβαση - Η επιλογή αυτή επιτρέπει τον λογαριασμό που πρέπει να χρησιμοποιούνται με την vicidial πράκτορας API εντολές. +
+
+
+ QC Εγγραφή Finish - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει τελειώσει ο δεύτερος γύρος των QC πέρασε μετά την επανεξέταση των ρεκόρ. -
-
-
-Manager Shift Επιβολή Override - Η ρύθμιση αυτή ορίζεται σε 1, αν θα επιτρέψει ο διαχειριστής του να εισέλθει στα χρήστη και κωδικό πρόσβασης σε έναν πράκτορα της οθόνης για να παρακάμψετε τους περιορισμούς σχετικά με τη μετατόπιση ενός πράκτορα συνόδου εάν ο πράκτορας προσπαθεί να συνδεθείτε με τους εκτός της βάρδιας. Η προεπιλογή είναι 0. - -
-
-
-Download Κατάλογοι - Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει τη Διαχείριση κλικ για να κατεβάσετε την λίστα σύνδεσμο στο κάτω μέρος της οθόνης μια λίστα τροποποίηση για την εξαγωγή του συνόλου του περιεχομένου του καταλόγου σε μια επίπεδη αρχείο δεδομένων. Η προεπιλογή είναι 0. - -
-
-
-Εξαγωγή Εκθέσεις - Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει την πρόσβαση του διευθυντή της εξαγωγής κλήση εκθέσεις σχετικά με τις εκθέσεις της οθόνης. Η προεπιλογή είναι 0. Για την εξαγωγή ζητεί έκθεση, ώστε τα ακόλουθα τομέα χρησιμοποιείται για τις εξαγωγές:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds - - - - - - -



- -VICIDIAL_CAMPAIGNS ΠΙΝΑΚΑΣ

-
-
-ID Εκστρατείας - Αυτό είναι το σύντομο όνομα της εκστρατείας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 8 χαρακτήεςh. - -
-
-
-Ονομα Εκστρατείας - Αυτό είναι η περιγραφή της εκστρατείας, πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες. - -
-
-
-Περιγραφή εκστρατείας - αυτό είναι ένας τομέας υπομνημάτων γιατην εκστρατεία, είναι προαιρετικό και μπορεί να είναι έναμέγιστο 255 χαρακτήρων στο μήκος. - -
-
-
-Ημερομηνία αλλαγής εκστρατείας - αυτό είναι η τελευταία φοράότι οι τοποθετήσεις για αυτήν την εκστρατεία τροποποιήθηκαν απόκαμιά άποψη. - -
-
-
-Τελευταία ημερομηνία σύνδεσης εκστρατείας - αυτό είναι ητελευταία φορά ότι ένας πράκτορας καταγράφηκε σε αυτήν τηνεκστρατεία. - -
-
-
-Η εκστρατεία Stats αναζωογονεί - αυτό το τετραγωνίδιο θαεπιτρέψει ότι για να αναγκάσετε τα vicidial statsαναζωογονείτε, ακόμα κι αν η εκστρατεία δεν είναι ενεργός. - -
-
-
-Ενεργοποίηση - Εδώ μπορείτε να θέσετε την εκστρατεία ενεργή ή μη ενεργή. Εάν είναι μη ενεργή, κανένας δεν μπορεί να συνδεθεί σε αυτήν. - -
-
-
-Τηλ.Σύνδεση Στάθμευσης - Εδώ μπορείτε να ορίσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε, ότι η εσωτ.σύνδεση βρίσκεται στο extensions.conf και ότι δείχνει το αρχείο παρακάτω. - -
-
-
-ν Αρχείου Στάθμευσης - Εδώ μπορείτε να προσαρμόσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε ότι το αρχείο έχει 10 χαρακτήρες ή λιγότερους και ότι το αρχείο βρίσκεται στον κατάλογο /var/lib/asterisk/sounds. - -
-
-
-Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυτήν την ομάδα. Για να προσαρμόσετε το ερώτημα string μετά την ηλεκτρονική φόρμα, απλά αρχίζει την ηλεκτρονική φόρμα με VAR και στη συνέχεια τη διεύθυνση URL που θέλετε να χρησιμοποιήσετε, σε αντικατάσταση των μεταβλητών με τις ονομασίες των μεταβλητών που θέλετε να χρησιμοποιήσετε - Α - phone_number - Β -- όπως ακριβώς και στην καρτέλα scripts τμήμα. - -
-
-
-Web Μορφή Target- Αυτό είναι όπου μπορείτε να ρυθμίσετε το έθιμο ιστοσελίδα πλαίσιο ότι η ηλεκτρονική φόρμα θα ανοίξει όταν ο χρήστης κάνει κλικ στην ηλεκτρονική φόρμα κουμπί. Προεπιλεγμένο είναι _blank. - -
-
-
-Επιτρέπει τους Closers - Εδώ ορίζετε εάν οι χρήστες της εκστρατείας θα έχουν την επιλογή να στείλουν την κλήση σε έναν closer. - -
-
-
-Ομάδα μεταφοράς προεπιλογής - αυτός ο τομέας είναι η-ΟΜΑΔΑπροεπιλογής που θα επιλεχτεί αυτόματα όταν πηγαίνει ο πράκτοραςστο πλαίσιο μεταφορά-διασκέψεων στη διεπαφή πρακτόρων τους. - -
-
-
-Ομάδες μεταφοράς - με αυτές τις λίστες τετραγωνιδίου μπορείτε ναεπιλέξετε τις ομάδες ότι οι πράκτορες σε αυτήν την εκστρατείαμπορούν να μεταφέρουν τις κλήσεις. Επιτρέψτε ότι Closersπρέπει να επιτραπεί για αυτήν την επιλογή να παρουσιάσει. - - 0) - { +
+
+
+ QC Αναλήψεις Record - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι ένα ρεκόρ το οποίο έχει δεσμευθεί στην QC. Αυτό δεν είναι πλέον δυνατό να τροποποιηθεί από κανέναν. + -
-
-
- Επιτρέψτε πλησίον και συνδύασε - αυτό είναι όπου μπορείτε ναθέσετε εάν οι χρήστες αυτής της εκστρατείας θα έχουν τηνεπιλογή να πάρουν τις εισερχόμενες κλήσεις με αυτήν τηνεκστρατεία. Εάν θέλετε να κάνετε συνδυασμένων εισερχόμενος καιεξερχόμενος έπειτα αυτό πρέπει να τεθεί το Υ. Εάν θέλετε μόνονα κάνετε τον εξερχόμενο σχηματισμό σε αυτήν την εκστρατείαθέστε αυτό σε Ν. Default είναι ν.
-
+
- Κατάσταση Κλήσης - Εδώ ορίζετε τις καταστάσεις που θέλετε να κληθούν μέσα στις λίστες, οι οποίες είναι ενεργές για την εκστρατεία παρακάτω. Να προσθέσει μια άλλη θέση στον πίνακα, να το επιλέξει από τονεξελισσόμενους κατάλογο και τον κρότο ΠΡΟΣΘΕΤΕΙ. Για να αφαιρέσετεμια από τις θέσεις πινάκων, χτυπήστε στη REMOVE σύνδεση δίπλαστη θέση που θέλετε να αφαιρέσετε. + ΠροσθήκηΏρα ρολόι Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να προσθέσετε εγγραφές στο μητρώο timeclock.
-
+
- Ταξινόμηση Λίστας - Σε αυτόν τον κατάλογο επιλογών μπορείτε να επιλέξετε πώς οι οδηγοί, που ταιριάζουν με τις καταστάσεις που επιλέξατε παραπάνω, θα τοποθετηθούν στον hopper: -
  - DOWN: επιλογή των πρώτων οδηγών που εισήχθησαν στον πίνακα vicidial_list -
  - UP: επιλογή των τελευταίων οδηγών που εισήχθησαν στον πίνακα vicidial_list -
  - UP PHONE: επιλογή του υψηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα κάτω -
  - DOWN PHONE: επιλογή του χαμηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα πάνω -
  - UP LAST NAME: έναρξη με τα επίθετα να ξεκινάνε με Ζ και συνεχίζει προς τα κάτω -
  - DOWN LAST NAME: έναρξη με τα επίθετα να ξεκινάνε με Α και συνεχίζει προς τα πάνω -
  - UP COUNT: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα κάτω -
  - DOWN COUNT: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει -
  - DOWN COUNT 2nd NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε άλλο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων -
  - DOWN COUNT 3nd NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τρίτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων -
  - DOWN COUNT 4th NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τέταρτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων + ΤροποποιήστεΏρα ρολόι Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να τροποποιήσει τις εγγραφές του timeclock log.
-
+
- Επίπεδο Hopper - Αυτό είναι το πόσους οδηγούς η διαδικασία VDhopper, προσπαθεί να διατηρήσει στον πίνακα vicidial_hopper για αυτήν την εκστρατεία. Εάν η διαδικασία VDhopper τρέχει κάθε λεπτό, ρυθμίστε αυτό λίγο περισσότερο από τον αριθμό των οδηγών που περνούν σε ένα λεπτό. + Εγγραφή ΔιαγραφήΏρα ρολόι Record - Η επιλογή αυτή επιτρέπει στο χρήστη να διαγράψει αρχεία στο timeclock log.
-
+
- Φίλτρο Οδηγοιύ - αυτή είναι μία μέθοδος για να δημιουργήτε φίλτρα για την SQL ερώτηση. Χρησιμοποιήστε αυτό το χαρακτηριστικό με προσοχή, είναι εύκολο να σταματήσει το σύστημα με μία μικρή αλλαγή στη δήλωση SQL. Η προεπιλογή είναι ΚΑΜΙΑ. + Agent API Πρόσβαση - Η επιλογή αυτή επιτρέπει τον λογαριασμό που πρέπει να χρησιμοποιούνται με την vicidial πράκτορας API εντολές.
-
+
- Υποχρεωτική Επαναφορά του Hopper - Αυτό σας επιτρέπει καθαρίσετε τα περιεχόμενα κατά την επιβεβαίωση της φόρμας. Αυτό θα συμβεί πάλι όταν η διαδικασία VDhopper θα τρέξει. + Manager Shift Επιβολή Override - Η ρύθμιση αυτή ορίζεται σε 1, αν θα επιτρέψει ο διαχειριστής του να εισέλθει στα χρήστη και κωδικό πρόσβασης σε έναν πράκτορα της οθόνης για να παρακάμψετε τους περιορισμούς σχετικά με τη μετατόπιση ενός πράκτορα συνόδου εάν ο πράκτορας προσπαθεί να συνδεθείτε με τους εκτός της βάρδιας. Η προεπιλογή είναι 0.
-
+
- Μέθοδος Κλήσης + Download Κατάλογοι - Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει τη Διαχείριση κλικ για να κατεβάσετε την λίστα σύνδεσμο στο κάτω μέρος της οθόνης μια λίστα τροποποίηση για την εξαγωγή του συνόλου του περιεχομένου του καταλόγου σε μια επίπεδη αρχείο δεδομένων. Η προεπιλογή είναι 0. + +
+
+
+ Εξαγωγή Εκθέσεις - Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει την πρόσβαση του διευθυντή της εξαγωγής κλήση εκθέσεις σχετικά με τις εκθέσεις της οθόνης. Η προεπιλογή είναι 0. Για την εξαγωγή ζητεί έκθεση, ώστε τα ακόλουθα τομέα χρησιμοποιείται για τις εξαγωγές:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner + +
+
+
+ Διαγραφή DNC Από Λίστες - Αυτή η ρύθμιση, εάν οριστεί σε 1 θα επιτρέψει έναν διευθυντή για την άρση των αριθμούς τηλεφώνου από τους καταλόγους DNC στο VICIDIAL σύστημα. + + + + + + +



+ + VICIDIAL_CAMPAIGNS ΠΙΝΑΚΑΣ

+
+
+ ID Εκστρατείας - Αυτό είναι το σύντομο όνομα της εκστρατείας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 8 χαρακτήεςh. + +
+
+
+ Ονομα Εκστρατείας - Αυτό είναι η περιγραφή της εκστρατείας, πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες. + +
+
+
+ Περιγραφή εκστρατείας - αυτό είναι ένας τομέας υπομνημάτων γιατην εκστρατεία, είναι προαιρετικό και μπορεί να είναι έναμέγιστο 255 χαρακτήρων στο μήκος. + +
+
+
+ Ημερομηνία αλλαγής εκστρατείας - αυτό είναι η τελευταία φοράότι οι τοποθετήσεις για αυτήν την εκστρατεία τροποποιήθηκαν απόκαμιά άποψη. + +
+
+
+ Τελευταία ημερομηνία σύνδεσης εκστρατείας - αυτό είναι ητελευταία φορά ότι ένας πράκτορας καταγράφηκε σε αυτήν τηνεκστρατεία. + +
+
+
+ Ημερομηνία τελευταίας Καμπάνια Call - Αυτή είναι η τελευταία φορά που μια κλήση αυτή γίνεται από έναν πράκτορα συνδεθεί σε αυτή την καμπάνια. + +
+
+
+ Η εκστρατεία Stats αναζωογονεί - αυτό το τετραγωνίδιο θαεπιτρέψει ότι για να αναγκάσετε τα vicidial statsαναζωογονείτε, ακόμα κι αν η εκστρατεία δεν είναι ενεργός. + +
+
+
+ Ενεργοποίηση - Εδώ μπορείτε να θέσετε την εκστρατεία ενεργή ή μη ενεργή. Εάν είναι μη ενεργή, κανένας δεν μπορεί να συνδεθεί σε αυτήν. + +
+
+
+ Τηλ.Σύνδεση Στάθμευσης - Εδώ μπορείτε να ορίσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε, ότι η εσωτ.σύνδεση βρίσκεται στο extensions.conf και ότι δείχνει το αρχείο παρακάτω. + +
+
+
+ ν Αρχείου Στάθμευσης - Εδώ μπορείτε να προσαρμόσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε ότι το αρχείο έχει 10 χαρακτήρες ή λιγότερους και ότι το αρχείο βρίσκεται στον κατάλογο /var/lib/asterisk/sounds. + +
+
+
+ Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυτήν την ομάδα. Για να προσαρμόσετε το ερώτημα string μετά την ηλεκτρονική φόρμα, απλά αρχίζει την ηλεκτρονική φόρμα με VAR και στη συνέχεια τη διεύθυνση URL που θέλετε να χρησιμοποιήσετε, σε αντικατάσταση των μεταβλητών με τις ονομασίες των μεταβλητών που θέλετε να χρησιμοποιήσετε - Α - phone_number - Β -- όπως ακριβώς και στην καρτέλα scripts τμήμα. + +
+
+
+ Web Μορφή Target- Αυτό είναι όπου μπορείτε να ρυθμίσετε το έθιμο ιστοσελίδα πλαίσιο ότι η ηλεκτρονική φόρμα θα ανοίξει όταν ο χρήστης κάνει κλικ στην ηλεκτρονική φόρμα κουμπί. Προεπιλεγμένο είναι _blank. + +
+
+
+ Επιτρέπει τους Closers - Εδώ ορίζετε εάν οι χρήστες της εκστρατείας θα έχουν την επιλογή να στείλουν την κλήση σε έναν closer. + +
+
+
+ Ομάδα μεταφοράς προεπιλογής - αυτός ο τομέας είναι η-ΟΜΑΔΑπροεπιλογής που θα επιλεχτεί αυτόματα όταν πηγαίνει ο πράκτοραςστο πλαίσιο μεταφορά-διασκέψεων στη διεπαφή πρακτόρων τους. + +
+
+
+ Ομάδες μεταφοράς - με αυτές τις λίστες τετραγωνιδίου μπορείτε ναεπιλέξετε τις ομάδες ότι οι πράκτορες σε αυτήν την εκστρατείαμπορούν να μεταφέρουν τις κλήσεις. Επιτρέψτε ότι Closersπρέπει να επιτραπεί για αυτήν την επιλογή να παρουσιάσει. + + 0) + { + ?> +
+
+
+ Επιτρέψτε πλησίον και συνδύασε - αυτό είναι όπου μπορείτε ναθέσετε εάν οι χρήστες αυτής της εκστρατείας θα έχουν τηνεπιλογή να πάρουν τις εισερχόμενες κλήσεις με αυτήν τηνεκστρατεία. Εάν θέλετε να κάνετε συνδυασμένων εισερχόμενος καιεξερχόμενος έπειτα αυτό πρέπει να τεθεί το Υ. Εάν θέλετε μόνονα κάνετε τον εξερχόμενο σχηματισμό σε αυτήν την εκστρατείαθέστε αυτό σε Ν. Default είναι ν. + +
+
+
+ Κατάσταση Κλήσης - Εδώ ορίζετε τις καταστάσεις που θέλετε να κληθούν μέσα στις λίστες, οι οποίες είναι ενεργές για την εκστρατεία παρακάτω. Να προσθέσει μια άλλη θέση στον πίνακα, να το επιλέξει από τονεξελισσόμενους κατάλογο και τον κρότο ΠΡΟΣΘΕΤΕΙ. Για να αφαιρέσετεμια από τις θέσεις πινάκων, χτυπήστε στη REMOVE σύνδεση δίπλαστη θέση που θέλετε να αφαιρέσετε. + +
+
+
+ Ταξινόμηση Λίστας - Σε αυτόν τον κατάλογο επιλογών μπορείτε να επιλέξετε πώς οι οδηγοί, που ταιριάζουν με τις καταστάσεις που επιλέξατε παραπάνω, θα τοποθετηθούν στον hopper: +
  - DOWN: επιλογή των πρώτων οδηγών που εισήχθησαν στον πίνακα vicidial_list +
  - UP: επιλογή των τελευταίων οδηγών που εισήχθησαν στον πίνακα vicidial_list +
  - UP PHONE: επιλογή του υψηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα κάτω +
  - DOWN PHONE: επιλογή του χαμηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα πάνω +
  - UP LAST NAME: έναρξη με τα επίθετα να ξεκινάνε με Ζ και συνεχίζει προς τα κάτω +
  - DOWN LAST NAME: έναρξη με τα επίθετα να ξεκινάνε με Α και συνεχίζει προς τα πάνω +
  - UP COUNT: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα κάτω +
  - DOWN COUNT: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει +
  - DOWN COUNT 2nd NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε άλλο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων +
  - DOWN COUNT 3nd NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τρίτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων +
  - DOWN COUNT 4th NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τέταρτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων +
  - RANDOM: Τυχαία αρπάζει οδηγήσει στο καταστάσεις και κατάλογοι που ορίζονται +
  - LAST CALL UP TIME: Ταξινομεί από τα νεότερα τοπική ώρα πρόσκληση για την οδηγεί +
  - ΚΑΤΩ LAST CALL TIME: Ταξινομεί από τις παλαιότερες τοπική ώρα πρόσκληση για την οδηγεί +
  - UP RANK: Ξεκινά με την υψηλότερη θέση και τα έργα του τρόπο τις +
  - DOWN RANK: Ξεκινά με το χαμηλότερο βαθμό και λειτουργεί το δρόμο του μέχρι +
  - UP OWNER: Ξεκινά με τους ιδιοκτήτες που αρχίζει με Ζ και λειτουργεί επηρεάζοντας +
  - DOWN OWNER: Ξεκινά με τους ιδιοκτήτες που αρχίζει με Α και λειτουργεί το δρόμο του μέχρι +
  - UP TIMEZONE: Ξεκινά με την Ανατολική χρονικών ζωνών και έργα Δύση +
  - DOWN TIMEZONE: Ξεκινά με τα δυτικά χρονικών ζωνών και των έργων Ανατολή + +
+
+
+ Επίπεδο Hopper - Αυτό είναι το πόσους οδηγούς η διαδικασία VDhopper, προσπαθεί να διατηρήσει στον πίνακα vicidial_hopper για αυτήν την εκστρατεία. Εάν η διαδικασία VDhopper τρέχει κάθε λεπτό, ρυθμίστε αυτό λίγο περισσότερο από τον αριθμό των οδηγών που περνούν σε ένα λεπτό. + +
+
+
+ Φίλτρο Οδηγοιύ - αυτή είναι μία μέθοδος για να δημιουργήτε φίλτρα για την SQL ερώτηση. Χρησιμοποιήστε αυτό το χαρακτηριστικό με προσοχή, είναι εύκολο να σταματήσει το σύστημα με μία μικρή αλλαγή στη δήλωση SQL. Η προεπιλογή είναι ΚΑΜΙΑ. + +
+
+
+ Drop Lockout Ώρα - Αυτό είναι ένας αριθμός των ωρών που DROP εγκαταλείψει κλήσεις θα πρέπει να εμποδίζεται από το να εξερχόμενες, για να απενεργοποιήσετε οριστεί σε 0. Αυτή η ρύθμιση είναι πολύ χρήσιμο σε χώρες όπως το Ηνωμένο Βασίλειο όπου υπάρχουν ρυθμίσεις που παρεμποδίζουν την απόπειρα καλώντας τους πελάτες της εντός 72 ωρών από την εγκατάλειψη, ή DROP. Προεπιλογή είναι 0. + +
+
+
+ Υποχρεωτική Επαναφορά του Hopper - Αυτό σας επιτρέπει καθαρίσετε τα περιεχόμενα κατά την επιβεβαίωση της φόρμας. Αυτό θα συμβεί πάλι όταν η διαδικασία VDhopper θα τρέξει. + +
+
+
+ Μέθοδος Κλήσης - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Μέθοδος Κλήσης is changed. If RATIO then the normal dialing a number of lines for Ενεργό agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. Δεν μπορείτε να αλλάξετε το επίπεδο Αυτόματης Κλήσης, εάν έχετε ορίσει κάποια μέθοδο Προσαρμογής Κλήσεων. Μόνο ο διακομιστής μπορεί να το αλλάξει όταν είναι σε διαδικασία αυτόματων κλήσεων. . Εισερχόμενα_MAN επιτρέπει στον αντιπρόσωπο να πραγματοποιηθεί χειροκίνητη κλήση κλήσεις από μια εκστρατεία λίστα, ενώ είναι σε θέση να λάβει εισερχόμενη κλήση κλήσεις μεταξύ εγχειρίδιο κλήσεις. -
-
-
- Επίπεδο Αυτόματης Κλήσης - Εδώ είναι που καθορίζεται πόσες γραμμές θα χρησιμοποιούνται ανά ενεργό χρήστη. Μηδέν (0) σημαίνει ότι η αυτόματη κλήση είναι μη ενεργή και οι χρήστες πατούν το πλήκτρο για την κλήση κάθε αριθμού. Διαφορετικά, το σύστημα καλεί γραμμές ίσες με τους ενεργούς χρήστες, πολλαπλασιασμένους με το επίπεδο κλήσης και σύμφωνα με το πόσες γραμμές η εκστρτεία σε κάθε διακομιστή επιτρέπει. Το ADAPT τετραγωνίδιο ΣΥΜΠΛΗΡΩΜΑΤΙΚΗΣ ΠΡΟΜΉΘΕΙΑΣ επιτρέπει σεσας για να αναγκάσει ένα νέο επίπεδο πινάκων ακόμα κι αν ημέθοδος πινάκων είναι σε έναν ADAPT τρόπο. Αυτό είναιχρήσιμο εάν υπάρχει μια δραματική μετατόπιση στην ποιότητα τωνμολύβδων και θέλετε να αλλάξετε δραστικά το dial_level με τοχέρι. +
+
+
+ Επίπεδο Αυτόματης Κλήσης - Εδώ είναι που καθορίζεται πόσες γραμμές θα χρησιμοποιούνται ανά ενεργό χρήστη. Μηδέν (0) σημαίνει ότι η αυτόματη κλήση είναι μη ενεργή και οι χρήστες πατούν το πλήκτρο για την κλήση κάθε αριθμού. Διαφορετικά, το σύστημα καλεί γραμμές ίσες με τους ενεργούς χρήστες, πολλαπλασιασμένους με το επίπεδο κλήσης και σύμφωνα με το πόσες γραμμές η εκστρτεία σε κάθε διακομιστή επιτρέπει. Το ADAPT τετραγωνίδιο ΣΥΜΠΛΗΡΩΜΑΤΙΚΗΣ ΠΡΟΜΉΘΕΙΑΣ επιτρέπει σεσας για να αναγκάσει ένα νέο επίπεδο πινάκων ακόμα κι αν ημέθοδος πινάκων είναι σε έναν ADAPT τρόπο. Αυτό είναιχρήσιμο εάν υπάρχει μια δραματική μετατόπιση στην ποιότητα τωνμολύβδων και θέλετε να αλλάξετε δραστικά το dial_level με τοχέρι. + +
+
+
+ Διαθέσιμα μόνο ετικέτες - Εάν θέσετε σε Ν αυτό το πεδίο, θα αφήσει εκτός τις καταστάσεις των χειριστών out INCALL και QUEUE, καθώς υπολογίζεται ο αριθμός των κλήσεων όταν δεν είναι σε κατάσταση κλήσης MANUAL. Προκαθορισμένα είναι Ο. + +
+
+
+ Ποσοστό Ορίου Εγκατ. Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο του ποσοστού εγκατ. κλήσεων καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO. + +
+
+
+ Μέγιστο Επίπεδο Προσαρμογής Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο για το όριο του αριθμού γραμμών για κάθε χειριστή καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO. Αυτός ο αριθμός μπορεί να είναι μεγαλύτερος από το επίπεδο αυτόματης κλήσης εάν το υλικό σας το υποστηρίζει. Η τιμή πρέπει να είναι θετικός αριθμός μεγαλύτερος από ένα και μπορεί να έχει δεκαδικά. Προκαθορισμένα είναι 3.0. + +
+
+
+ Τελευταίος Χρόνος Διακομιστή - Αυτό το πεδίο χρησιμοποιείτε μόνο από την μέθοδο ADAPT_TAPERED. Θα πρέπει να καταχωρήσετε την ώρα και τα λεπτά που θα σταματήσει τις κλήσεις η εκστρατεία. Αυτό επιτρέπει στον αλγόριθμο να αποφασίσει πόσο επιθετικά θα κάνει κλήσεις και πόσο χρόνο. + +
+
+
+ Ενταση Τροποποίησης Προσαρμογής - Αυτό το πεδίο χρησιμοποιείτε για να αλλάζει ένταση προβλέψεων είτε υψηλότερα ή χαμηλότερα. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO. + +
+
+
+ Επίπεδο Κλήσεων Μεταβολής Στόχου - Αυτό το πεδίο χρησιμοποιείτε για να έχει στόχο ένα συγκεκριμένο αριθμό χειριστών να περιμένουν κλήσεις ή κλήσεις να περιμένουν για χειριστές. Π.χ. εάν θέλετε πάντα να έχετε κατά μέσο όρο έναν χειριστή ελεύθερο για ν παίρνει τις κλήσεις, τότε πρέπει να το θέσετε σε -1. Εάν στόχος είναι να έχετε πάντα μία κλήση σε αναμονή για ένα χειριστή, τότε πρέπει να το θέσετε σε 1. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO. + +
+
+
+ Ταυτόχρονες μεταφορές - αυτή η ρύθμιση χρησιμοποιείται για νακαθορίσει τον αριθμό κλήσεων που μπορεί να σταλεί στουςπράκτορες συγχρόνως. Συνιστάται αυτή η ρύθμιση να αφήνεται στοΑΥΤΟΚΙΝΗΤΟ. Αυτός ο τομέας δεν χρησιμοποιείται με τη ΧΕΙΡΩΝΑΚΤΙΚΗμέθοδο πινάκων. + +
+
+
+ Κοτσίδας Προτεραιότητα - Αυτή η ρύθμιση χρησιμοποιείται για να καθορίσει τη σειρά με την οποία οι εξερχόμενες κλήσεις από αυτή την εκστρατεία θα πρέπει να απαντηθούν σε σχέση με τις εισερχόμενες κλήσεις αν η συγκεκριμένη καμπάνια είναι αναμεμειγμένο σε λειτουργία. + +
+
+
+ Πολλαπλές Καμπάνια Drop Rate Ομάδα - Αυτό το χαρακτηριστικό σας επιτρέπει να ορίσετε μια καμπάνια ως μέλος μιας καμπάνιας Drop Τιμή Ομάδα, ή μια ομάδα από τις καμπάνιες του Ανθρώπου Απαντήθηκε οποίων κλήσεις και κλήσεις Πτώση για όλες τις καμπάνιες της ομάδας θα πρέπει να συνδυαστούν σε ένα κοινό ποσοστό πτώσης, ή να εγκαταλείψει ρυθμό. Αυτό σας επιτρέπει να εκτελέσετε με πολλαπλές καμπάνιες ταυτόχρονα και πιο εύκολα τον έλεγχο ποσοστού πτώση σας. Αυτό είναι ιδιαίτερα χρήσιμο στο Ηνωμένο Βασίλειο, όπου κανονισμοί επιτρέπουν μείωση του ποσοστού αυτού με τη μέθοδο υπολογισμού της καμπάνιας ομάδα για την ίδια εταιρεία, ακόμη και αν υπάρχουν διάφορες καμπάνιες της εταιρείας που εκτελεί κατά τη διάρκεια της ίδιας ημέρας. Για να ενεργοποιήσετε αυτή για μια καμπάνια, απλά επιλέξτε μια ομάδα από τη λίστα. Υπάρχουν 10 ομάδες που ορίζονται στο σύστημα από προεπιλογή, μπορείτε να επικοινωνήσετε με το διαχειριστή του συστήματος για να προσθέσετε περισσότερο. Προεπιλογή είναι ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ. + +
+
+
+ Αυτόματος ALT-ARJCMO'S που σχηματίζει - αυτή η ρύθμισηχρησιμοποιείται για να σχηματίσει αυτόματα τους εναλλάσσομαιτομείς αριθμού σχηματίζοντας σε ΑΝΑΛΟΓΙΑ και ΝΑ ΠΡΟΣΑΡΜΟΣΕΙ τιςμεθόδους πινάκων όταν δεν υπάρχει καμία επαφή στον κύριοτηλεφωνικό αριθμό για έναν μόλυβδο, τις θέσεις NA, β,συνεχούς ρεύματος και ν. Αυτή η ρύθμιση δεν χρησιμοποιείται με τηΧΕΙΡΩΝΑΚΤΙΚΗ μέθοδο πινάκων. EXTENDED αναπληρωματικών αριθμοί είναι αριθμοί που φορτώνονται στο σύστημα εκτός του κανονικού οδηγήσει πληροφορίες οθόνης. Χρησιμοποιώντας EXTENDED σας μπορεί να έχει εκατοντάδες αριθμούς τηλεφώνου για ένα μόνο πελάτη ρεκόρ. + +
+
+
+ Κλήση Εκτός Χρόνου - άν έχει οριστεί, οι κλήσεις που φυσιολογικά θα έκλειναν μετά το χρόνο που έχει οριστεί στο extensions.conf, θα κλείσουν σε αυτόν τον χρόνο εάν είναι μικρότερος του extensions.conf. Αυτό επιτρέπει στην γρήγορη αλλαγή των χρόνων από διακομιστή σε διακομιστή και περιορίζοντας τα αοτελέσματα σε μία εκστρατεία. Εάν έχετε πολλές κλήσεις με Αυτόματους Τηλεφωνητές ή Φωνητικών Ταχυδρομείων, μπορείτε να αλλάξετε αυτή την τιμή μεταξύ 21-26 και να δείτε αν τα αποτελέσματα είναι καλύτερα. + +
+
+
+ Καμπάνια VDAD επέκταση - Το πεδίο αυτό επιτρέπει για μια προσαρμοσμένη VDAD μεταφορά επέκταση. Αυτό σας επιτρέπει να χρησιμοποιήσετε διάφορες μεθόδους χειρισμού κλήσεων, ανάλογα με την καμπάνια σας. + - 8364 - 8368 ως ίδια + - 8365 - Θα στείλετε την πρόσκληση σε ένα μόνο παράγοντα στον ίδιο διακομιστή, όπως είναι η πρόσκληση για + - 8366 - Χρησιμοποιείται για Τύπο-1 εκστρατείες και έρευνα + - 8367 - Θα προσπαθήσουμε πρώτα να στείλετε την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή, τότε θα ψάξει για άλλους servers + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση ότι μετά, ίδια συμπεριφορά ως 8368 + - 8373 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση μετά την ίδια συμπεριφορά ως 8366 + +
+
+
+ Μήνυμα Αυτόματου Τηλεφωνητή - Το πεδίο αυτό είναι για την εισαγωγή των εντολών για να παίζουν όταν το πρακτορείο παίρνει ένα αυτόματο τηλεφωνητή και κάνει κλικ στο κουμπί Απάντηση Μήνυμα ρούχων στο πλαίσιο διάσκεψης μεταφοράς. Πρέπει να ορίσετε αυτό είτε σε αρχείο ήχου στο ακουστικό κατάστημα ή ένα TTS προτροπή εάν TTS είναι ενεργοποιημένη στο σύστημά σας. + +
+
+
+ WaitForSilence Επιλογές - Αν Περιμένετε Για σιωπή είναι επιθυμητή για κλήσεις που έχουν εντοπιστεί ως τηλεφωνητές τότε το πεδίο αυτό έχει αυτές τις επιλογές. Υπάρχουν δύο ρυθμίσεις που χωρίζονται από ένα κόμμα, η πρώτη επιλογή είναι το χρονικό διάστημα για την ανίχνευση σιωπή σε χιλιοστά του δευτερολέπτου και η δεύτερη επιλογή είναι για πόσες φορές για να ανιχνεύσει ότι πριν από την αναπαραγωγή του μηνύματος. Προεπιλογή είναι EMPTY για άτομα με ειδικές ανάγκες. Μια τυπική τιμή για αυτό θα πρέπει να περιμένετε για 2 δευτερόλεπτα της σιωπής δύο φορές: 2000,2 + +
+
+
+ AMD στέλνει στο VM - αυτές οι επιλογές επιτρέπουν να καθορίσετε εάν ένα μήνυμα αφήνεται σε έναν αυτόματο τηλεφωνητή όταν ανιχνεύεται ότι η κλήση είναι ένας αυτόματος τηλεφωνητής και εάν το AMD είναι ενεργό. + +
+
+
+ CPD AMD Δράση - Αν χρησιμοποιείτε τον Sangoma ParaXip Πρόσκληση πρόοδος Ανίχνευση λογισμικό και στη συνέχεια θα θέλετε να ενεργοποιήσετε αυτή τη ρύθμιση, είτε να DISPO που θα διαθέσεις την πρόσκληση ως AA και να κολλήσει το πάνω αν η πρόσκληση είναι υπό επεξεργασία και δεν έχει σταλεί σε έναν πράκτορα ή ακόμη μήνυμα που θα αποστείλει την πρόσκληση προς το τηλεφωνητή Μήνυμα ορίζεται για αυτή την καμπάνια. Προεπιλεγμένο είναι DISABLED. + +
+
+
+ Κλήση Εναλ Αρ Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να κάνει χειροκίνητη κλήση του εναλλακτικού αριθμού τηλεφώνου ή το πεδίο address3 μετά την κλήση του κυρίου αριθμού. + +
+
+
+ Δευτερ. Εγκαταλ. Κλήσης - Ο αριθμός των δευτερολέπτων από την στιγμή που ο πελάτης σηκώνει το τηλ μέχρι η κλήση να θεωρηθεί εγκαταλειμένη. Μόνο για εξερχόμενες κλήσεις . + +
+
+
+ Drop δράσης - Αυτό το μενού σας επιτρέπει να διαλέξετε ό, τι συμβαίνει σε μια κλήση όταν έχει να περιμένει περισσότερο από ό, τι έχει οριστεί στο Drop Call δευτερόλεπτα τομέα. HANGUP απλά θα κλείσεις την κλήση, το μήνυμα θα αποστείλει την πρόσκληση της Drop παράταση που έχετε ορίζονται κατωτέρω, τηλεφωνητή θα απευθύνει την πρόσκληση προς το τηλεφωνητή θέση που έχετε IN_GROUP ορίζονται κατωτέρω, και θα απευθύνει την πρόσκληση στην ομάδα Inbound που καθορίζονται κατωτέρω + +
+
+
+ Εσωτ.σύνδεση Ασφαλούς Φύλαξης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Ασφαλής Φύλαξης στον διακομιστή. + +
+
+
+ Φωνητικό Ταχυδρομείο - Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα ΕΓΚΑΤΑΛΕΙΠΟΝΤΑΝ, θα κατευθυνθούν σε αυό το φωνητικό ταχυδρομείο, ώστε να ακούσετε και να αφήσετε ένα μήνυμα. + +
+
+
+ Drop Μεταφορά Όμιλος - Αν Drop Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα εάν ανέρχεται Drop Call Δευτερόλεπτα. + +
+
+
+ Επιτρέψτε τους κανένας-χοάνη-μολύβδους Logins - εάν θέστε τοΥ, επιτρέπει στους πράκτορες στη σύνδεση στην εκστρατεία ακόμα κιαν δεν υπάρχει κανένας μόλυβδος που φορτώνεται στη χοάνη γιαεκείνη την εκστρατεία. Αυτή η λειτουργία δεν απαιτείται στιςεκστρατείες στενός-τύπων. Η προεπιλογή είναι ν. + +
+
+
+ Δεν Hopper Κλήση - Αν αυτή είναι ενεργοποιημένη, η χοάνη δεν θα ισχύσει για αυτή την καμπάνια. Αυτή η επιλογή είναι διαθέσιμη μόνο όταν η μέθοδος κλήσης έχει οριστεί σε Manual ή Εισερχόμενα_MAN. Συνιστάται να μην επιτρέψει αυτή την επιλογή εάν έχετε μια πολύ μεγάλη βάση δεδομένων μολύβδου, πάνω από 100.000 οδηγεί. Δεν με Hopper κλήσης, τα ακόλουθα χαρακτηριστικά δεν λειτουργούν: οδηγήσουν ανακύκλωση, auto-alt-κλήσης, μείγμα κατάλογο, λίστα παραγγελιών με XTH ΝΕΑ. Αν θέλετε να χρησιμοποιήσετε Ιδιοκτήτης Μόνο κλήσης θα πρέπει να έχετε Δεν Hopper Κλήση ενεργοποιημένη. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες. + +
+
+
+ Ιδιοκτήτης Μόνο Κλήση - Αν αυτή είναι ενεργοποιημένη, ο αντιπρόσωπος θα λάβουν μόνο οδηγεί ότι είναι εντός των παραμέτρων για την ιδιοκτησία. Εάν αυτό έχει οριστεί στην ΧΡΗΣΤΗ τότε ο πράκτορας πρέπει να καθορίζει ο χρήστης στη βάση δεδομένων, όπως ο ιδιοκτήτης αυτού του μολύβδου. Αν τεθεί στο έδαφος τότε ο ιδιοκτήτης του μολύβδου πρέπει να ταιριάζει με το έδαφος που περιλαμβάνεται στην οθόνη του χρήστη Τροποποίηση για αυτό παράγοντα. Εάν αυτό έχει οριστεί στην USER_GROUP τότε ο ιδιοκτήτης του μολύβδου πρέπει να ταιριάζει με την ομάδα χρηστών ότι ο αντιπρόσωπος είναι μέλος της. Για αυτήν τη δυνατότητα να εργαστεί με τη μέθοδο τηλεφωνικής σύνδεσης πρέπει να οριστεί σε Manual ή Εισερχόμενα_MAN και αριθ Χόπερ κλήσης πρέπει να είναι ενεργοποιημένα. Προεπιλογή είναι ΚΑΝΕΝΑ για άτομα με ειδικές ανάγκες. + + 0) + { + ?> +
+
+
+ Agent Επιλέξτε Εδάφη - Εάν αυτή η επιλογή είναι ενεργοποιημένη και το πρακτορείο ανήκει σε μία τουλάχιστον από έδαφος, ο αντιπρόσωπος θα έχει τη δυνατότητα επιλογής των εδαφών για να καλέσετε από την οδηγεί. Ο πράκτορας θα δείτε μια λίστα των διαθέσιμων εδαφών κατά την σύνδεση και θα έχουν τη δυνατότητα να επιστρέψει στο έδαφος του εν λόγω καταλόγου, όταν σταματούσε για να αλλάξει τα εδάφη τους. Για αυτή τη λειτουργία για την εργασία του ιδιοκτήτη Μόνο Κλήση επιλογή πρέπει να οριστεί σε έδαφος και το χρήστη εδάφη πρέπει να είναι ενεργοποιημένα στο Ρυθμίσεις Συστήματος. + + +
+
+
+ Μίγμα διαταγής καταλόγων - αγνοεί τους τομείς θέσης διαταγήςκαι πινάκων μολύβδου. Θα χρησιμοποιήσει τις παραμέτρους καταλόγωνκαι θέσης για την επιλεγμένη είσοδο μιγμάτων καταλόγων στο υπο-τμήμα μιγμάτων καταλόγων αντ' αυτού. Η προεπιλογή είναι ΕΚΤΟΣΛΕΙΤΟΥΡΓΊΑΣ. + +
+
+
+ Ταυτότητα μιγμάτων καταλόγων - ταυτότητα του μίγματος καταλόγων.Πρέπει να είστε από 2-20 χαρακτήρες στο μήκος χωρίς ταδιαστήματα ή άλλη ειδική στίξη. + +
+
+
+ Όνομα μιγμάτων καταλόγων - περιγραφικό όνομα του μίγματοςκαταλόγων. Πρέπει να είστε από 2-50 χαρακτήρες στο μήκος. + +
+
+
+ Λεπτομέρεια μιγμάτων καταλόγων - η σύνθεση της εισόδου μιγμάτωνκαταλόγων. Περιέχει τον κατάλογο ταυτότητα, τη διαταγή μιγμάτων,τα ποσοστά και τις θέσεις που αποτελούν αυτό το μίγμα καταλόγων.Τα ποσοστά πρέπει πάντα να προσθέσουν μέχρι 100, και οικατάλογοι όλοι πρέπει να είναι ενεργοί και καθορισμένοι τηνεκστρατεία για την είσοδο μιγμάτων διαταγής που ενεργοποιείται. + +
+
+
+ Μέθοδος μιγμάτων καταλόγων - η μέθοδος όλα τα μέρη τηςλεπτομέρειας μιγμάτων καταλόγων από κοινού. EVEN_MIX θααναμίξει τους μολύβδους από κάθε μέρος που παρεμβάλλεται λευκέςσελίδες με τα άλλα μέρη, όπως αυτό το 1,2,3,1,2,3,1,2,3.IN_ORDER θα βάλει τους μολύβδους στη διαταγή στην οποίαπαρατίθενται στην οθόνη λεπτομέρειας μιγμάτων καταλόγων1,1,1,2,2,2,3,3,3. ΤΥΧΑΊΑ θα τους βάλουν στην ΤΥΧΑΊΑ προεπιλογήδιαταγής 1,3,2,1,1,3,2,1,3. είναι IN_ORDER. + +
+
+
+ Agent Screen Εκτεταμένη Alt Dial - Αυτό το χαρακτηριστικό επιτρέπει σε υπαλλήλους να επεκταθεί η πρόσβαση των αναπληρωματικών τους αριθμούς τηλεφώνου για οδηγεί πέρα από την κανονική Alt τηλέφωνο και Address3 τομείς που μπορούν να χρησιμοποιηθούν σε VICIDIAL για αριθμούς τηλεφώνου πέραν της κύριας αριθμό τηλεφώνου. Η παράταση μπορεί να είναι αριθμοί τηλεφώνου κλήσης αυτόματα χρησιμοποιώντας το πρόγραμμα Auto-Alt-Dial χαρακτηριστικό στο VICIDIAL ρυθμίσεις της καμπάνιας, αλλά αυτό που επιτρέπει Agent Screen χαρακτηριστικό θα επιτρέψει επίσης τον αντιπρόσωπο για να καλέσετε τους αριθμούς αυτούς από τους πράκτορα οθόνη, καθώς και να επεξεργαστούν τις πληροφορίες. + +
+
+
+ Έρευνα Πρώτο αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται από τη στιγμή που ο πελάτης παραλαμβάνει το τηλέφωνο όταν τρέχει μια έρευνα καμπάνια. + +
+
+
+ Έρευνα DTMF Digits - Αυτό το πεδίο όπου θα καθοριστούν οι θέσεις ότι ο πελάτης μπορεί να πατήσει ως επιλογή για μια έρευνα της καμπάνιας. ψηφία DTMF είναι έγκυρο0123456789*#. Όλες οι επιλογές εκτός από το δεν ενδιαφέρεται, τρίτο και τέταρτο ψηφίο επιλογές θα προχωρήσουμε στο δρόμο Έρευνα Μέθοδος κλήση. + +
+
+
+ Έρευνα δεν ενδιαφέρεται Digit - Αυτό το πεδίο όπου θα καθορίσει ο πελάτης ψηφίο πιεστεί θα δείτε ότι δεν ενδιαφέρονται. + +
+
+
+ Έρευνα δεν ενδιαφέρεται Status - Το πεδίο αυτό είναι που έχετε επιλέξει το καθεστώς που θα χρησιμοποιηθεί για δεν ενδιαφέρεται. DNC Εάν χρησιμοποιείται και η καμπάνια είναι ρυθμισμένη να χρησιμοποιεί DNC στη συνέχεια τον αριθμό τηλεφώνου, θα προστίθεται αυτόματα στο VICIDIAL εσωτερική DNC λίστα.και πιθανώς η εκστρατεία ειδικά DNC λίστα. + +
+
+
+ Έρευνα Opt-σε αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-in με την έρευνα, δεν επέλεξε-ή που δεν απάντησαν και αν η μη ανταπόκριση ενέργεια έχει οριστεί σε OptOut. Μετά από αυτό το αρχείο ήχου παίζεται, η μέθοδος έρευνας δράση. + +
+
+
+ Έρευνα δεν ενδιαφέρεται αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-από την έρευνα, δεν επέλεξε-ή σε περίπτωση που δεν απαντήσει η μη ανταπόκριση ενέργεια έχει οριστεί σε OptIn. Μετά από αυτό το αρχείο ήχου παίζεται, η πρόσκληση θα είναι ανηρτημένα. + +
+
+
+ Μέθοδος Έρευνα - Αυτή η επιλογή καθορίζει τι θα συμβεί σε μια κλήση μετά ο πελάτης επέλεξε-in. AGENT_XFER θα αποστείλει την πρόσκληση για το επόμενο διαθέσιμο πράκτορα. Τηλεφωνητής θα αποστείλει την πρόσκληση προς το τηλεφωνητή θέση που καθορίζεται στο Τηλεφωνητής τομέα. ΕΠΕΚΤΑΣΗ θα στείλει ο πελάτης με την παράταση που ορίζεται στην έκθεση Xfer Επέκταση τομέα. HANGUP θα κλείσεις τον πελάτη. CAMPREC_60_WAV θα στείλει ο πελάτης να έχουμε μια καταγραφή που γίνεται με τους απάντηση, η καταγραφή αυτή θα πρέπει να τοποθετούνται σε ένα φάκελο με το όνομα, όπως η εκστρατεία στο εσωτερικό της καμπάνιας Έρευνα Καταγραφή Directory. + +
+
+
+ Έρευνα της μη αντίδρασης Δράση - Αυτό είναι που σας καθορίζουν τι θα συμβεί αν δεν υπάρχει απάντηση στο ερώτημα της έρευνας. OptIn θα στείλει την πρόσκληση για την Έρευνα για την μέθοδο και αν ο πελάτης θα πατήσει το ψηφίο DTMF. OptOut θα στείλει ο πελάτης για να μέθοδος έρευνας, ακόμα και εάν δεν πιέσετε ένα ψηφίο DTMF. + +
+
+
+ Έρευνα Απάντηση Digit Map - Αυτό είναι το σημείο όπου μπορείτε να ορίσετε μια περιγραφή για να πάνε με κάθε ψηφίο DTMF επιλογή που ο πελάτης μπορεί να επιλέξει. + +
+
+
+ Έρευνα Xfer Επέκταση - , εάν η έρευνα Μέθοδος ΕΠΕΚΤΑΣΗ είναι επιλεγμένο τότε ο πελάτης θα πρέπει να απευθύνεται έκκληση για την επέκταση αυτής της dialplan. + +
+
+
+ Έρευνα Καμπάνια Καταγραφή Directory - Εάν η μέθοδος έρευνας της CAMPREC_60_WAV είναι επιλεγμένο, τότε η αντίδραση των πελατών θα πρέπει να καταχωρούνται και να τοποθετούνται σε έναν κατάλογο το όνομα του από την εκστρατεία στο εσωτερικό αυτού του καταλόγου. + +
+
+
+ Έρευνα τρίτο ψηφίο - Αυτό επιτρέπει για μια τρίτη διαδρομή κλήση αν το τρίτο ψηφίο, όπως ορίζεται στον εν λόγω τομέα πιέζεται από τον πελάτη. + +
+
+
+ Έρευνα τέταρτο ψηφίο - Αυτό επιτρέπει για μια τέταρτη διαδρομή κλήση αν το τέταρτο ψηφίο, όπως ορίζεται στον εν λόγω τομέα πιέζεται από τον πελάτη. + +
+
+
+ Έρευνα Τρίτη Audio File - Αυτό είναι το τρίτο αρχείο ήχου που πρέπει να διαδραματίζουν κατά την επιλογή από τον πελάτη της δυνατότητας τρίτο ψηφίο. + +
+
+
+ Έρευνα Τρίτη Κατάσταση - Αυτή είναι η τρίτη κατάσταση που χρησιμοποιούνται για την κλήση από την επιλογή από τον πελάτη της δυνατότητας τρίτο ψηφίο. + +
+
+
+ Έρευνα Τρίτη Extension - Αυτή είναι η τρίτη επέκταση που χρησιμοποιείται για την κλήση από την επιλογή από τον πελάτη του την επιλογή τρίτο ψηφίο. Προεπιλογή είναι 8300 που κρέμεται αμέσως στην κλήση μετά το αρχείο ήχου μήνυμα παίζεται. + +
+
+
+ Agent Εμφάνιση Dialable Leads - Αυτή η επιλογή, αν ενεργοποιηθεί, θα δείτε τον αριθμό των διαθέσιμων dialable οδηγεί στην εκστρατεία στην οθόνη παράγοντα. Ο αριθμός αυτός είναι ενημερωμένο στο σύστημα μόλις ένα λεπτό και θα ανανεώνονται στην οθόνη αντιπρόσωπος κάθε λίγα δευτερόλεπτα. + +
-
+
- Διαθέσιμα μόνο ετικέτες - Εάν θέσετε σε Ν αυτό το πεδίο, θα αφήσει εκτός τις καταστάσεις των χειριστών out INCALL και QUEUE, καθώς υπολογίζεται ο αριθμός των κλήσεων όταν δεν είναι σε κατάσταση κλήσης MANUAL. Προκαθορισμένα είναι Ο. + Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη: +
  - random: ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα vicidial_live_agents +
  - oldest_call_start: ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθό κλήσεων. +
  - oldest_call_finish: ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση. +
  - overall_user_level: οι διαταγές από το user_level του χειριστή όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα άβουν περισσότερες κλήσεις. +
  - campaign_rank: διαταγές από την τάξη που δίνεται στον πράκτοραγια την εκστρατεία. Ο υψηλότερος σε χαμηλότερο. +
  - fewest_calls: διαταγές από τον αριθμό κλήσεων πουπαραλαμβάνονται από έναν πράκτορα για εκείνη την συγκεκριμένηεισερχόμενη ομάδα. Λιγότερες κλήσεις πρώτα. +
  - longest_wait_time: παραγγελίες από το ποσό του χρόνου πράκτορας έχει ενεργά περιμένει μια κλήση.
-
+
- Ποσοστό Ορίου Εγκατ. Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο του ποσοστού εγκατ. κλήσεων καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO. + Τοπική Ωρα Κλήσης - Εδώ, μπορείτε να ορίσετε τις ώρες που θα θέλατε να γίνουν οι κλήσεις. Αυτό ελέγχετε από τον κωδικό περις και ρυθμίζεται για Daylight Savings εάν είναι εφαρμόσιμο.
-
+
- Μέγιστο Επίπεδο Προσαρμογής Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο για το όριο του αριθμού γραμμών για κάθε χειριστή καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO. Αυτός ο αριθμός μπορεί να είναι μεγαλύτερος από το επίπεδο αυτόματης κλήσης εάν το υλικό σας το υποστηρίζει. Η τιμή πρέπει να είναι θετικός αριθμός μεγαλύτερος από ένα και μπορεί να έχει δεκαδικά. Προκαθορισμένα είναι 3.0. + Πρόθεμα Κλήσης - Αυτό το ο επιτρέπει την πιο εύκολη αλλαγή της διαδρομής της κλήσης να βγει έξω μέσω διαφορετικής μεθόδου, χωρίς να γίνει επαναφόρτωση στο Asterisk. Προκαθορισμένο είναι το 9 βασισμένο σύμφωνα με το 91NXXNXXXXXX στο σχέδιο κλήσεων - extensions.conf.
-
+
- Τελευταίος Χρόνος Διακομιστή - Αυτό το πεδίο χρησιμοποιείτε μόνο από την μέθοδο ADAPT_TAPERED. Θα πρέπει να καταχωρήσετε την ώρα και τα λεπτά που θα σταματήσει τις κλήσεις η εκστρατεία. Αυτό επιτρέπει στον αλγόριθμο να αποφασίσει πόσο επιθετικά θα κάνει κλήσεις και πόσο χρόνο. + Παράλειψη Κωδικού Τηλεφώνου - Αυτό το πεδίο σας επιτρέπει να αφήσετε εκτός το πεδίο phone_code καθώς γίνονται οι κλήσεις. Προκαθορισμένα είναι Ο.
-
+
- Ενταση Τροποποίησης Προσαρμογής - Αυτό το πεδίο χρησιμοποιείτε για να αλλάζει ένταση προβλέψεων είτε υψηλότερα ή χαμηλότερα. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO. + CallerID Εκστρατείας - Αυτός ο τομέας επιτρέπει την αποστολή ενός αριθμού συνήθειας callerid στις εξερχόμενες κλήσεις. Αυτό είναι ο αριθμός που θα παρουσίαζε στο callerid του προσώπου που καλείτε. Η προεπιλογή είναι ΑΓΝΩΣΤΗ. Εάν χρησιμοποιείτε το T1 ή Eί να σχηματίσει έξω αυτήν την επιλογή είναι μόνο διαθέσιμος εάν χρησιμοποιετε PRIs - ISDN Tί ή Eί - που ανοίγουν το χαρακτηριστικό γνώρισμα συνήθειας callerid, αυτό δεν θα λειτουργήσει με την υπηρεσία ληστεύω-κομματιών - RBS - κυκλώματα. Αυτό θα λειτουργήσει επίσης μέσω του περισσότερου VOIP - ΓΟΥΛΙΑ ή κορμοί IAX - προμηθευτές που επιτρέπουν δυναμικό εξερχόμενο callerID. Η σνήθεια callerID ισχύει μόνο για τις κλήσεις που τοποθετούνται για την εκστρατεία VICIDIAL άμεσα, οποιεσδήποτε κλήσεις ή μεταφορές 3$ων συμβαλλόμενων μερών δεν θα στείλουν τη συνήθεια callerID. ΣΗΜΕΙΩΣΗ: Μερικές φορές να βάλει ΑΓΝΩΣΤΗ ή ΙΔΙΩΤΙΚΗ στον τομέα θα παραγάγει την αποστολή του αριθμού προεπιλογής σας callerID από το μεταφορέα σας με τις κλήσεις. Μπορείτε να θελήσετε να εξετάσετε αυτό και να υποβάλετε 0000000000 ο τομέας callerid αντ' αυτού εάν δεν θέλετε να σας στείλετε CallerID.
-
+
- Επίπεδο Κλήσεων Μεταβολής Στόχου - Αυτό το πεδίο χρησιμοποιείτε για να έχει στόχο ένα συγκεκριμένο αριθμό χειριστών να περιμένουν κλήσεις ή κλήσεις να περιμένουν για χειριστές. Π.χ. εάν θέλετε πάντα να έχετε κατά μέσο όρο έναν χειριστή ελεύθερο για ν παίρνει τις κλήσεις, τότε πρέπει να το θέσετε σε -1. Εάν στόχος είναι να έχετε πάντα μία κλήση σε αναμονή για ένα χειριστή, τότε πρέπει να το θέσετε σε 1. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO. + Τηλ.Επέκταση εκσρατείας Ηχογρ - αυτό το πεδίο επιτρέπει να ορίσετε μία επέκταση ηχογράφησης που χρησιμοποιείται με το VICIDIAL. Αυτό επιτρέπει να χρησιμοποιήσετε διαφορετικές επεκτάσεις ανάλογα με πόσο χρόνο θέλετε να επιτρέψετε μία ηχογράφηση και ποιο τύπος κωδικοποιητή-αποκωδικοποιητή θα χρσιμοποιηθεί. Η προεπιλογή είναι 8309 και θα καταγράψει με το σχήμα WAV μέχρι μια ώρα. Μια άλλη επιλογή που περιλαμβάνεται στα παραδείγματα είναι 8310 που θα καταγράψουν με το σχήμα GSM για μέχρι μια ώρα.
-
+
- Ταυτόχρονες μεταφορές - αυτή η ρύθμιση χρησιμοποιείται για νακαθορίσει τον αριθμό κλήσεων που μπορεί να σταλεί στουςπράκτορες συγχρόνως. Συνιστάται αυτή η ρύθμιση να αφήνεται στοΑΥΤΟΚΙΝΗΤΟ. Αυτός ο τομέας δεν χρησιμοποιείται με τη ΧΕΙΡΩΝΑΚΤΙΚΗμέθοδο πινάκων. + Ηχογράφηση Εκστρατείας - Αυτές οι επιλογές σας επιτρέπουν να διαλέξετε πιο επίπεδο ηχογράφησης επιτρέπετε στην εκστρατεία. NEVER θα απενεργοποιήσει την ηχογράφηση στον πελάτη. ONDEMAND είναι το προκαθορισμένο και επιτρέπει στον χειριστή να ξεκινάει και να σταματάει την ηχογράφηση. ALLCALLS ξεκινάει η ηχογράφηση όποτε η κλήση μεταφέρετε στον χειριστή.
-
+
- Κοτσίδας Προτεραιότητα - Αυτή η ρύθμιση χρησιμοποιείται για να καθορίσει τη σειρά με την οποία οι εξερχόμενες κλήσεις από αυτή την εκστρατεία θα πρέπει να απαντηθούν σε σχέση με τις εισερχόμενες κλήσεις αν η συγκεκριμένη καμπάνια είναι αναμεμειγμένο σε λειτουργία. + Όνομα αρχείου ηχογρ εκστρατείας - αυτό το πεδίο επιτρέπει να προσαρμόσετε το όνομα της ηχογράφησης, όταν η ηχογράφηση της εκστρατείας είναι ONDEMAND ή ALLCALLS. Οι μεταβλητές είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. Η προεπιλογή είναι FULLDATE_ΧΕΙΡΙΣΤΗΣκαι θα μοιάζει με το 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα μοιάζει με το TESTCAMP_51020103108_3125551212. 50 char max.
-
+
- Αυτόματος ALT-ARJCMO'S που σχηματίζει - αυτή η ρύθμισηχρησιμοποιείται για να σχηματίσει αυτόματα τους εναλλάσσομαιτομείς αριθμού σχηματίζοντας σε ΑΝΑΛΟΓΙΑ και ΝΑ ΠΡΟΣΑΡΜΟΣΕΙ τιςμεθόδους πινάκων όταν δεν υπάρχει καμία επαφή στον κύριοτηλεφωνικό αριθμό για έναν μόλυβδο, τις θέσεις NA, β,συνεχούς ρεύματος και ν. Αυτή η ρύθμιση δεν χρησιμοποιείται με τηΧΕΙΡΩΝΑΚΤΙΚΗ μέθοδο πινάκων. EXTENDED αναπληρωματικών αριθμοί είναι αριθμοί που φορτώνονται στο σύστημα εκτός του κανονικού οδηγήσει πληροφορίες οθόνης. Χρησιμοποιώντας EXTENDED σας μπορεί να έχει εκατοντάδες αριθμούς τηλεφώνου για ένα μόνο πελάτη ρεκόρ. + Καθυστέρηση Ηχογράφησης - Μόνο για ηχογραφήσεις ALLCALLS και ALLFORCE. Προκαθορισμένα είναι 0.
-
+
- Κλήση Εκτός Χρόνου - άν έχει οριστεί, οι κλήσεις που φυσιολογικά θα έκλειναν μετά το χρόνο που έχει οριστεί στο extensions.conf, θα κλείσουν σε αυτόν τον χρόνο εάν είναι μικρότερος του extensions.conf. Αυτό επιτρέπει στην γρήγορη αλλαγή των χρόνων από διακομιστή σε διακομιστή και περιορίζοντας τα αοτελέσματα σε μία εκστρατεία. Εάν έχετε πολλές κλήσεις με Αυτόματους Τηλεφωνητές ή Φωνητικών Ταχυδρομείων, μπορείτε να αλλάξετε αυτή την τιμή μεταξύ 21-26 και να δείτε αν τα αποτελέσματα είναι καλύτερα. + Βοηθός εκστρατείας - αυτές οι επιλογές επιτρέπουν να επιλέξετε τον Βοηθό που θα εμφανιστεί στην οθόνη των χειριστών για αυτήν την εκστρατεία. Επιλέξτε NONE για να μην παρουσιάσετε κανένα χειρόγραφο για αυτήν την εκστρατεία.
-
+
- Καμπάνια VDAD επέκταση - Το πεδίο αυτό επιτρέπει για μια προσαρμοσμένη VDAD μεταφορά επέκταση. Αυτό σας επιτρέπει να χρησιμοποιήσετε διάφορες μεθόδους χειρισμού κλήσεων, ανάλογα με την καμπάνια σας. -- 8364 - 8368 ως ίδια -- 8365 - Θα στείλετε την πρόσκληση σε ένα μόνο παράγοντα στον ίδιο διακομιστή, όπως είναι η πρόσκληση για -- 8366 - Χρησιμοποιείται για Τύπο-1 εκστρατείες και έρευνα -- 8367 - Θα προσπαθήσουμε πρώτα να στείλετε την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή, τότε θα ψάξει για άλλους servers - - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on -- 8369 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση ότι μετά, ίδια συμπεριφορά ως 8368 -- 8373 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση μετά την ίδια συμπεριφορά ως 8366 + Κατά την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν να επιλέξετε εάν θέλετε την αυτόματη έναρξη μίας ιστο σελίδας σε ένα διαφορετικό παράθυρο, αυτόματη μεάβαση στον Βοηθό ή τίποτα.
-
+
- Μήνυμα αυτόματου τηλεφωνητού - αυτός το πεδίο χρησιμοποιείτε για τις τυφλές κλήσεις μεταφοράς όταν παίρνει ο χειριστής έναν αυτόματο τηλεφωνητή και χτυπά στο πλήκτρο μηνυμάτων αυτόματων τηλεφωνητών στο πλαίσιο διασκέψεων μεταφοράς. Πρέπει το θέσετε αυτό στο dial plan - extensions.conf - και σιγουρευτείτε ότι παίζει ένα αρχείο μουσικής κατόπιν κλείνει το τηλέφωνο. + Xfer-Conf DTMF - Αυτές οι τέσσερις τομείς που επιτρέπουν σε σας για να έχει δύο σύνολα μεταφοράς Διάσκεψης και DTMF προεπιλογές. Όταν η κλήση ή καμπάνια είναι φορτωμένο, το σενάριο vicidial.php θα δείτε δύο κουμπιά για τη μεταφορά-πλαίσιο διάσκεψης και αυτόματη συμπλήρωση του αριθμού-να-κλήσης και την αποστολή-DTMF πεδία όταν πιέζεται. Αν θέλετε να επιτρέπεται η Συμβουλευτική Μεταφορές, ένα fronter σε μια στενότερη, έχουν το πρακτορείο χρήση του ΣΥΜΒΟΥΛΕΥΤΙΚΗ κουτάκι, το οποίο δεν λειτουργεί για το τρίτο κόμμα μη-ViciDial συμβουλευτικό κλήσεις. Για όσους έχουν απλά ένα κλικ πράκτορας της κλήσης Με κουμπί πελατών. Στη συνέχεια, ο αντιπρόσωπος μπορεί απλώς ΑΔΕΙΕΣ-3way-CALL και να προχωρήσουμε στην επόμενη κλήση τους. Αν θέλετε να επιτρέπεται Τυφλών μεταφορές των πελατών σε ένα χειρόγραφο VICIDIAL AGI για υλοτομία ή ένα IVR, τότε AXFER θέση στον αριθμό-να-dial πεδίο. Μπορείτε επίσης να καθορίσετε μια επέκταση έθιμο μετά την AXFER, για παράδειγμα, αν θέλετε να κάνετε μια κλήση σε μια ειδική IVR που έχετε θέσει για την επέκταση 83900 που θα τεθεί AXFER83900 στον αριθμό-να-πεδίο dial.
-
+
- AMD στέλνει στο VM - αυτές οι επιλογές επιτρέπουν να καθορίσετε εάν ένα μήνυμα αφήνεται σε έναν αυτόματο τηλεφωνητή όταν ανιχνεύεται ότι η κλήση είναι ένας αυτόματος τηλεφωνητής και εάν το AMD είναι ενεργό. + Γρήγορη Μεταφορά Button - Η επιλογή αυτή θα προσθέσει ένα κουμπί Γρήγορη Μεταφορά στην οθόνη πράκτορα κάτω από το κουμπί Μεταφορά-Conf που θα επιτρέψουν ένα κλικ τυφλή μεταφορά των κλήσεων προς την επιλεγμένη ομάδα της ή τον αριθμό. IN_GROUP θα αποστείλει κλήσεις προς την Προεπιλογή xfer ομάδας για αυτή την καμπάνια, ή την ομάδα της, αν υπήρχε μια εισερχόμενη κλήση. Οι επιλογές PRESET θα αποστείλει τις προσκλήσεις για το προκαθορισμένο επιλεγεί. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες.
-
+
- CPD AMD Δράση - Αν χρησιμοποιείτε τον Sangoma ParaXip Πρόσκληση πρόοδος Ανίχνευση λογισμικό και στη συνέχεια θα θέλετε να ενεργοποιήσετε αυτή τη ρύθμιση, είτε να DISPO που θα διαθέσεις την πρόσκληση ως AA και να κολλήσει το πάνω αν η πρόσκληση είναι υπό επεξεργασία και δεν έχει σταλεί σε έναν πράκτορα ή ακόμη μήνυμα που θα αποστείλει την πρόσκληση προς το τηλεφωνητή Μήνυμα ορίζεται για αυτή την καμπάνια. Προεπιλεγμένο είναι DISABLED. + Μεταφορά PrePopulate Preset - Η επιλογή αυτή θα αναγράψει τον αριθμό κλήσης με τον τομέα στο πλαίσιο διάσκεψης Μεταφορά στην οθόνη παράγοντα εάν ορίζεται. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες.
-
+
- Κλήση Εναλ Αρ Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να κάνει χειροκίνητη κλήση του εναλλακτικού αριθμού τηλεφώνου ή το πεδίο address3 μετά την κλήση του κυρίου αριθμού. + Timer Δράση - Αυτό το χαρακτηριστικό σας επιτρέπει να προκαλέσει ενέργειες μετά από ένα ορισμένο χρονικό διάστημα. το Δ1 και Δ2 επιλογές DIAL θα δημοσιεύσει μια πρόσκληση για τη μεταφορά Διάσκεψη προεπιλογές Αριθμός και τους διαβιβάζουν στον πράκτορα της συνόδου, αυτή χρησιμοποιείται συνήθως για απλές εφαρμογές IVR AGI επικύρωση ή απλά να παίξει ένα προ-ηχογραφημένο μήνυμα. WEBFORM θα ανοίξει τη διεύθυνση φόρμα. MESSAGE_ONLY θα εμφανίσει απλά το μήνυμα ότι είναι στο πεδίο παρακάτω. ΚΑΝΕΝΑ θα απενεργοποιήσετε αυτήν τη δυνατότητα και είναι η προεπιλογή.
-
+
- Δευτερ. Εγκαταλ. Κλήσης - Ο αριθμός των δευτερολέπτων από την στιγμή που ο πελάτης σηκώνει το τηλ μέχρι η κλήση να θεωρηθεί εγκαταλειμένη. Μόνο για εξερχόμενες κλήσεις . + Timer Δράση Μήνυμα - Αυτό είναι το μήνυμα που εμφανίζεται στην οθόνη παράγοντα κατά τη στιγμή της Timer δράσης ενεργοποιείται.
-
+
- Drop δράσης - Αυτό το μενού σας επιτρέπει να διαλέξετε ό, τι συμβαίνει σε μια κλήση όταν έχει να περιμένει περισσότερο από ό, τι έχει οριστεί στο Drop Call δευτερόλεπτα τομέα. HANGUP απλά θα κλείσεις την κλήση, το μήνυμα θα αποστείλει την πρόσκληση της Drop παράταση που έχετε ορίζονται κατωτέρω, τηλεφωνητή θα απευθύνει την πρόσκληση προς το τηλεφωνητή θέση που έχετε IN_GROUP ορίζονται κατωτέρω, και θα απευθύνει την πρόσκληση στην ομάδα Inbound που καθορίζονται κατωτέρω + Timer Δευτερόλεπτα Δράση - Αυτό είναι το χρονικό διάστημα μετά την κλήση συνδέεται με τον πελάτη ότι το χρονόμετρο δράσης ενεργοποιείται. Προεπιλογή είναι -1 που είναι και ανενεργός.
-
+
- Εσωτ.σύνδεση Ασφαλούς Φύλαξης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Ασφαλής Φύλαξης στον διακομιστή. + Προγραμματισμένες Επανακλήσεις - Αυτή η επιλογή επιτρέπει στον χειριστή να τερματίσει μία κλήση ως CALLBK και να επιλέξει τα δεδομένα και την ώρα κατά την οποία ο οδηγός θα ξανα-ενεργοποιηθεί.
-
+
- Φωνητικό Ταχυδρομείο - Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα ΕΓΚΑΤΑΛΕΙΠΟΝΤΑΝ, θα κατευθυνθούν σε αυό το φωνητικό ταχυδρομείο, ώστε να ακούσετε και να αφήσετε ένα μήνυμα. + Δευτερ. Τυλίγματος - Ο αριθμός των δευερολέπτων που αναγκάζει έναν χειριστή να περιμένει πριν του επιτραπεί να λάβει ή να κάνει άλλη κλήση. Ο χρόνος ξεκινάει μόλις τερματίσει μία κλήση. Προκαθορισμένα είναι 0 δευτερ. Αν ο χρόνος περάσει πριν ο χειριστής τερματίσει την κλήση, δεν θα μετακινηθεί στην άλλη κλήση πριν συβεί αυτό.
-
+ +
+ Μήνυμα Τυλίγματος - Αυτό είναι ένα συγκεκριμένο μήνυμα εκστρατείας που εμφανίζεται στην οθόνη τυλίγματος όταν έχει οριστεί ο χρόνος τυλίγματος. + +
+
+
+ Εσωτερικός κατάλογος DNC χρήσης - αυτό καθορίζει εάν αυτή ηεκστρατεία είναι στους μολύβδους φίλτν ενάντια στον εσωτερικόκατάλογο DNC. Εάν τίθεται το Υ, η χοάνη θα ψάξει κάθετηλεφωνικό αριθμό στον κατάλογο DNC πρίν τοποθετεί τον στηχοάνη. Εάν είναι στον κατάλογο DNC έπειτα θα αλλάξει ότιθέση μολύβδου σε DNCL έτσι που δεν μπορεί να σχηματιστεί. Ηπροεπιλογή είναι ν. Η επιλογή areacode είναι ακριβώς όπως η επιλογή Υ, εκτός από αυτό χρησιμοποιείται επίσης για να φιλτράρετε μια ολόκληρη κωδικό της περιοχής της Βόρειας Αμερικής από το να είναι εξερχόμενες, στην προκειμένη περίπτωση με την είσοδο 201XXXXXXX στη λίστα DNC θα μπλοκάρει όλες τις κλήσεις προς το 201 areacode αν έχει ενεργοποιηθεί. + +
+
+
+ Χρησιμοποίησε Καμπάνια DNC List - Αυτό καθορίζει αν αυτό είναι η εκστρατεία εναντίον ενός φίλτρου οδηγεί DNC λίστα που είναι ειδικά για τη συγκεκριμένη καμπάνια μόνο. Αν είναι να Y, η χοάνη θα εξετάσει, για κάθε αριθμό τηλεφώνου στον αγώνα-ειδικά DNC λίστα πριν από την τοποθέτησή του στην χοάνη. Αν είναι στην εκστρατεία ειδικά DNC λίστα τότε θα αλλάξει το καθεστώς που οδηγούν σε DNCC έτσι δεν μπορεί να εξερχόμενων. Προεπιλεγμένο είναι Ν. Η επιλογή areacode είναι ακριβώς όπως η επιλογή Υ, εκτός από αυτό χρησιμοποιείται επίσης για να φιλτράρετε μια ολόκληρη κωδικό της περιοχής της Βόρειας Αμερικής από το να είναι εξερχόμενες, στην προκειμένη περίπτωση με την είσοδο 201XXXXXXX στη λίστα DNC θα μπλοκάρει όλες τις κλήσεις προς το 201 areacode αν έχει ενεργοποιηθεί. + +
+
+
+ Εισερχόμενες ομάδες - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. + +
+
+
+ Η μικρή διακοπή πρακτόρων κωδικοποιεί ενεργό - επιτρέπει στουςπράκτορες για να επιλέξει έναν κώδικα μικρής διακοπής ότανχτυπούν στο κουμπί ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ στους κώδικες μικρής διακοπήςvicidial.php. είναι ευπροσδιόριστοι ανά εκστρατεία στοκατώτατο σημείο της οθόνης λεπτομέρειας άποψης εκστρατείας καιαποθηκεύονται στον πίνακα vicidial_agent_log. Η προεπιλογήείναι ν. ΙΣΧΥΟΝΤΑ θα ισχύουν οι παράγοντες να επιλέγουν μια παύση κωδικό αν κάντε κλικ στο κουμπί PAUSE. + +
+
+
+ Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών - εάνθέστε το Υ, δεν αλλάζει οποιων δήποτε από το αρχείο στοιχείωνπελατών όταν διαθέσεις πρακτόρων η κλήση. Η προεπιλογή είναι ν. + +
+
+
+ Απενεργοποίηση Alter Πελατών τηλέφωνο - Σε περίπτωση που σε Y, δεν αλλάζει ο πελάτης τον αριθμό τηλεφώνου όταν ένας πράκτορας διαθέσεις την κλήση. Προεπιλεγμένο είναι Y. Χρησιμοποιήστε την επιλογή Απόκρυψη για να καταργήσετε εντελώς τον αριθμό τηλεφώνου του πελάτη από την οθόνη πράκτορα. + +
+
+
+ Εμφάνιση Agent Queue Count - Σε περίπτωση που σε Y, σε περίπτωση που ο πελάτης περιμένει για έναν πράκτορα, ο κοτσίδας ζητεί απεικόνιση στο πάνω μέρος της οθόνης πράκτορας θα γίνονται κόκκινα και δείχνουν τον αριθμό των αναμονής κλήσεων. Προεπιλεγμένο είναι Y. + +
+
+
+ Χειρωνακτικός κατάλογος ταυτότητα πινάκων - η προεπιλογήlist_id για να χρησιμοποιηθεί όταν δημιουργείται έναςπράκτορας placces μια χειρωνακτική κλήση και ένα νέο αρχείομολύβδου στο vicidial_list. Η προεπιλογή είναι 999. Αυτός οτομέας μπορεί να περιέχει τα ψηφία μόνο. + +
+
+
+ Εγχειρίδιο Dial Διηθείται - Αυτό σας επιτρέπει να φιλτράρετε τις κλήσεις που πράκτορες να καλέσετε στο εγχειρίδιο λειτουργίας για την εκστρατεία αυτή με οποιονδήποτε συνδυασμό από τα ακόλουθα: DNC - προβλέπονται για την έναρξη, CAMPAIGNΛΙΣΤΕΣ - ο αριθμός πρέπει να είναι εντός των καταλόγων για την εκστρατεία, ΚΑΝΕΝΑ - δεν υπάρχει φίλτρο για χειροκίνητη κλήση ή γρήγορα dial καταλόγους. + +
+
+
+ Agent Screen Clipboard Αντιγραφή - Αυτή η δυνατότητα είναι ενεργοποιημένη για το παρόν μόνο τον Internet Explorer. Η λειτουργία αυτή σας επιτρέπει να επιλέξετε ένα πεδίο που θα αντιγραφεί στον υπολογιστή πρόχειρο του παράγοντα υπολογιστή σε μια πρόσκληση που απηύθυνε σε έναν πράκτορα. Κοινές χρήσεις για αυτό είναι να καταστεί δυνατή η εύκολη επικόλληση του λογαριασμού αριθμούς ή αριθμούς τηλεφώνου κληρονομιά σε πελάτη σχετικά με τις εφαρμογές πράκτορα υπολογιστή. + +
+
+
+ 3-Way Outbound Call CallerID - Αυτό ορίζει τι έστειλε ως εξερχόμενο callerID σειρά από 3 δρόμων κλήσεις που διατίθενται από το γραφείο, η καμπάνια χρησιμοποιεί το έθιμο εκστρατεία callerID, ΠΕΛΑΤΗ χρησιμοποιεί τον αριθμό των πελατών που είναι ενεργή παράγοντες για την οθόνη και AGENT_PHONE χρησιμοποιεί το callerID για το τηλέφωνο ότι ο παράγοντας που είναι συνδεδεμένοι στο. AGENT_CHOOSE επιτρέπει να επιλέγουν τον πράκτορα που callerID να χρησιμοποιήσετε για την 3-way ζητεί από μια λίστα επιλογών. + +
+
+
+ 3-Way Call Πρόθεμα Κλήσης - Αυτό ορίζει τι είναι χρησιμοποιείται ως πρόθεμα κλήσης για 3-way κλήσεις, προεπιλογή είναι άδειο, ώστε η εκστρατεία dial πρόθεμα χρησιμοποιείται, passthru έτσι ώστε να μπορείτε να ακούτε τους ήχους είναι 88. + + 0) + { + ?> +
+
+
+ QC Enabled - Η ρύθμιση αυτού του τομέα να Y επιτρέπει τον παράγοντα Ποιοτικός Έλεγχος χαρακτηριστικά στην εργασία. Προεπιλεγμένο είναι Ν. + +
+
+
+ QC καθεστώτων - Η περιοχή αυτή είναι που θα επιλέξετε το οποίο οδηγεί των καθεστώτων θα πρέπει να φύγει πάνω από το σύστημα, QC. Τοποθετήστε ένα δίπλα στο ελέγξτε την κατάσταση που θέλετε, QC για την αναθεώρηση. + +
+
+
+ QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια καμπάνια. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες. + +
+
+
+ QC Get Record Launch- Αυτό επιτρέπει σε μια από τις ακόλουθες δράσεις, το οποίο θα ενεργοποιείται σε ένα QC πράκτορας που λαμβάνει ένα νέο ρεκόρ. + +
+
+
+ QC Δείτε Καταγραφή - Αυτό επιτρέπει την καταγραφή που μπορεί να συνδέεται με την εγγραφή QC να εμφανίζονται στην οθόνη QC πράκτορα. + +
+
+
+ QC WebForm Διεύθυνση - Αυτό είναι το ότι μια διεύθυνση ιστοσελίδας, QC, μπορεί να πάει στο γραφείο, όταν κάνετε κλικ στο σύνδεσμο WEBFORM στην οθόνη QC. + +
+
+
+ QC Σενάριο - Αυτό είναι το σενάριο που μπορεί να χρησιμοποιηθεί από τους πράκτορες, QC στην SCRIPT καρτέλα στην οθόνη, QC. + + +
+
+
+ Αναζήτηση Vtiger Κατηγορία - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεων στη συνέχεια τη ρύθμιση αυτή θα καθορίσει εάν η σελίδα vtiger_search.php θα αναζητήσετε τον αριθμό τηλεφώνου που είχε εγγραφεί. Υπάρχουν 4 επιλογές που μπορεί να χρησιμοποιηθεί στον τομέα αυτό: ΜΟΛΥΒΔΟΥ-Η επιλογή αυτή θα αναζητήσει μέσω του Vtiger οδηγεί μόνο, ΛΟΓΑΡΙΑΣΜΟΥ-Η επιλογή αυτή θα ψάξει μέσω των λογαριασμών Vtiger και όλες τις επαφές και επιμέρους επαφές για τον αριθμό τηλεφώνου, VENDOR-Αυτή η επιλογή μόνο μέσω της αναζήτησης Vtiger πωλητές, ACCTID-Η επιλογή αυτή λειτουργεί μόνο για τους λογαριασμούς και θα λάβει τα vicidial vendor_lead_code τομέα και προσπαθήστε να αναζητήσετε το αναγνωριστικό λογαριασμού Vtiger. Αν ανεπιτυχή θα προσπαθήσουμε τυχόν άλλες μεθόδους που αναφέρονται που έχετε επιλέξει. Πολλαπλές επιλογές μπορούν να χρησιμοποιηθούν για κάθε αναζήτηση, αλλά σε μεγάλες βάσεις δεδομένων που αυτό δεν συνιστάται. Προεπιλεγμένο είναι ΜΟΛΥΒΔΟΥ. UNIFIED_CONTACT-Η επιλογή αυτή θα χρησιμοποιήσει το βήτα vtiger 5.1.0 χαρακτηριστικό για την αναζήτηση με βάση τον αριθμό τηλεφώνου και να εμφανιστεί μια σελίδα αναζήτησης στο vtiger. + +
+
+
+ Vtiger Αναζήτηση Dead Λογαριασμών - Αν vtiger ολοκλήρωση είναι ενεργοποιημένη στις ρυθμίσεις του συστήματος τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο διαγραμμένων λογαριασμών θα γίνει αναζήτηση όταν το πρακτορείο κλικ WEB FORM στην αναζήτηση στο σύστημα vtiger. ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ-διαγράφεται οδηγεί δεν θα γίνει αναζήτηση, ASK-διαγράφεται οδηγεί θα γίνει η αναζήτηση και η αναζήτηση vtiger ιστοσελίδα θα ζητήσει από τον πράκτορα, αν θέλουν να κάνουν το λογαριασμό vtiger ενεργό, αναστήσει-θα κάνει αυτόματα τη διαγραφή λογαριασμό ξανά ενεργός και θα λάβει τα παράγοντα στην οθόνη λογαριασμό δεν καθυστέρηση, κατόπιν κάνοντας κλικ στο Ιστο-σελίδα. Προεπιλογή είναι ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ. + +
+
+
+ Δημιουργία Vtiger Call Record - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger δραστηριότητα δημιουργείται για την πρόσκληση, όταν ο αντιπρόσωπος πηγαίνει στο vtiger_search σελίδα. Προεπιλεγμένο είναι Y. Η επιλογή DISPO θα δημιουργήσει ένα αρχείο πρόσκληση για λογαριασμό vtiger ο αντιπρόσωπος δεν χρειάζεται να πάτε στη σελίδα αναζήτησης vtiger μέσω του Ιστο-σελίδα. + +
+
+
+ Δημιουργία Vtiger Μόλυβδος Record - Εάν είναι ενεργοποιημένη Vtiger ενσωμάτωση στο σύστημα και τις ρυθμίσεις Vtiger Αναζήτηση ΜΟΛΥΒΔΟ τότε η κατηγορία περιλαμβάνει τη ρύθμιση αυτή θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger οδηγήσει δημιουργείται όταν ο πράκτορας πηγαίνει στη σελίδα vtiger_search και δεν είναι βρέθηκαν να έχουν την κλήση του αριθμού τηλεφώνου. Προεπιλεγμένο είναι Y. + +
+
+
+ Vtiger Screen Είσοδος - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ο χρήστης είναι συνδεδεμένος στο Vtiger διεπαφής αυτόματα όταν συνδεθείτε στο VICIDIAL. Προεπιλεγμένο είναι Y. Η επιλογή NEW_WINDOW θα ανοίξει ένα νέο παράθυρο κατά την σύνδεση με την VICIDIAL οθόνη πράκτορας. + +
+
+
+ Vtiger Κατάσταση Call - Αν vtiger ολοκλήρωση είναι ενεργοποιημένη στις ρυθμίσεις του συστήματος τότε αυτή η ρύθμιση θα καθορίσει κατά πόσον το καθεστώς της vtiger λογαριασμού θα ενημερώνεται με την κατάσταση της κλήσης μετά από VICIDIAL έχει dispositioned. Προεπιλογή είναι N. + +
+
+
+ CRM Popup Σύνδεση - Αν οριστεί σε Ναι, το CRM Popup Διεύθυνση χρησιμοποιείται για να ανοίξει ένα νέο παράθυρο για την σύνδεση παράγοντας σε αυτή την καμπάνια. Προεπιλογή είναι N. + +
+
+
+ CRM Popup Διεύθυνση - Η διεύθυνση του CRM σελίδα σύνδεσης, μπορεί να έχει μεταβλητές πληθυσμού όπως ακριβώς και το έντυπο διεύθυνση ιστού, με τη VAR στην πρώτη και τη χρήση - Α - user_custom_one - Β - να ορίσουν μεταβλητές. + +
+
+
+ Ξεκινήστε Call URL - Αυτό το web διεύθυνση URL δεν θεωρείται από το πρακτορείο, αλλά καλείται κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα, εφόσον είναι πυκνοκατοικημένη. Χρησιμοποιεί τις ίδιες μεταβλητές όπως τα πεδία scripts φόρμα και. Αυτή η διεύθυνση URL δεν μπορεί να αποτελέσει σχετική διαδρομή. Ξεκινήστε το URL δεν λειτουργεί για το εγχειρίδιο κλήσεις μέσω τηλεφώνου. Προεπιλογή είναι κενό. + +
+
+
+ Καλέστε dispo URL - Αυτό το web διεύθυνση URL δεν θεωρείται από το πρακτορείο, αλλά καλείται κάθε φορά που μια κλήση είναι dispositioned από έναν πράκτορα αν είναι πυκνοκατοικημένη. Χρησιμοποιεί τις ίδιες μεταβλητές όπως τα πεδία scripts φόρμα και. dispo και talk_time είναι οι μεταβλητές που μπορείτε να χρησιμοποιήσετε για να ανακτήσετε το πρακτορείο καθορισμένες διάταξη για την πρόσκληση και τον πραγματικό χρόνο ομιλίας σε δευτερόλεπτα της κλήσης. Αυτή η διεύθυνση URL δεν μπορεί να αποτελέσει σχετική διαδρομή. Προεπιλογή είναι κενό. + +
+
+
+ Ομάδα Γνωστός Επιτρέπεται - Αν θέλετε να σας επιτρέψει πράκτορες να χρησιμοποιούν ψευδώνυμα ομάδα τότε πρέπει να ορίσετε αυτή την ομάδα να Y. Γνωστός εξηγούνται περισσότερο στο τμήμα Διοίκησης, που επιτρέπει στους εκπροσώπους να επιλέξετε διαφορετικό callerIDs εγχειρίδιο για εξερχόμενες κλήσεις ότι μπορεί να πραγματοποιηθεί. Προεπιλεγμένο είναι Ν. + +
+
+
+ Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε επιτρέπεται Γνωστός ομάδα, τότε αυτό είναι γνωστός και ότι η ομάδα έχει επιλεγεί από προεπιλογή κατά την πρώτη του πράκτορα επιλέγει να χρησιμοποιήσει μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό. + +
+
+
+ Agent κλήσεων στην ουρά - Εάν ρυθμιστεί σε οτιδήποτε, αλλά ΚΑΝΕΝΑ, πράκτορες θα είναι σε θέση να δείτε λεπτομέρειες σχετικά με τις κλήσεις που περιμένουν στην ουρά στην οθόνη τον πράκτορά τους. Εάν ρυθμιστεί σε μια αριθμητική τιμή, οι κλήσεις που εμφανίζονται θα περιοριστεί στον αριθμό του εγγράφου. Προεπιλογή είναι ΚΑΝΕΝΑ. + +
+
+
+ Δείτε καλεί στην ουρά Launch - Αυτή η ρύθμιση, εάν ρυθμιστεί σε AUTO θα έχει την καλεί στο πλαίσιο ουρά εμφανιστεί μετά από σύνδεση με το πρακτορείο στην οθόνη πράκτορα. Προεπιλογή είναι MANUAL. + +
+
+
+ Agent καλεί Πιάσε στην ουρά - Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα επιτρέψει τον αντιπρόσωπο για να επιλέξετε την κλήση που θέλουν να λάβουν από την καλεί σε ουρά οθόνης κάνοντας κλικ σε αυτό, ενώ έχει διακοπεί. Πράκτορες θα είναι σε θέση να αρπάξει εισερχόμενες κλήσεις ή να μεταφέρονται κλήσεις, δεν εξερχόμενες κλήσεις. Προεπιλογή είναι N. + +
+
+
+ Agent Call Re-Queue Button - Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα προσθέσετε ένα Re-Queue κουμπί πελατών στην οθόνη του πράκτορα, που επιτρέπει το πρακτορείο για να στείλετε την πρόσκληση σε ένα AGENTDIRECT ουρά που προορίζεται για το μόνο παράγοντα. Προεπιλογή είναι N. + +
+
+
+ Agent Παύση Μετά από κάθε πρόσκληση - Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα διακόψετε το πρακτορείο μετά από κάθε κλήση αυτόματα. Προεπιλογή είναι N. + + + + + +



+ + VICIDIAL_ΛΙΣΤΕΣ ΠΙΝΑΚΑΣ

+
+
+ ID Λίστας - Αυτό είναι το αριθμητικό όνομα της λίστας, δεν μπορεί να διορθωθεί μετά από την αρχική εισαγωγή, πρέπει να περιέχει μόνο αριθμούς και πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες. Must be a number greater than 100. + +
+
+
+ Ονομα Λίστας - Αυτή είναι η περιγραφή της λίστας, πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. + +
+
+
+ Περιγραφή καταλόγων - αυτό είναι ο τομέας υπομνημάτων για τονκατάλογο, είναι προαιρετικό. + +
+
+
+ Ημερομηνία αλλαγής καταλόγων - αυτό είναι η τελευταία φορά ότιοι τοποθετήσεις για αυτόν τον κατάλογο τροποποιήθηκαν από καμιάάποψη. + +
+
+
+ Τελευταία ημερομηνία κλήσης καταλόγων - αυτό είναι η τελευταίαφορά ότι ο μόλυβδος σχηματίστηκε από αυτόν τον κατάλογο. + +
+
+
+ Εκστρατεία - Αυτή είναι η εκστρατεία όπου ανήκει η λίστα. Μία λίστα μπορεί μόνο να κληθεί από μία εκστρατεία κάθε φορά. + +
+
+
+ Ενεργή - Αυτό ορίζει κατά πόσον η λίστα πρόκειται να κληθεί ή όχι. + +
+
+
+ Επαναφορά Κατάστασης-Κλήσης-Καθοδήγησης για την λίστα - Αυτό επαναφέρει τους οδηγούς σε αυτή την λίστα στο Ν σε \"μη κληθέντα από την τελευταία επαναφορά\" και σημαίνει ότι για οποιαδήποτε καθοδήγηση μπορεί να γίνει κλήση εάν είναι η σωστή κατάσταση, όπως ορίσθηκε στην οθόνη τις εκστρατείας. + +
+
+
+ Reset Times - Αυτό το πεδίο σας επιτρέπει να τεθεί σε χρόνους, που χωρίζονται από μία παύλα-, ότι ο κατάλογος αυτός θα πρέπει να επαναφέρεται αυτόματα από το σύστημα. Οι χρόνοι πρέπει να είναι σε 24 ωρη μορφή που δεν στίξης, για παράδειγμα, 0800-1700 θα επαναφέρετε τη λίστα σε 8am και 5 μ.μ. κάθε μέρα. Προεπιλογή είναι άδειο. + +
+
+
+ Agent Σενάριο Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτό θα είναι το σενάριο ότι ο πράκτορας βλέπει στην οθόνη τους αντί του σεναρίου εκστρατεία όταν το αποτέλεσμα είναι από αυτή τη λίστα. Προεπιλογή δεν έχει οριστεί. + +
+
+
+ Καμπάνια CID Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτό θα υπερισχύσει η εκστρατεία CallerID που έχει οριστεί για τις κλήσεις που είναι σε θέση να οδηγεί σε αυτόν τον κατάλογο. Προεπιλογή δεν έχει οριστεί. + +
+
+
+ Τηλεφωνητής Μήνυμα Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτό θα υπερισχύσει η απάντηση Μήνυμα Machine που στην εκστρατεία για τους πελάτες σε αυτόν τον κατάλογο. Προεπιλογή δεν έχει οριστεί. +
+
+
+ Drop Inbound Ομάδα Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτή η ομάδα της θα χρησιμοποιηθεί για εξερχόμενες κλήσεις μέσα στη λίστα που πτώση από το εξερχόμενο εκστρατεία αντί για την πτώση της ομάδας που στην οθόνη λεπτομερώς εκστρατεία. Προεπιλογή δεν έχει οριστεί. + +
+
+
+ Xfer-Conf Αριθμός Παράκαμψη - Αυτά τα πέντε πεδία επιτρέπουν για να παρακάμψετε τις προεπιλογές αριθμό Μεταφορά Διάσκεψη όταν το αποτέλεσμα είναι από αυτή τη λίστα. Προεπιλογή είναι κενό. + + +
+
+
+ Κατάλογος VICIDIAL DNC - Αυτό δεν θέτουν κάθε λίστα περιέχει μόλυβδο που έχει τεθεί σε καθεστώς των DNC στο σύστημα. Μέσω του ΚΑΤΑΛΟΓΟΙ - ADD TO ΑΡΙΘΜΟΣ DNC σελίδα μπορείτε να προσθέσετε τους αριθμούς σε αυτόν τον κατάλογο, έτσι ώστε δεν θα ονομάζεται από καμπάνιες που χρησιμοποιούν την εσωτερική DNC λίστα. Υπάρχει επίσης η δυνατότητα να προσθέσετε οδηγεί στην καμπάνια-DNC ειδικών καταλόγων για αυτές τις καμπάνιες που έχουν τους. Αν έχετε την ενεργό επιλογή DNC που να areacode τότε μπορείτε επίσης να χρησιμοποιήσετε καταχωρήσεις μπαλαντέρ κωδικό περιοχής όπως αυτό 201XXXXXXX να μπλοκάρει όλες τις κλήσεις προς το 201 areacode όταν ενεργοποιηθεί. + + + +



+ + VICIDIAL_Εισερχόμενα_GROUPS ΠΙΝΑΚΑΣ

+
+
+ ID Ομάδας - Αυτό είναι το σύντομο όνομα της εισερχόμενης ομάδας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 20χαρακτήρες. + +
+
+
+ Ονομα Ομάδας - Αυτή είναι η περιγραφή της ομάδας, πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες. Δεν μπορεί να συμπεριαμβάνει παύλες, συν ή κενά . + +
+
+
+ Χρώμα Ομάδας - Αυτό είναι το χρώμα που εμφανίζεται στην VICIDIAL εφαρμογή όταν η κλήση έρχεται σε αυτή την ομάδα. Πρέπει να είναι μεταξύ 2 και 7 χαρακτήρες. Εάν αυτό είναι ορισμένο ως hex , θα πρέπει να τοποθετήσετε ένα # στην αρχή του κειμένου ή το VICIDIAL δεν θα δουλεύει σωστά. + +
+
+
+ Ενεργοποίηση - Αυτό καθορίζει κατά πόσον αυτή η ομάδα εμφανίζεται στο κουτί επιλογής όταν ένας χρήστης συνδέεται. + +
+
+
+ Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυ την ομάδα. + +
+
+
+ Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη: +
  - random: ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα vicidial_live_agents +
  - oldest_call_start: ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθό κλήσεων. +
  - oldest_call_finish: ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση. +
  - overall_user_level: οι διαταγές από το user_level του χειριστή όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα άβουν περισσότερες κλήσεις. +
  - inbound_group_rank: διαταγές από την τάξη που δίνεται στονπράκτορα για τη συγκεκριμένη εισερχόμενη ομάδα. Ο υψηλότερος σεχαμηλότερο. +
  - fewest_calls: διαταγές από τον αριθμό κλήσεων πουπαραλαμβάνονται από έναν πράκτορα για εκείνη την συγκεκριμένηεισερχόμενη ομάδα. Λιγότερες κλήσεις πρώτα. +
  - campaign_rank: διαταγές από την τάξη που δίνεται στον πράκτοραγια την εκστρατεία. Ο υψηλότερος σε χαμηλότερο. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: παραγγελίες από το ποσό του χρόνου πράκτορας έχει ενεργά περιμένει μια κλήση. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Οθόνη Μπροστινού - Αυτό το πεδίο καθορίζει κατά πόσον στον VICIDIAL χόμενος χρήστης θα εμφανίζεται το όνομα του μπροστινού - εάν υπάρχει κάποιο - στο πεδίο κατάστασης όταν η κλήση έρχεται στον χρήστη. + +
+
+
+ Βοηθός εκστρατείας - αυτές οι επιλογές επιτρέπουν να επιλέξετε τον Βοηθό που θα εμφανιστεί στην οθόνη των χειριστών για αυτήν την εκστρατεία. Επιλέξτε NONE για να μην παρουσιάσετε κανένα χειρόγραφο για αυτήν την εκστρατεία. + +
+
+
+ Κατά την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν να επιλέξετε εάν θέλετε την αυτόματη έναρξη μίας ιστο σελίδας σε ένα διαφορετικό παράθυρο, αυτόματη μεάβαση στον Βοηθό ή τίποτα. + +
+
+
+ Xfer-Conf DTMF - Αυτές οι τέσσερις τομείς που επιτρέπουν σε σας για να έχει δύο σύνολα μεταφοράς Διάσκεψης και DTMF προεπιλογές. Όταν η κλήση ή καμπάνια είναι φορτωμένο, το σενάριο vicidial.php θα δείτε δύο κουμπιά για τη μεταφορά-πλαίσιο διάσκεψης και αυτόματη συμπλήρωση του αριθμού-να-κλήσης και την αποστολή-DTMF πεδία όταν πιέζεται. Αν θέλετε να επιτρέπεται η Συμβουλευτική Μεταφορές, ένα fronter σε μια στενότερη, έχουν το πρακτορείο χρήση του ΣΥΜΒΟΥΛΕΥΤΙΚΗ κουτάκι, το οποίο δεν λειτουργεί για το τρίτο κόμμα μη-ViciDial συμβουλευτικό κλήσεις. Για όσους έχουν απλά ένα κλικ πράκτορας της κλήσης Με κουμπί πελατών. Στη συνέχεια, ο αντιπρόσωπος μπορεί απλώς ΑΔΕΙΕΣ-3way-CALL και να προχωρήσουμε στην επόμενη κλήση τους. Αν θέλετε να επιτρέπεται Τυφλών μεταφορές των πελατών σε ένα χειρόγραφο VICIDIAL AGI για υλοτομία ή ένα IVR, τότε AXFER θέση στον αριθμό-να-dial πεδίο. Μπορείτε επίσης να καθορίσετε μια επέκταση έθιμο μετά την AXFER, για παράδειγμα, αν θέλετε να κάνετε μια κλήση σε μια ειδική IVR που έχετε θέσει για την επέκταση 83900 που θα τεθεί AXFER83900 στον αριθμό-να-πεδίο dial. + +
+
+
+ Timer Δράση - Αυτό το χαρακτηριστικό σας επιτρέπει να προκαλέσει ενέργειες μετά από ένα ορισμένο χρονικό διάστημα. το Δ1 και Δ2 επιλογές DIAL θα δημοσιεύσει μια πρόσκληση για τη μεταφορά Διάσκεψη προεπιλογές Αριθμός και τους διαβιβάζουν στον πράκτορα της συνόδου, αυτή χρησιμοποιείται συνήθως για απλές εφαρμογές IVR AGI επικύρωση ή απλά να παίξει ένα προ-ηχογραφημένο μήνυμα. WEBFORM θα ανοίξει τη διεύθυνση φόρμα. MESSAGE_ONLY θα εμφανίσει απλά το μήνυμα ότι είναι στο πεδίο παρακάτω. ΚΑΝΕΝΑ θα απενεργοποιήσετε αυτήν τη δυνατότητα και είναι η προεπιλογή. Αυτή η ρύθμιση θα παρακάμπτουν τις ρυθμίσεις καμπάνιας. + +
+
+
+ Timer Δράση Μήνυμα - Αυτό είναι το μήνυμα που εμφανίζεται στην οθόνη παράγοντα κατά τη στιγμή της Timer δράσης ενεργοποιείται. + +
+
+
+ Timer Δευτερόλεπτα Δράση - Αυτό είναι το χρονικό διάστημα μετά την κλήση συνδέεται με τον πελάτη ότι το χρονόμετρο δράσης ενεργοποιείται. Προεπιλογή είναι -1 που είναι και ανενεργός. + +
+
+
+ Drop Call δευτερόλεπτα - Ο αριθμός των δευτερολέπτων σε μια κλήση θα παραμείνουν στην ουρά πριν να θεωρείται DROP. + +
+
+
+ Drop δράσης - Αυτό το μενού σας επιτρέπει να διαλέξετε ό, τι συμβαίνει σε μια κλήση όταν έχει να περιμένει περισσότερο από ό, τι έχει οριστεί στο Drop Call δευτερόλεπτα τομέα. HANGUP απλά θα κλείσεις την κλήση, το μήνυμα θα αποστείλει την πρόσκληση της Drop παράταση που έχετε ορίζονται κατωτέρω, τηλεφωνητή θα απευθύνει την πρόσκληση προς το τηλεφωνητή θέση που έχετε IN_GROUP ορίζονται κατωτέρω, και θα απευθύνει την πρόσκληση στην ομάδα Inbound που καθορίζονται κατωτέρω. + +
+
+
+ Drop παράταση - Αν Drop δράση που να είναι μήνυμα, αυτό είναι η κλήση σχέδιο επέκτασης ότι η πρόσκληση θα σταλεί στο εάν ανέρχεται Drop Call Δευτερόλεπτα. + +
+
+
+ ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+

Drop Μεταφορά Όμιλος - Αν Drop Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα εάν ανέρχεται Drop Call Δευτερόλεπτα.
-
+
- Επιτρέψτε τους κανένας-χοάνη-μολύβδους Logins - εάν θέστε τοΥ, επιτρέπει στους πράκτορες στη σύνδεση στην εκστρατεία ακόμα κιαν δεν υπάρχει κανένας μόλυβδος που φορτώνεται στη χοάνη γιαεκείνη την εκστρατεία. Αυτή η λειτουργία δεν απαιτείται στιςεκστρατείες στενός-τύπων. Η προεπιλογή είναι ν. + Χρόνος κλήσης - αυτό είναι το χρονικό σχέδιο κλήσης ναχρησιμοποιήσει για αυτήν την εισερχόμενη ομάδα. Λάβετε υπόψηότι ο χρόνος είναι βασισμένος στο χρόνο κεντρικών υπολογιστών.Η προεπιλογή είναι 24hours.
-
+
- Μίγμα διαταγής καταλόγων - αγνοεί τους τομείς θέσης διαταγήςκαι πινάκων μολύβδου. Θα χρησιμοποιήσει τις παραμέτρους καταλόγωνκαι θέσης για την επιλεγμένη είσοδο μιγμάτων καταλόγων στο υπο-τμήμα μιγμάτων καταλόγων αντ' αυτού. Η προεπιλογή είναι ΕΚΤΟΣΛΕΙΤΟΥΡΓΊΑΣ. + Μετά από ώρες δράσης - Η δράση για την εκτέλεση, αν είναι μετά από ώρες, όπως ορίζεται στην πρόσκληση αυτή την φορά για τα εισερχόμενα ομάδα. HANGUP θα hangup αμέσως την πρόσκληση, MESSASGE θα παίξει το αρχείο στο Μετά από ώρες Μήνυμα Filenam τομέα, ΕΠΕΚΤΑΣΗ θα αποστείλει την πρόσκληση για την Μετά από ώρες Παράταση στο dialplan τηλεφωνητή και θα απευθύνει την πρόσκληση προς το τηλεφωνητή κουτί που απαριθμούνται στο Μετά Ώρες Τηλεφωνητής τομέα , IN_GROUP θα αποστείλει την πρόσκληση προς την εισερχόμενη ομάδα επιλεγμένων στο Μετά Ώρες Μεταφορά Ομάδα επιλέξτε λίστα. Προεπιλεγμένο είναι ΜΗΝΥΜΑ.
-
+
- Ταυτότητα μιγμάτων καταλόγων - ταυτότητα του μίγματος καταλόγων.Πρέπει να είστε από 2-20 χαρακτήρες στο μήκος χωρίς ταδιαστήματα ή άλλη ειδική στίξη. + Μετά από το όνομα αρχείου μηνυμάτων ωρών - το ακουστικό αρχείοπου βρίσκεται στον κεντρικό υπολογιστή που παίζεται εάν η δράσητίθεται το ΜΗΝΥΜΑ. Η προεπιλογή είναι VM-ANTJ'O
-
+
- Όνομα μιγμάτων καταλόγων - περιγραφικό όνομα του μίγματοςκαταλόγων. Πρέπει να είστε από 2-50 χαρακτήρες στο μήκος. + Μετά από την παράταση ωρών - η dialplan επέκταση για ναστείλει την πρόσκληση εάν η δράση τίθεται την ΕΠΕΚΤΑΣΗ. Ηπροεπιλογή είναι 8300.
-
+
- Λεπτομέρεια μιγμάτων καταλόγων - η σύνθεση της εισόδου μιγμάτωνκαταλόγων. Περιέχει τον κατάλογο ταυτότητα, τη διαταγή μιγμάτων,τα ποσοστά και τις θέσεις που αποτελούν αυτό το μίγμα καταλόγων.Τα ποσοστά πρέπει πάντα να προσθέσουν μέχρι 100, και οικατάλογοι όλοι πρέπει να είναι ενεργοί και καθορισμένοι τηνεκστρατεία για την είσοδο μιγμάτων διαταγής που ενεργοποιείται. + Μετά από το φωνητικό ταχυδρομείο ωρών - το κιβώτιο φωνητικούταχυδρομείου για να στείλει την πρόσκληση εάν η δράση τίθεται τοΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΊΟ.
-
+
- Μέθοδος μιγμάτων καταλόγων - η μέθοδος όλα τα μέρη τηςλεπτομέρειας μιγμάτων καταλόγων από κοινού. EVEN_MIX θααναμίξει τους μολύβδους από κάθε μέρος που παρεμβάλλεται λευκέςσελίδες με τα άλλα μέρη, όπως αυτό το 1,2,3,1,2,3,1,2,3.IN_ORDER θα βάλει τους μολύβδους στη διαταγή στην οποίαπαρατίθενται στην οθόνη λεπτομέρειας μιγμάτων καταλόγων1,1,1,2,2,2,3,3,3. ΤΥΧΑΊΑ θα τους βάλουν στην ΤΥΧΑΊΑ προεπιλογήδιαταγής 1,3,2,1,1,3,2,1,3. είναι IN_ORDER. + Μετά από ώρες Μεταφορά Όμιλος - Εάν Μετά Ώρες Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα, αν αυτή τεθεί σε-η ομάδα εκτός από τη διάρκεια των κλήσεων για το καθεστώς που ορίζεται στην ομάδα.
-
+
- Agent Screen Εκτεταμένη Alt Dial - Αυτό το χαρακτηριστικό επιτρέπει σε υπαλλήλους να επεκταθεί η πρόσβαση των αναπληρωματικών τους αριθμούς τηλεφώνου για οδηγεί πέρα από την κανονική Alt τηλέφωνο και Address3 τομείς που μπορούν να χρησιμοποιηθούν σε VICIDIAL για αριθμούς τηλεφώνου πέραν της κύριας αριθμό τηλεφώνου. Η παράταση μπορεί να είναι αριθμοί τηλεφώνου κλήσης αυτόματα χρησιμοποιώντας το πρόγραμμα Auto-Alt-Dial χαρακτηριστικό στο VICIDIAL ρυθμίσεις της καμπάνιας, αλλά αυτό που επιτρέπει Agent Screen χαρακτηριστικό θα επιτρέψει επίσης τον αντιπρόσωπο για να καλέσετε τους αριθμούς αυτούς από τους πράκτορα οθόνη, καθώς και να επεξεργαστούν τις πληροφορίες. + Δεν Πράκτορες Δεν Αναμονής - Αν αυτό το πεδίο έχει οριστεί σε Ναι ή NO_PAUSED τότε δεν θα ζητεί να τεθεί στην ουρά για αυτό στην ομάδα, εφόσον δεν υπάρχουν παράγοντες συνδεδεμένοι και οι κλήσεις θα πάει στο γραφείο Δεν Δεν Queue δράσης. Η NO_PAUSED επιλογή δεν θα στείλει επίσης την καλούντες στην ουρά, εάν υπάρχουν μόνο σε παύση παράγοντες στην ομάδα της. Προεπιλογή είναι N.
-
+
- Έρευνα Πρώτο αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται από τη στιγμή που ο πελάτης παραλαμβάνει το τηλέφωνο όταν τρέχει μια έρευνα καμπάνια. + Δεν Agent Δεν Queue δράσης - Εάν δεν Agent Δεν ουρά είναι ενεργοποιημένη, τότε το πεδίο αυτό καθορίζει, όπου η κλήση θα πάει, αν δεν υπάρχουν παράγοντες στην ομάδα της. Προεπιλογή είναι το μήνυμα, αυτό παίζει τα αρχεία ήχου στο πεδίο δράσης Value και στη συνέχεια διακόπτει.
-
+
- Έρευνα DTMF Digits - Αυτό το πεδίο όπου θα καθοριστούν οι θέσεις ότι ο πελάτης μπορεί να πατήσει ως επιλογή για μια έρευνα της καμπάνιας. ψηφία DTMF είναι έγκυρο0123456789*# + Δεν Agent Δεν Queue δράσης Αξία - Αυτή είναι η τιμή για την παραπάνω δράση. Προεπιλογή είναι nbdy-avail-to-take-call|vm-goodbye.
-
+
- Έρευνα δεν ενδιαφέρεται Digit - Αυτό το πεδίο όπου θα καθορίσει ο πελάτης ψηφίο πιεστεί θα δείτε ότι δεν ενδιαφέρονται. + Ευπρόσδεκτο όνομα αρχείου μηνυμάτων - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται όταν μπαίνει ηκλήση. Εάν θέστε ΚΑΝΕΝΑΣ --- έπειτα κανένα μήνυμα δεν θαπαιχτεί. Η προεπιλογή είναι ΚΑΜΙΑ ---. Το πεδίο αυτό όπως και με τα άλλα πεδία ήχου στο In-ομάδες, με εξαίρεση το γραφείο Προειδοποίησης Όνομα αρχείου, μπορεί να έχει πολλαπλά αρχεία ήχου που διαδραματίζουν αν βάλετε ένα σωλήνα διαχωρισμένων λίστα των αρχείων ήχου στο πεδίο.
-
+
- Έρευνα δεν ενδιαφέρεται Status - Το πεδίο αυτό είναι που έχετε επιλέξει το καθεστώς που θα χρησιμοποιηθεί για δεν ενδιαφέρεται. DNC Εάν χρησιμοποιείται και η καμπάνια είναι ρυθμισμένη να χρησιμοποιεί DNC στη συνέχεια τον αριθμό τηλεφώνου, θα προστίθεται αυτόματα στο VICIDIAL εσωτερική DNC λίστα.και πιθανώς η εκστρατεία ειδικά DNC λίστα. + Παίξτε Καλωσόρισμα - Οι ρυθμίσεις αυτές, όταν επιλέγουν να παίξουν το μήνυμα υποδοχής που ορίζεται, πάντα θα παίζει κάθε φορά, ΠΟΤΕ δεν πρόκειται ποτέ να παίξετε, IF_WAIT_ONLY μόνο θα παίξει το μήνυμα υποδοχής, αν η κλήση δεν πάνε αμέσως σε ένα παράγοντα , και YES_UNLESS_NODELAY θα είναι πάντα ευπρόσδεκτη παίξει το μήνυμα Αν δεν το NO_DELAY η ρύθμιση είναι ενεργοποιημένη. Προεπιλεγμένο είναι πάντα.
-
+
- Έρευνα Opt-σε αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-in με την έρευνα, δεν επέλεξε-ή που δεν απάντησαν και αν η μη ανταπόκριση ενέργεια έχει οριστεί σε OptOut. Μετά από αυτό το αρχείο ήχου παίζεται, η μέθοδος έρευνας δράση. + Μουσική στο πλαίσιο λαβής - η μουσική στο πλαίσιο λαβής στηχρήση όταν τοποθετείται ο πελάτης στη λαβή. Η προεπιλογή είναιπροεπιλογή.
-
+
- Έρευνα δεν ενδιαφέρεται αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-από την έρευνα, δεν επέλεξε-ή σε περίπτωση που δεν απαντήσει η μη ανταπόκριση ενέργεια έχει οριστεί σε OptIn. Μετά από αυτό το αρχείο ήχου παίζεται, η πρόσκληση θα είναι ανηρτημένα. + Στο γρήγορο όνομα αρχείου λαβής - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται σε ένα τακτόχρονικό διάστημα όταν είναι ο πελάτης στη λαβή. Η προεπιλογήείναι generic_hold. Αυτό το ακουστικό αρχείο ΠΡΕΠΕΙ να είναι 9δευτερόλεπτα ή λιγότεροι στο μήκος.
-
+
- Μέθοδος Έρευνα - Αυτή η επιλογή καθορίζει τι θα συμβεί σε μια κλήση μετά ο πελάτης επέλεξε-in. AGENT_XFER θα αποστείλει την πρόσκληση για το επόμενο διαθέσιμο πράκτορα. Τηλεφωνητής θα αποστείλει την πρόσκληση προς το τηλεφωνητή θέση που καθορίζεται στο Τηλεφωνητής τομέα. ΕΠΕΚΤΑΣΗ θα στείλει ο πελάτης με την παράταση που ορίζεται στην έκθεση Xfer Επέκταση τομέα. HANGUP θα κλείσεις τον πελάτη. CAMPREC_60_WAV θα στείλει ο πελάτης να έχουμε μια καταγραφή που γίνεται με τους απάντηση, η καταγραφή αυτή θα πρέπει να τοποθετούνται σε ένα φάκελο με το όνομα, όπως η εκστρατεία στο εσωτερικό της καμπάνιας Έρευνα Καταγραφή Directory. + Στο γρήγορο διάστημα λαβής - το χρονικό διάστημα σταδευτερόλεπτα για να περιμένει πρίν παίζει επάνω κρατά γρήγορος.Η προεπιλογή είναι 60. Για να απενεργοποιήσετε την Προτροπή σε αναμονή, που το χρονικό διάστημα έως 0.
-
+
- Έρευνα της μη αντίδρασης Δράση - Αυτό είναι που σας καθορίζουν τι θα συμβεί αν δεν υπάρχει απάντηση στο ερώτημα της έρευνας. OptIn θα στείλει την πρόσκληση για την Έρευνα για την μέθοδο και αν ο πελάτης θα πατήσει το ψηφίο DTMF. OptOut θα στείλει ο πελάτης για να μέθοδος έρευνας, ακόμα και εάν δεν πιέσετε ένα ψηφίο DTMF. + Παίξτε στο Τόπος Γραμμή - Αυτό καθορίζει αν ο καλών θα ακούσει τη θέση τους στη γραμμή όταν εισέλθουν στην ουρά, καθώς και όταν ακούν την announcemend. Προεπιλεγμένο είναι Ν.
-
+
- Έρευνα Απάντηση Digit Map - Αυτό είναι το σημείο όπου μπορείτε να ορίσετε μια περιγραφή για να πάνε με κάθε ψηφίο DTMF επιλογή που ο πελάτης μπορεί να επιλέξει. + Παίξτε Κρατήστε Εκτιμώμενη ώρα - Αυτό καθορίζει αν ο καλών θα ακούσει τον εκτιμώμενο χρόνο κατέχουν προτού μεταφερθούν σε έναν πράκτορα. Προεπιλεγμένο είναι Ν. Εάν ο πελάτης είναι σε αναμονή και ακούει αυτό το μήνυμα εκτιμώμενο χρόνο κατέχουν, ο ελάχιστος χρόνος που θα παίξει είναι 15 δευτερόλεπτα.
-
+
- Έρευνα Xfer Επέκταση - , εάν η έρευνα Μέθοδος ΕΠΕΚΤΑΣΗ είναι επιλεγμένο τότε ο πελάτης θα πρέπει να απευθύνεται έκκληση για την επέκταση αυτής της dialplan. + Κρατήστε Ώρα Επιλογή - Αυτό σας επιτρέπει να καθορίσετε την δρομολόγηση των κλήσεων, εάν ο εκτιμώμενος χρόνος κατέχουν πάνω από το ποσό των δευτερολέπτων που καθορίζεται παρακάτω. Προεπιλεγμένο είναι ΚΑΝΕΝΑ.
-
+
- Έρευνα Καμπάνια Καταγραφή Directory - Εάν η μέθοδος έρευνας της CAMPREC_60_WAV είναι επιλεγμένο, τότε η αντίδραση των πελατών θα πρέπει να καταχωρούνται και να τοποθετούνται σε έναν κατάλογο το όνομα του από την εκστρατεία στο εσωτερικό αυτού του καταλόγου. + Κρατήστε Ώρα Επιλογή δευτερόλεπτα - Αν Κρατήστε Ώρα Επιλογή έχει οριστεί σε οτιδήποτε, αλλά ΚΑΝΕΝΑ, αυτό είναι ο αριθμός των δευτερολέπτων του χρόνου εκτιμάται ότι κατέχουν θα ενεργοποιήσει την αναμονή ώρα της επιλογής. Η προεπιλογή είναι 360 δευτερόλεπτα. - +
+
+
+ Κρατήστε Ώρα Επιλογή Επέκταση - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε ΕΠΕΚΤΑΣΗ, αυτή είναι η επέκταση dialplan ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. -
-
-
-Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη: -
  - random: ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα vicidial_live_agents -
  - oldest_call_start: ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθό κλήσεων. -
  - oldest_call_finish: ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση. -
  - overall_user_level: οι διαταγές από το user_level του χειριστή όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα άβουν περισσότερες κλήσεις. -
  - campaign_rank: διαταγές από την τάξη που δίνεται στον πράκτοραγια την εκστρατεία. Ο υψηλότερος σε χαμηλότερο. -
  - fewest_calls: διαταγές από τον αριθμό κλήσεων πουπαραλαμβάνονται από έναν πράκτορα για εκείνη την συγκεκριμένηεισερχόμενη ομάδα. Λιγότερες κλήσεις πρώτα. +
+
+
+ Κρατήστε Ώρα Επιλογή Τηλεφωνητής - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε τηλεφωνητή, αυτή είναι η θέση τηλεφωνητή ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. -
-
-
-Τοπική Ωρα Κλήσης - Εδώ, μπορείτε να ορίσετε τις ώρες που θα θέλατε να γίνουν οι κλήσεις. Αυτό ελέγχετε από τον κωδικό περις και ρυθμίζεται για Daylight Savings εάν είναι εφαρμόσιμο. +
+
+
+ Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε IN_GROUP, αυτή είναι η ομάδα που την εισερχόμενη κλήση θα αποσταλεί στο εάν ο εκτιμώμενος χρόνος αναμονή υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. -
-
-
-Πρόθεμα Κλήσης - Αυτό το ο επιτρέπει την πιο εύκολη αλλαγή της διαδρομής της κλήσης να βγει έξω μέσω διαφορετικής μεθόδου, χωρίς να γίνει επαναφόρτωση στο Asterisk. Προκαθορισμένο είναι το 9 βασισμένο σύμφωνα με το 91NXXNXXXXXX στο σχέδιο κλήσεων - extensions.conf. +
+
+
+ Κρατήστε Ώρα Επιλογή αρχείου Callback - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτό είναι το όνομα του αρχείου εντολών που έπαιξε πριν από την κλήση καταγράφεται ως μια νέα πρωτοβουλία στον κατάλογο ID που καθορίζονται κατωτέρω, εάν η εκτιμώμενη κατέχει υπερβαίνει το χρόνο Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. -
-
-
-Παράλειψη Κωδικού Τηλεφώνου - Αυτό το πεδίο σας επιτρέπει να αφήσετε εκτός το πεδίο phone_code καθώς γίνονται οι κλήσεις. Προκαθορισμένα είναι Ο. +
+
+
+ Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτός είναι ο Κατάλογος ID η κλήση προστίθεται ως μια νέα πρωτοβουλία, αν το εκτιμώμενο χρόνο κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. -
-
-
-CallerID Εκστρατείας - Αυτός ο τομέας επιτρέπει την αποστολή ενός αριθμού συνήθειας callerid στις εξερχόμενες κλήσεις. Αυτό είναι ο αριθμός που θα παρουσίαζε στο callerid του προσώπου που καλείτε. Η προεπιλογή είναι ΑΓΝΩΣΤΗ. Εάν χρησιμοποιείτε το T1 ή Eί να σχηματίσει έξω αυτήν την επιλογή είναι μόνο διαθέσιμος εάν χρησιμοποιετε PRIs - ISDN Tί ή Eί - που ανοίγουν το χαρακτηριστικό γνώρισμα συνήθειας callerid, αυτό δεν θα λειτουργήσει με την υπηρεσία ληστεύω-κομματιών - RBS - κυκλώματα. Αυτό θα λειτουργήσει επίσης μέσω του περισσότερου VOIP - ΓΟΥΛΙΑ ή κορμοί IAX - προμηθευτές που επιτρέπουν δυναμικό εξερχόμενο callerID. Η σνήθεια callerID ισχύει μόνο για τις κλήσεις που τοποθετούνται για την εκστρατεία VICIDIAL άμεσα, οποιεσδήποτε κλήσεις ή μεταφορές 3$ων συμβαλλόμενων μερών δεν θα στείλουν τη συνήθεια callerID. ΣΗΜΕΙΩΣΗ: Μερικές φορές να βάλει ΑΓΝΩΣΤΗ ή ΙΔΙΩΤΙΚΗ στον τομέα θα παραγάγει την αποστολή του αριθμού προεπιλογής σας callerID από το μεταφορέα σας με τις κλήσεις. Μπορείτε να θελήσετε να εξετάσετε αυτό και να υποβάλετε 0000000000 ο τομέας callerid αντ' αυτού εάν δεν θέλετε να σας στείλετε CallerID. +
+
+
+ Agent Alert Filename - Το αρχείο ήχου για να παίξουν σε έναν πράκτορα να ανακοινώσει ότι η πρόσκληση έρχεται να το πρακτορείο. Για να μη χρησιμοποιήσετε αυτή τη λειτουργία που αυτή να Χ. Default είναι ding. -
-
-
-Τηλ.Επέκταση εκσρατείας Ηχογρ - αυτό το πεδίο επιτρέπει να ορίσετε μία επέκταση ηχογράφησης που χρησιμοποιείται με το VICIDIAL. Αυτό επιτρέπει να χρησιμοποιήσετε διαφορετικές επεκτάσεις ανάλογα με πόσο χρόνο θέλετε να επιτρέψετε μία ηχογράφηση και ποιο τύπος κωδικοποιητή-αποκωδικοποιητή θα χρσιμοποιηθεί. Η προεπιλογή είναι 8309 και θα καταγράψει με το σχήμα WAV μέχρι μια ώρα. Μια άλλη επιλογή που περιλαμβάνεται στα παραδείγματα είναι 8310 που θα καταγράψουν με το σχήμα GSM για μέχρι μια ώρα. +
+
+
+ Αγρυπνη καθυστέρηση πρακτόρων - το χρονικό διάστημα στα χιλιοστάτου δευτερολέπτου για να περιμένει πρίν στέλνει την κλήση στονπράκτορα μετά από να παίξει την επάνω άγρυπνη επέκτασηπρακτόρων. Η προεπιλογή είναι 1000. -
-
-
-Ηχογράφηση Εκστρατείας - Αυτές οι επιλογές σας επιτρέπουν να διαλέξετε πιο επίπεδο ηχογράφησης επιτρέπετε στην εκστρατεία. NEVER θα απενεργοποιήσει την ηχογράφηση στον πελάτη. ONDEMAND είναι το προκαθορισμένο και επιτρέπει στον χειριστή να ξεκινάει και να σταματάει την ηχογράφηση. ALLCALLS ξεκινάει η ηχογράφηση όποτε η κλήση μεταφέρετε στον χειριστή. +
+
+
+ Ομάδα μεταφοράς προεπιλογής - αυτός ο τομέας είναι η-ΟΜΑΔΑπροεπιλογής που θα επιλεχτεί αυτόματα όταν πηγαίνει ο πράκτοραςστο πλαίσιο μεταφορά-διασκέψεων στη διεπαφή πρακτόρων τους. -
-
-
-Όνομα αρχείου ηχογρ εκστρατείας - αυτό το πεδίο επιτρέπει να προσαρμόσετε το όνομα της ηχογράφησης, όταν η ηχογράφηση της εκστρατείας είναι ONDEMAND ή ALLCALLS. Οι μεταβλητές είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. Η προεπιλογή είναι FULLDATE_ΧΕΙΡΙΣΤΗΣκαι θα μοιάζει με το 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα μοιάζει με το TESTCAMP_51020103108_3125551212. 50 char max. +
+
+
+ -Στην ομάδα Καταγραφή Παράκαμψη - Το πεδίο αυτό επιτρέπει την πρωταρχική της εκστρατείας πρόσκληση εγγραφής ρύθμιση. Η ρύθμιση αυτή μπορεί να παρακαμφθεί από την καταγραφή vicidial_user υπερισχύει ρύθμιση. DISABLED δεν θα υπερισχύσει του εκστρατεία καταγραφής ρύθμιση. ΠΟΤΕ θα απενεργοποιήσει την εγγραφή για τον πελάτη. ONDEMAND είναι η προεπιλεγμένη και επιτρέπει στον αντιπρόσωπο να ξεκινήσετε και να σταματήσετε την εγγραφή, όπως απαιτείται. ALLCALLS θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα που ο πράκτορας δεν την επιλογή για να σταματήσει η εγγραφή. -
-
-
-Καθυστέρηση Ηχογράφησης - Μόνο για ηχογραφήσεις ALLCALLS και ALLFORCE. Προκαθορισμένα είναι 0. +
+
+
+ -Στην ομάδα αρχείου Καταγραφή - Το πεδίο αυτό θα αντικαταστήσει το Εκστρατεία Καταγραφή Filenaming σύστημα εάν δεν έχει οριστεί σε ΚΑΝΕΝΑ. Οι μεταβλητές που επιτρέπονται είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH ΠΡΑΚΤΟΡΑ. Η προεπιλογή είναι FULLDATE_ΧΕΙΡΙΣΤΗΣκαι θα μοιάζει κάπως έτσι 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα μοιάζει κάπως έτσι TESTCAMP_51020103108_3125551212. 50 char max. Προεπιλεγμένο είναι ΚΑΝΕΝΑ. -
-
-
-Βοηθός εκστρατείας - αυτές οι επιλογές επιτρέπουν να επιλέξετε τον Βοηθό που θα εμφανιστεί στην οθόνη των χειριστών για αυτήν την εκστρατεία. Επιλέξτε NONE για να μην παρουσιάσετε κανένα χειρόγραφο για αυτήν την εκστρατεία. + 0) + { + ?> +
+
+
+ QC Enabled - Η ρύθμιση αυτού του τομέα να Y επιτρέπει τον παράγοντα Ποιοτικός Έλεγχος χαρακτηριστικά στην εργασία. Προεπιλεγμένο είναι Ν. -
-
-
-Κατά την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν να επιλέξετε εάν θέλετε την αυτόματη έναρξη μίας ιστο σελίδας σε ένα διαφορετικό παράθυρο, αυτόματη μεάβαση στον Βοηθό ή τίποτα. +
+
+
+ QC καθεστώτων - Η περιοχή αυτή είναι που θα επιλέξετε το οποίο οδηγεί των καθεστώτων θα πρέπει να φύγει πάνω από το σύστημα, QC. Τοποθετήστε ένα δίπλα στο ελέγξτε την κατάσταση που θέλετε, QC για την αναθεώρηση. -
-
-
-Xfer- Συνδ DTMF - αυτά τα τέσσερα πεδία επιτρέπουν να έχετε δύο σύνολα συνδιάσκεψης μεταφοράς και DTMF. Όταν η κλήση ή η εκστρατεία φορτώνεται, ο Βοηθός θα παρουσιάσει δύο πλήκτρα στο πλαίσιο μεταφορά-διασκέψεων και αυτόματα θα παρουσιάσει τα πεδία αριθμό για κλήση και στείλε DTMF όταν πατηθεί. Εάν θέλετε να επιτρέψετε τις μεταφορές σε σύμβουλο, ενός fronter σε έναν closer, θα πρέπει να θέσετε CXFER στο πεδίο number-to-dial και το σωστό κείμενο κλήσης θα σταλεί να κάνει μία τοπική μεταφορά σε σύμβουλο. Καθώς η κλήση θα απαντηθεί, μπορείτε να αφήσετε το πελάτη με τον χειριστή closer και να συνεχίσετε στην επόμενη κλήση πατώντας το πλήκτρο ΑΠΟΧΩΡΗΣΗ 3μελής ΚΛΗΣΗΣ. Εάν θέλετε να μεταφέρετε τους πελάτες σε AGI διαδικασία ή σε IVR, τότε θα πρέπει να θέσετε AXFER στο πεδίο number-to-dial. Μπορείτε επίσης να θέσετε και μία προσωπική τηλ. σύνδεση μετά το AXFER ή CXFER. +
+
+
+ QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια inbound_group. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες. -
-
-
-Προγραμματισμένες Επανακλήσεις - Αυτή η επιλογή επιτρέπει στον χειριστή να τερματίσει μία κλήση ως CALLBK και να επιλέξει τα δεδομένα και την ώρα κατά την οποία ο οδηγός θα ξανα-ενεργοποιηθεί. +
+
+
+ QC Get Record Launch- Αυτό επιτρέπει σε μια από τις ακόλουθες δράσεις, το οποίο θα ενεργοποιείται σε ένα QC πράκτορας που λαμβάνει ένα νέο ρεκόρ. -
-
-
-Δευτερ. Τυλίγματος - Ο αριθμός των δευερολέπτων που αναγκάζει έναν χειριστή να περιμένει πριν του επιτραπεί να λάβει ή να κάνει άλλη κλήση. Ο χρόνος ξεκινάει μόλις τερματίσει μία κλήση. Προκαθορισμένα είναι 0 δευτερ. Αν ο χρόνος περάσει πριν ο χειριστής τερματίσει την κλήση, δεν θα μετακινηθεί στην άλλη κλήση πριν συβεί αυτό. +
+
+
+ QC Δείτε Καταγραφή - Αυτό επιτρέπει την καταγραφή που μπορεί να συνδέεται με την εγγραφή QC να εμφανίζονται στην οθόνη QC πράκτορα. -
-
-
-Μήνυμα Τυλίγματος - Αυτό είναι ένα συγκεκριμένο μήνυμα εκστρατείας που εμφανίζεται στην οθόνη τυλίγματος όταν έχει οριστεί ο χρόνος τυλίγματος. +
+
+
+ QC WebForm Διεύθυνση - Αυτό είναι το ότι μια διεύθυνση ιστοσελίδας, QC, μπορεί να πάει στο γραφείο, όταν κάνετε κλικ στο σύνδεσμο WEBFORM στην οθόνη QC. -
-
-
-Εσωτερικός κατάλογος DNC χρήσης - αυτό καθορίζει εάν αυτή ηεκστρατεία είναι στους μολύβδους φίλτν ενάντια στον εσωτερικόκατάλογο DNC. Εάν τίθεται το Υ, η χοάνη θα ψάξει κάθετηλεφωνικό αριθμό στον κατάλογο DNC πρίν τοποθετεί τον στηχοάνη. Εάν είναι στον κατάλογο DNC έπειτα θα αλλάξει ότιθέση μολύβδου σε DNCL έτσι που δεν μπορεί να σχηματιστεί. Ηπροεπιλογή είναι ν. - -
-
-
-Χρησιμοποίησε Καμπάνια DNC List - Αυτό καθορίζει αν αυτό είναι η εκστρατεία εναντίον ενός φίλτρου οδηγεί DNC λίστα που είναι ειδικά για τη συγκεκριμένη καμπάνια μόνο. Αν είναι να Y, η χοάνη θα εξετάσει, για κάθε αριθμό τηλεφώνου στον αγώνα-ειδικά DNC λίστα πριν από την τοποθέτησή του στην χοάνη. Αν είναι στην εκστρατεία ειδικά DNC λίστα τότε θα αλλάξει το καθεστώς που οδηγούν σε DNCC έτσι δεν μπορεί να εξερχόμενων. Προεπιλεγμένο είναι Ν. - -
-
-
-Εισερχόμενες ομάδες - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. - -
-
-
-Η μικρή διακοπή πρακτόρων κωδικοποιεί ενεργό - επιτρέπει στουςπράκτορες για να επιλέξει έναν κώδικα μικρής διακοπής ότανχτυπούν στο κουμπί ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ στους κώδικες μικρής διακοπήςvicidial.php. είναι ευπροσδιόριστοι ανά εκστρατεία στοκατώτατο σημείο της οθόνης λεπτομέρειας άποψης εκστρατείας καιαποθηκεύονται στον πίνακα vicidial_agent_log. Η προεπιλογήείναι ν. ΙΣΧΥΟΝΤΑ θα ισχύουν οι παράγοντες να επιλέγουν μια παύση κωδικό αν κάντε κλικ στο κουμπί PAUSE. - -
-
-
-Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών - εάνθέστε το Υ, δεν αλλάζει οποιων δήποτε από το αρχείο στοιχείωνπελατών όταν διαθέσεις πρακτόρων η κλήση. Η προεπιλογή είναι ν. - -
-
-
-Απενεργοποίηση Alter Πελατών τηλέφωνο - Σε περίπτωση που σε Y, δεν αλλάζει ο πελάτης τον αριθμό τηλεφώνου όταν ένας πράκτορας διαθέσεις την κλήση. Προεπιλεγμένο είναι Y. - -
-
-
-Εμφάνιση Agent Queue Count - Σε περίπτωση που σε Y, σε περίπτωση που ο πελάτης περιμένει για έναν πράκτορα, ο κοτσίδας ζητεί απεικόνιση στο πάνω μέρος της οθόνης πράκτορας θα γίνονται κόκκινα και δείχνουν τον αριθμό των αναμονής κλήσεων. Προεπιλεγμένο είναι Y. - -
-
-
-Χειρωνακτικός κατάλογος ταυτότητα πινάκων - η προεπιλογήlist_id για να χρησιμοποιηθεί όταν δημιουργείται έναςπράκτορας placces μια χειρωνακτική κλήση και ένα νέο αρχείομολύβδου στο vicidial_list. Η προεπιλογή είναι 999. Αυτός οτομέας μπορεί να περιέχει τα ψηφία μόνο. - -
-
-
-Εγχειρίδιο Dial Διηθείται - Αυτό σας επιτρέπει να φιλτράρετε τις κλήσεις που πράκτορες να καλέσετε στο εγχειρίδιο λειτουργίας για την εκστρατεία αυτή με οποιονδήποτε συνδυασμό από τα ακόλουθα: DNC - προβλέπονται για την έναρξη, CAMPAIGNΛΙΣΤΕΣ - ο αριθμός πρέπει να είναι εντός των καταλόγων για την εκστρατεία, ΚΑΝΕΝΑ - δεν υπάρχει φίλτρο για χειροκίνητη κλήση ή γρήγορα dial καταλόγους. - -
-
-
-Agent Screen Clipboard Αντιγραφή - Αυτή η δυνατότητα είναι ενεργοποιημένη για το παρόν μόνο τον Internet Explorer. Η λειτουργία αυτή σας επιτρέπει να επιλέξετε ένα πεδίο που θα αντιγραφεί στον υπολογιστή πρόχειρο του παράγοντα υπολογιστή σε μια πρόσκληση που απηύθυνε σε έναν πράκτορα. Κοινές χρήσεις για αυτό είναι να καταστεί δυνατή η εύκολη επικόλληση του λογαριασμού αριθμούς ή αριθμούς τηλεφώνου κληρονομιά σε πελάτη σχετικά με τις εφαρμογές πράκτορα υπολογιστή. - -
-
-
-3-Way Outbound Call CallerID - Αυτό ορίζει τι έστειλε ως εξερχόμενο callerID σειρά από 3 δρόμων κλήσεις που διατίθενται από το γραφείο, η καμπάνια χρησιμοποιεί το έθιμο εκστρατεία callerID, ΠΕΛΑΤΗ χρησιμοποιεί τον αριθμό των πελατών που είναι ενεργή παράγοντες για την οθόνη και AGENT_PHONE χρησιμοποιεί το callerID για το τηλέφωνο ότι ο παράγοντας που είναι συνδεδεμένοι στο. AGENT_CHOOSE επιτρέπει να επιλέγουν τον πράκτορα που callerID να χρησιμοποιήσετε για την 3-way ζητεί από μια λίστα επιλογών. - -
-
-
-3-Way Call Πρόθεμα Κλήσης - Αυτό ορίζει τι είναι χρησιμοποιείται ως πρόθεμα κλήσης για 3-way κλήσεις, προεπιλογή είναι άδειο, ώστε η εκστρατεία dial πρόθεμα χρησιμοποιείται, passthru έτσι ώστε να μπορείτε να ακούτε τους ήχους είναι 88. - - 0) - { +
+
+
+ QC Σενάριο - Αυτό είναι το σενάριο που μπορεί να χρησιμοποιηθεί από τους πράκτορες, QC στην SCRIPT καρτέλα στην οθόνη, QC. + -
-
-
- QC Enabled - Η ρύθμιση αυτού του τομέα να Y επιτρέπει τον παράγοντα Ποιοτικός Έλεγχος χαρακτηριστικά στην εργασία. Προεπιλεγμένο είναι Ν.
-
+
- QC καθεστώτων - Η περιοχή αυτή είναι που θα επιλέξετε το οποίο οδηγεί των καθεστώτων θα πρέπει να φύγει πάνω από το σύστημα, QC. Τοποθετήστε ένα δίπλα στο ελέγξτε την κατάσταση που θέλετε, QC για την αναθεώρηση. + Κρατήστε Ανάκληση Μεταφορά σε ομάδα - Σε περίπτωση που ο πελάτης ζητά πίσω σε αυτή την ομάδα-σε περισσότερες από μία φορές και αυτό δεν έχει οριστεί σε ΚΑΝΕΝΑ, τότε η κλήση θα αποστέλλονται αυτόματα στην επιλεγμένη ομάδα σε αυτό το πεδίο . Προεπιλεγμένο είναι ΚΑΝΕΝΑ.
-
+
- QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια καμπάνια. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες. + Δεν Υστέρηση Call διαδρομή - Η ρύθμιση αυτής να Y θα άρουν όλες τις φορές περιμένουμε και ήχου προτροπές και επιχειρείτε να στείλετε την πρόσκληση δικαίωμα ενός πράκτορα. Δεν υπερισχύει ευπρόσδεκτο μήνυμα ή σε αναμονή εντολών ρυθμίσεις. Προεπιλεγμένο είναι Ν.
-
+
- QC Get Record Launch- Αυτό επιτρέπει σε μια από τις ακόλουθες δράσεις, το οποίο θα ενεργοποιείται σε ένα QC πράκτορας που λαμβάνει ένα νέο ρεκόρ. + Στατιστικά Ποσοστό ζητεί απάντηση εντός Χ δευτερόλεπτα - Αυτό το πεδίο σας επιτρέπει να ορίσετε τον αριθμό των δευτερολέπτων που κατέχουν την απεικόνιση σε πραγματικό χρόνο stats θα χρησιμοποιήσουν για να υπολογίσουν το ποσοστό των κλήσεων απαντά ότι απαντήθηκαν εντός Χ αριθμό των δευτερολέπτων σε αναμονή.
-
+
- QC Δείτε Καταγραφή - Αυτό επιτρέπει την καταγραφή που μπορεί να συνδέεται με την εγγραφή QC να εμφανίζονται στην οθόνη QC πράκτορα. + Ξεκινήστε Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank.
-
+
- QC WebForm Διεύθυνση - Αυτό είναι το ότι μια διεύθυνση ιστοσελίδας, QC, μπορεί να πάει στο γραφείο, όταν κάνετε κλικ στο σύνδεσμο WEBFORM στην οθόνη QC. + Καλέστε dispo URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank.
-
+
- QC Σενάριο - Αυτό είναι το σενάριο που μπορεί να χρησιμοποιηθεί από τους πράκτορες, QC στην SCRIPT καρτέλα στην οθόνη, QC. - - -
-
-
-Αναζήτηση Vtiger Κατηγορία - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεων στη συνέχεια τη ρύθμιση αυτή θα καθορίσει εάν η σελίδα vtiger_search.php θα αναζητήσετε τον αριθμό τηλεφώνου που είχε εγγραφεί. Υπάρχουν 4 επιλογές που μπορεί να χρησιμοποιηθεί στον τομέα αυτό: ΜΟΛΥΒΔΟΥ-Η επιλογή αυτή θα αναζητήσει μέσω του Vtiger οδηγεί μόνο, ΛΟΓΑΡΙΑΣΜΟΥ-Η επιλογή αυτή θα ψάξει μέσω των λογαριασμών Vtiger και όλες τις επαφές και επιμέρους επαφές για τον αριθμό τηλεφώνου, VENDOR-Αυτή η επιλογή μόνο μέσω της αναζήτησης Vtiger πωλητές, ACCTID-Η επιλογή αυτή λειτουργεί μόνο για τους λογαριασμούς και θα λάβει τα vicidial vendor_lead_code τομέα και προσπαθήστε να αναζητήσετε το αναγνωριστικό λογαριασμού Vtiger. Αν ανεπιτυχή θα προσπαθήσουμε τυχόν άλλες μεθόδους που αναφέρονται που έχετε επιλέξει. Πολλαπλές επιλογές μπορούν να χρησιμοποιηθούν για κάθε αναζήτηση, αλλά σε μεγάλες βάσεις δεδομένων που αυτό δεν συνιστάται. Προεπιλεγμένο είναι ΜΟΛΥΒΔΟΥ. - -
-
-
-Δημιουργία Vtiger Call Record - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger δραστηριότητα δημιουργείται για την πρόσκληση, όταν ο αντιπρόσωπος πηγαίνει στο vtiger_search σελίδα. Προεπιλεγμένο είναι Y. - -
-
-
-Δημιουργία Vtiger Μόλυβδος Record - Εάν είναι ενεργοποιημένη Vtiger ενσωμάτωση στο σύστημα και τις ρυθμίσεις Vtiger Αναζήτηση ΜΟΛΥΒΔΟ τότε η κατηγορία περιλαμβάνει τη ρύθμιση αυτή θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger οδηγήσει δημιουργείται όταν ο πράκτορας πηγαίνει στη σελίδα vtiger_search και δεν είναι βρέθηκαν να έχουν την κλήση του αριθμού τηλεφώνου. Προεπιλεγμένο είναι Y. - -
-
-
-Vtiger Screen Είσοδος - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ο χρήστης είναι συνδεδεμένος στο Vtiger διεπαφής αυτόματα όταν συνδεθείτε στο VICIDIAL. Προεπιλεγμένο είναι Y. - -
-
-
-Ομάδα Γνωστός Επιτρέπεται - Αν θέλετε να σας επιτρέψει πράκτορες να χρησιμοποιούν ψευδώνυμα ομάδα τότε πρέπει να ορίσετε αυτή την ομάδα να Y. Γνωστός εξηγούνται περισσότερο στο τμήμα Διοίκησης, που επιτρέπει στους εκπροσώπους να επιλέξετε διαφορετικό callerIDs εγχειρίδιο για εξερχόμενες κλήσεις ότι μπορεί να πραγματοποιηθεί. Προεπιλεγμένο είναι Ν. - -
-
-
-Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε επιτρέπεται Γνωστός ομάδα, τότε αυτό είναι γνωστός και ότι η ομάδα έχει επιλεγεί από προεπιλογή κατά την πρώτη του πράκτορα επιλέγει να χρησιμοποιήσει μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό. - - - - - -



- -VICIDIAL_ΛΙΣΤΕΣ ΠΙΝΑΚΑΣ

-
-
-ID Λίστας - Αυτό είναι το αριθμητικό όνομα της λίστας, δεν μπορεί να διορθωθεί μετά από την αρχική εισαγωγή, πρέπει να περιέχει μόνο αριθμούς και πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες. Must be a number greater than 100. - -
-
-
-Ονομα Λίστας - Αυτή είναι η περιγραφή της λίστας, πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. - -
-
-
-Περιγραφή καταλόγων - αυτό είναι ο τομέας υπομνημάτων για τονκατάλογο, είναι προαιρετικό. - -
-
-
-Ημερομηνία αλλαγής καταλόγων - αυτό είναι η τελευταία φορά ότιοι τοποθετήσεις για αυτόν τον κατάλογο τροποποιήθηκαν από καμιάάποψη. - -
-
-
-Τελευταία ημερομηνία κλήσης καταλόγων - αυτό είναι η τελευταίαφορά ότι ο μόλυβδος σχηματίστηκε από αυτόν τον κατάλογο. - -
-
-
-Εκστρατεία - Αυτή είναι η εκστρατεία όπου ανήκει η λίστα. Μία λίστα μπορεί μόνο να κληθεί από μία εκστρατεία κάθε φορά. - -
-
-
-Ενεργή - Αυτό ορίζει κατά πόσον η λίστα πρόκειται να κληθεί ή όχι. - -
-
-
-Επαναφορά Κατάστασης-Κλήσης-Καθοδήγησης για την λίστα - Αυτό επαναφέρει τους οδηγούς σε αυτή την λίστα στο Ν σε \"μη κληθέντα από την τελευταία επαναφορά\" και σημαίνει ότι για οποιαδήποτε καθοδήγηση μπορεί να γίνει κλήση εάν είναι η σωστή κατάσταση, όπως ορίσθηκε στην οθόνη τις εκστρατείας. - -
-
-
-Κατάλογος VICIDIAL DNC - Αυτό δεν θέτουν κάθε λίστα περιέχει μόλυβδο που έχει τεθεί σε καθεστώς των DNC στο σύστημα. Μέσω του ΚΑΤΑΛΟΓΟΙ - ADD TO ΑΡΙΘΜΟΣ DNC σελίδα μπορείτε να προσθέσετε τους αριθμούς σε αυτόν τον κατάλογο, έτσι ώστε δεν θα ονομάζεται από καμπάνιες που χρησιμοποιούν την εσωτερική DNC λίστα. Υπάρχει επίσης η δυνατότητα να προσθέσετε οδηγεί στην καμπάνια-DNC ειδικών καταλόγων για αυτές τις καμπάνιες που έχουν τους. - - - -



- -VICIDIAL_Εισερχόμενα_GROUPS ΠΙΝΑΚΑΣ

-
-
-ID Ομάδας - Αυτό είναι το σύντομο όνομα της εισερχόμενης ομάδας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 20χαρακτήρες. - -
-
-
-Ονομα Ομάδας - Αυτή είναι η περιγραφή της ομάδας, πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες. Δεν μπορεί να συμπεριαμβάνει παύλες, συν ή κενά . - -
-
-
-Χρώμα Ομάδας - Αυτό είναι το χρώμα που εμφανίζεται στην VICIDIAL εφαρμογή όταν η κλήση έρχεται σε αυτή την ομάδα. Πρέπει να είναι μεταξύ 2 και 7 χαρακτήρες. Εάν αυτό είναι ορισμένο ως hex , θα πρέπει να τοποθετήσετε ένα # στην αρχή του κειμένου ή το VICIDIAL δεν θα δουλεύει σωστά. - -
-
-
-Ενεργοποίηση - Αυτό καθορίζει κατά πόσον αυτή η ομάδα εμφανίζεται στο κουτί επιλογής όταν ένας χρήστης συνδέεται. - -
-
-
-Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυ την ομάδα. - -
-
-
-Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη: -
  - random: ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα vicidial_live_agents -
  - oldest_call_start: ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθό κλήσεων. -
  - oldest_call_finish: ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση. -
  - overall_user_level: οι διαταγές από το user_level του χειριστή όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα άβουν περισσότερες κλήσεις. -
  - inbound_group_rank: διαταγές από την τάξη που δίνεται στονπράκτορα για τη συγκεκριμένη εισερχόμενη ομάδα. Ο υψηλότερος σεχαμηλότερο. -
  - fewest_calls: διαταγές από τον αριθμό κλήσεων πουπαραλαμβάνονται από έναν πράκτορα για εκείνη την συγκεκριμένηεισερχόμενη ομάδα. Λιγότερες κλήσεις πρώτα. -
  - campaign_rank: διαταγές από την τάξη που δίνεται στον πράκτοραγια την εκστρατεία. Ο υψηλότερος σε χαμηλότερο. -
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. -
- -
-
-
-Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. - -
-
-Οθόνη Μπροστινού - Αυτό το πεδίο καθορίζει κατά πόσον στον VICIDIAL χόμενος χρήστης θα εμφανίζεται το όνομα του μπροστινού - εάν υπάρχει κάποιο - στο πεδίο κατάστασης όταν η κλήση έρχεται στον χρήστη. - -
-
-
-Βοηθός εκστρατείας - αυτές οι επιλογές επιτρέπουν να επιλέξετε τον Βοηθό που θα εμφανιστεί στην οθόνη των χειριστών για αυτήν την εκστρατεία. Επιλέξτε NONE για να μην παρουσιάσετε κανένα χειρόγραφο για αυτήν την εκστρατεία. - -
-
-
-Κατά την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν να επιλέξετε εάν θέλετε την αυτόματη έναρξη μίας ιστο σελίδας σε ένα διαφορετικό παράθυρο, αυτόματη μεάβαση στον Βοηθό ή τίποτα. - -
-
-
-Xfer- Συνδ DTMF - αυτά τα τέσσερα πεδία επιτρέπουν να έχετε δύο σύνολα συνδιάσκεψης μεταφοράς και DTMF. Όταν η κλήση ή η εκστρατεία φορτώνεται, ο Βοηθός θα παρουσιάσει δύο πλήκτρα στο πλαίσιο μεταφορά-διασκέψεων και αυτόματα θα παρουσιάσει τα πεδία αριθμό για κλήση και στείλε DTMF όταν πατηθεί. Εάν θέλετε να επιτρέψετε τις μεταφορές σε σύμβουλο, ενός fronter σε έναν closer, θα πρέπει να θέσετε CXFER στο πεδίο number-to-dial και το σωστό κείμενο κλήσης θα σταλεί να κάνει μία τοπική μεταφορά σε σύμβουλο. Καθώς η κλήση θα απαντηθεί, μπορείτε να αφήσετε το πελάτη με τον χειριστή closer και να συνεχίσετε στην επόμενη κλήση πατώντας το πλήκτρο ΑΠΟΧΩΡΗΣΗ 3μελής ΚΛΗΣΗΣ. Εάν θέλετε να μεταφέρετε τους πελάτες σε AGI διαδικασία ή σε IVR, τότε θα πρέπει να θέσετε AXFER στο πεδίο number-to-dial. Μπορείτε επίσης να θέσετε και μία προσωπική τηλ. σύνδεση μετά το AXFER ή CXFER. - -
-
-
-Drop Call δευτερόλεπτα - Ο αριθμός των δευτερολέπτων σε μια κλήση θα παραμείνουν στην ουρά πριν να θεωρείται DROP. - -
-
-
-Drop δράσης - Αυτό το μενού σας επιτρέπει να διαλέξετε ό, τι συμβαίνει σε μια κλήση όταν έχει να περιμένει περισσότερο από ό, τι έχει οριστεί στο Drop Call δευτερόλεπτα τομέα. HANGUP απλά θα κλείσεις την κλήση, το μήνυμα θα αποστείλει την πρόσκληση της Drop παράταση που έχετε ορίζονται κατωτέρω, τηλεφωνητή θα απευθύνει την πρόσκληση προς το τηλεφωνητή θέση που έχετε IN_GROUP ορίζονται κατωτέρω, και θα απευθύνει την πρόσκληση στην ομάδα Inbound που καθορίζονται κατωτέρω. - -
-
-
-Drop παράταση - Αν Drop δράση που να είναι μήνυμα, αυτό είναι η κλήση σχέδιο επέκτασης ότι η πρόσκληση θα σταλεί στο εάν ανέρχεται Drop Call Δευτερόλεπτα. - -
-
-
-ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. - -
-
-
-Drop Μεταφορά Όμιλος - Αν Drop Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα εάν ανέρχεται Drop Call Δευτερόλεπτα. - -
-
-
-Χρόνος κλήσης - αυτό είναι το χρονικό σχέδιο κλήσης ναχρησιμοποιήσει για αυτήν την εισερχόμενη ομάδα. Λάβετε υπόψηότι ο χρόνος είναι βασισμένος στο χρόνο κεντρικών υπολογιστών.Η προεπιλογή είναι 24hours. - -
-
-
-Μετά από ώρες δράσης - Η δράση για την εκτέλεση, αν είναι μετά από ώρες, όπως ορίζεται στην πρόσκληση αυτή την φορά για τα εισερχόμενα ομάδα. HANGUP θα hangup αμέσως την πρόσκληση, MESSASGE θα παίξει το αρχείο στο Μετά από ώρες Μήνυμα Filenam τομέα, ΕΠΕΚΤΑΣΗ θα αποστείλει την πρόσκληση για την Μετά από ώρες Παράταση στο dialplan τηλεφωνητή και θα απευθύνει την πρόσκληση προς το τηλεφωνητή κουτί που απαριθμούνται στο Μετά Ώρες Τηλεφωνητής τομέα , IN_GROUP θα αποστείλει την πρόσκληση προς την εισερχόμενη ομάδα επιλεγμένων στο Μετά Ώρες Μεταφορά Ομάδα επιλέξτε λίστα. Προεπιλεγμένο είναι ΜΗΝΥΜΑ. - -
-
-
-Μετά από το όνομα αρχείου μηνυμάτων ωρών - το ακουστικό αρχείοπου βρίσκεται στον κεντρικό υπολογιστή που παίζεται εάν η δράσητίθεται το ΜΗΝΥΜΑ. Η προεπιλογή είναι VM-ANTJ'O - -
-
-
-Μετά από την παράταση ωρών - η dialplan επέκταση για ναστείλει την πρόσκληση εάν η δράση τίθεται την ΕΠΕΚΤΑΣΗ. Ηπροεπιλογή είναι 8300. - -
-
-
-Μετά από το φωνητικό ταχυδρομείο ωρών - το κιβώτιο φωνητικούταχυδρομείου για να στείλει την πρόσκληση εάν η δράση τίθεται τοΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΊΟ. - -
-
-
-Μετά από ώρες Μεταφορά Όμιλος - Εάν Μετά Ώρες Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα, αν αυτή τεθεί σε-η ομάδα εκτός από τη διάρκεια των κλήσεων για το καθεστώς που ορίζεται στην ομάδα. - -
-
-
-Ευπρόσδεκτο όνομα αρχείου μηνυμάτων - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται όταν μπαίνει ηκλήση. Εάν θέστε ΚΑΝΕΝΑΣ --- έπειτα κανένα μήνυμα δεν θαπαιχτεί. Η προεπιλογή είναι ΚΑΜΙΑ --- - -
-
-
-Παίξτε Καλωσόρισμα - Οι ρυθμίσεις αυτές, όταν επιλέγουν να παίξουν το μήνυμα υποδοχής που ορίζεται, πάντα θα παίζει κάθε φορά, ΠΟΤΕ δεν πρόκειται ποτέ να παίξετε, IF_WAIT_ONLY μόνο θα παίξει το μήνυμα υποδοχής, αν η κλήση δεν πάνε αμέσως σε ένα παράγοντα , και YES_UNLESS_NODELAY θα είναι πάντα ευπρόσδεκτη παίξει το μήνυμα Αν δεν το NO_DELAY η ρύθμιση είναι ενεργοποιημένη. Προεπιλεγμένο είναι πάντα. - -
-
-
-Μουσική στο πλαίσιο λαβής - η μουσική στο πλαίσιο λαβής στηχρήση όταν τοποθετείται ο πελάτης στη λαβή. Η προεπιλογή είναιπροεπιλογή. - -
-
-
-Στο γρήγορο όνομα αρχείου λαβής - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται σε ένα τακτόχρονικό διάστημα όταν είναι ο πελάτης στη λαβή. Η προεπιλογήείναι generic_hold. Αυτό το ακουστικό αρχείο ΠΡΕΠΕΙ να είναι 9δευτερόλεπτα ή λιγότεροι στο μήκος. - -
-
-
-Στο γρήγορο διάστημα λαβής - το χρονικό διάστημα σταδευτερόλεπτα για να περιμένει πρίν παίζει επάνω κρατά γρήγορος.Η προεπιλογή είναι 60. Για να απενεργοποιήσετε την Προτροπή σε αναμονή, που το χρονικό διάστημα έως 0. - -
-
-
-Παίξτε στο Τόπος Γραμμή - Αυτό καθορίζει αν ο καλών θα ακούσει τη θέση τους στη γραμμή όταν εισέλθουν στην ουρά, καθώς και όταν ακούν την announcemend. Προεπιλεγμένο είναι Ν. - -
-
-
-Παίξτε Κρατήστε Εκτιμώμενη ώρα - Αυτό καθορίζει αν ο καλών θα ακούσει τον εκτιμώμενο χρόνο κατέχουν προτού μεταφερθούν σε έναν πράκτορα. Προεπιλεγμένο είναι Ν. - -
-
-
-Κρατήστε Ώρα Επιλογή - Αυτό σας επιτρέπει να καθορίσετε την δρομολόγηση των κλήσεων, εάν ο εκτιμώμενος χρόνος κατέχουν πάνω από το ποσό των δευτερολέπτων που καθορίζεται παρακάτω. Προεπιλεγμένο είναι ΚΑΝΕΝΑ. - -
-
-
-Κρατήστε Ώρα Επιλογή δευτερόλεπτα - Αν Κρατήστε Ώρα Επιλογή έχει οριστεί σε οτιδήποτε, αλλά ΚΑΝΕΝΑ, αυτό είναι ο αριθμός των δευτερολέπτων του χρόνου εκτιμάται ότι κατέχουν θα ενεργοποιήσει την αναμονή ώρα της επιλογής. Η προεπιλογή είναι 360 δευτερόλεπτα. - -
-
-
-Κρατήστε Ώρα Επιλογή Επέκταση - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε ΕΠΕΚΤΑΣΗ, αυτή είναι η επέκταση dialplan ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. - -
-
-
-Κρατήστε Ώρα Επιλογή Τηλεφωνητής - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε τηλεφωνητή, αυτή είναι η θέση τηλεφωνητή ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. - -
-
-
-Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε IN_GROUP, αυτή είναι η ομάδα που την εισερχόμενη κλήση θα αποσταλεί στο εάν ο εκτιμώμενος χρόνος αναμονή υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. - -
-
-
-Κρατήστε Ώρα Επιλογή αρχείου Callback - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτό είναι το όνομα του αρχείου εντολών που έπαιξε πριν από την κλήση καταγράφεται ως μια νέα πρωτοβουλία στον κατάλογο ID που καθορίζονται κατωτέρω, εάν η εκτιμώμενη κατέχει υπερβαίνει το χρόνο Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. - -
-
-
-Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτός είναι ο Κατάλογος ID η κλήση προστίθεται ως μια νέα πρωτοβουλία, αν το εκτιμώμενο χρόνο κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. - -
-
-
-Αγρυπνη επέκταση πρακτόρων - η επέκταση που στέλνει στη σύνοδοπρακτόρων για να αναγγείλει ότι μια κλήση έρχεται στον πράκτορα.Αυτή η επέκταση πρέπει να έχει μια αναπαραγωγή ήχου ενόςακουστικού αρχείου. Για να μην χρησιμοποιήσετε αυτήν τηνλειτουργία θέστε αυτό σε Χ. Default είναι Χ. - -
-
-
-Αγρυπνη καθυστέρηση πρακτόρων - το χρονικό διάστημα στα χιλιοστάτου δευτερολέπτου για να περιμένει πρίν στέλνει την κλήση στονπράκτορα μετά από να παίξει την επάνω άγρυπνη επέκτασηπρακτόρων. Η προεπιλογή είναι 1000. - -
-
-
-Ομάδα μεταφοράς προεπιλογής - αυτός ο τομέας είναι η-ΟΜΑΔΑπροεπιλογής που θα επιλεχτεί αυτόματα όταν πηγαίνει ο πράκτοραςστο πλαίσιο μεταφορά-διασκέψεων στη διεπαφή πρακτόρων τους. - -
-
-
--Στην ομάδα Καταγραφή Παράκαμψη - Το πεδίο αυτό επιτρέπει την πρωταρχική της εκστρατείας πρόσκληση εγγραφής ρύθμιση. Η ρύθμιση αυτή μπορεί να παρακαμφθεί από την καταγραφή vicidial_user υπερισχύει ρύθμιση. DISABLED δεν θα υπερισχύσει του εκστρατεία καταγραφής ρύθμιση. ΠΟΤΕ θα απενεργοποιήσει την εγγραφή για τον πελάτη. ONDEMAND είναι η προεπιλεγμένη και επιτρέπει στον αντιπρόσωπο να ξεκινήσετε και να σταματήσετε την εγγραφή, όπως απαιτείται. ALLCALLS θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα που ο πράκτορας δεν την επιλογή για να σταματήσει η εγγραφή. - -
-
-
--Στην ομάδα αρχείου Καταγραφή - Το πεδίο αυτό θα αντικαταστήσει το Εκστρατεία Καταγραφή Filenaming σύστημα εάν δεν έχει οριστεί σε ΚΑΝΕΝΑ. Οι μεταβλητές που επιτρέπονται είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH ΠΡΑΚΤΟΡΑ. Η προεπιλογή είναι FULLDATE_ΧΕΙΡΙΣΤΗΣκαι θα μοιάζει κάπως έτσι 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα μοιάζει κάπως έτσι TESTCAMP_51020103108_3125551212. 50 char max. Προεπιλεγμένο είναι ΚΑΝΕΝΑ. - - 0) - { - ?> -
-
-
- QC Enabled - Η ρύθμιση αυτού του τομέα να Y επιτρέπει τον παράγοντα Ποιοτικός Έλεγχος χαρακτηριστικά στην εργασία. Προεπιλεγμένο είναι Ν. - -
-
-
- QC καθεστώτων - Η περιοχή αυτή είναι που θα επιλέξετε το οποίο οδηγεί των καθεστώτων θα πρέπει να φύγει πάνω από το σύστημα, QC. Τοποθετήστε ένα δίπλα στο ελέγξτε την κατάσταση που θέλετε, QC για την αναθεώρηση. - -
-
-
- QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια inbound_group. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες. - -
-
-
- QC Get Record Launch- Αυτό επιτρέπει σε μια από τις ακόλουθες δράσεις, το οποίο θα ενεργοποιείται σε ένα QC πράκτορας που λαμβάνει ένα νέο ρεκόρ. - -
-
-
- QC Δείτε Καταγραφή - Αυτό επιτρέπει την καταγραφή που μπορεί να συνδέεται με την εγγραφή QC να εμφανίζονται στην οθόνη QC πράκτορα. - -
-
-
- QC WebForm Διεύθυνση - Αυτό είναι το ότι μια διεύθυνση ιστοσελίδας, QC, μπορεί να πάει στο γραφείο, όταν κάνετε κλικ στο σύνδεσμο WEBFORM στην οθόνη QC. - -
-
-
- QC Σενάριο - Αυτό είναι το σενάριο που μπορεί να χρησιμοποιηθεί από τους πράκτορες, QC στην SCRIPT καρτέλα στην οθόνη, QC. - - -
-
-
-Κρατήστε Ανάκληση Μεταφορά σε ομάδα - Σε περίπτωση που ο πελάτης ζητά πίσω σε αυτή την ομάδα-σε περισσότερες από μία φορές και αυτό δεν έχει οριστεί σε ΚΑΝΕΝΑ, τότε η κλήση θα αποστέλλονται αυτόματα στην επιλεγμένη ομάδα σε αυτό το πεδίο . Προεπιλεγμένο είναι ΚΑΝΕΝΑ. - -
-
-
-Δεν Υστέρηση Call διαδρομή - Η ρύθμιση αυτής να Y θα άρουν όλες τις φορές περιμένουμε και ήχου προτροπές και επιχειρείτε να στείλετε την πρόσκληση δικαίωμα ενός πράκτορα. Δεν υπερισχύει ευπρόσδεκτο μήνυμα ή σε αναμονή εντολών ρυθμίσεις. Προεπιλεγμένο είναι Ν. - -
-
-
-Στατιστικά Ποσοστό ζητεί απάντηση εντός Χ δευτερόλεπτα - Αυτό το πεδίο σας επιτρέπει να ορίσετε τον αριθμό των δευτερολέπτων που κατέχουν την απεικόνιση σε πραγματικό χρόνο stats θα χρησιμοποιήσουν για να υπολογίσουν το ποσοστό των κλήσεων απαντά ότι απαντήθηκαν εντός Χ αριθμό των δευτερολέπτων σε αναμονή. - -
-
-
-Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε τη δυνατότητα Ομάδα Γνωστός για την εκστρατεία ότι ο αντιπρόσωπος είναι συνδεδεμένοι στο τότε αυτή είναι η ομάδα που έχει επιλεγεί άλλως πρώτα από προεπιλογή για μια κλήση που προέρχεται από αυτή την ομάδα, όταν ο εισερχόμενος πράκτορας επιλέγει να χρησιμοποιήσετε μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό. - - - - - -



- -VICIDIAL_Εισερχόμενα_DIDS ΠΙΝΑΚΑΣ

-
-
-
-DID Επέκταση - Αυτό είναι το πλήθος, την παράταση ή DID που θα ενεργοποιήσουν την παρούσα θέση και που θα σας διαδρομή, και εντός του συστήματος με τη βοήθεια αυτής της λειτουργίας. Υπάρχει reserved προεπιλογή DID που μπορείτε να χρησιμοποιήσετε το οποίο είναι μόνο η λέξη-default-χωρίς παύλες, ότι θα μπορείτε να στείλετε ΑΛΛΟΣ κάθε κλήση που δεν ταιριάζει με οποιαδήποτε άλλα υφιστάμενα πρότυπα στην προεπιλεγμένη DID. - -
-
-
-DID Περιγραφή - Αυτή είναι η περιγραφή της DID δρομολόγησης εισόδου. - -
-
-
-DID Ενεργό - Αυτό το πεδίο όπου το σύνολο DID εισόδου σε ενεργό ή μη. Προεπιλεγμένο είναι Y. - -
-
-
-DID Route - Αυτό το είδος της διαδρομής που μπορείτε να ρυθμίσετε το DID χρήση. Παράταση θα αποστείλει τις κλήσεις προς την επέκταση τέθηκε κάτω, τηλεφωνητή θα αποστείλει κλήσεις απευθείας στον τηλεφωνητή τέθηκε κάτω από το πλαίσιο, ο πράκτορας θα αποστείλει κλήσεις σε VICIDIAL παράγοντα όταν είναι συνδεδεμένοι, τηλέφωνο θα στείλει την κλήση σε τηλέφωνα εισόδου επιλεγεί στη συνέχεια, θα IN_GROUP αποστέλλουν κλήσεις απευθείας από την καθορισμένη εισερχόμενα ομάδα. Προεπιλεγμένο είναι παράταση. - -
-
-
-Επέκταση - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτή είναι η επέκταση dialplan που ζητά θα αποσταλεί στο. Προεπιλεγμένο είναι 9998811112, της μη παροχής υπηρεσιών. - -
-
-
-Παράταση Πλαίσιο - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτό είναι το πλαίσιο dialplan ότι οι κλήσεις θα σταλούν σε. Προεπιλογή είναι προεπιλογή. - -
-
-
-Τηλεφωνητής Πλαίσιο - Τηλεφωνητής Εάν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η θέση τηλεφωνητή ότι οι κλήσεις που θα αποσταλεί στο. Προεπιλεγμένο είναι άδειο. - -
-
-
-Τηλέφωνο Επέκταση - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο που καλεί επέκταση θα αποσταλεί στο. - -
-
-
-Τηλέφωνο IP Διακομιστή - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το server IP για το τηλέφωνο που καλεί επέκταση θα σταλεί στο. - -
-
-
-Χρήστης Agent - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το γραφείο που VICIDIAL κλήσεις θα σταλούν σε. - -
-
-
-Χρήστης Unavailable Δράση - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομής, και ο χρήστης είναι συνδεδεμένος ή δεν υπάρχουν, τότε αυτή είναι η διαδρομή που θα λάβουν τις προσκλήσεις. - -
-
-
-Ρυθμίσεις χρήστη Οδός-Στην Ομάδα - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι θα πρέπει να χρησιμοποιείται για την ουρά ρυθμίσεις του καλούντος είναι σε αναμονή για αποστολή προς τον πράκτορα. Προεπιλεγμένο είναι AGENTDIRECT. - -
-
-
-Στην Ομάδα-ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι οι κλήσεις που θα σταλεί στο. - -
-
-
-Στην Ομάδα-Call Χειριστείτε Μέθοδος - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η πρόσκληση χειρισμό μέθοδος που χρησιμοποιείται για αυτές τις κλήσεις. CID θα προσθέσετε ένα νέο ρεκόρ οδηγήσει με κάθε κλήση χρησιμοποιώντας το CallerID όπως τον αριθμό τηλεφώνου, θα προσπαθήσει να CIDLOOKUP lookup τον αριθμό τηλεφώνου από το CallerID σε ολόκληρο το σύστημα, θα attampt να CIDLOOKUPRL lookup τον αριθμό τηλεφώνου από το CallerID ορίζεται σε ένα μόνο κατάλογο , CIDLOOKUPRC θα attampt να lookup τον αριθμό τηλεφώνου από το CallerID σε όλες τις λίστες που ανήκουν στην καθορίζονται εκστρατεία, ΣΤΕΝΟΤΕΡΗΣ καθορίζεται για VICIDIAL Στενότερος κλήσεις, ANI θα προσθέσει ένα νέο ρεκόρ οδηγήσει με κάθε κλήση χρησιμοποιώντας την ANI όπως ο αριθμός τηλεφώνου, ANILOOKUP θα προσπαθήσει να lookup τον αριθμό τηλεφώνου από το ANI σε ολόκληρο το σύστημα, ANILOOKUPRL θα attampt να lookup τον αριθμό τηλεφώνου από το ANI ορίζεται σε ένα μόνο κατάλογο, θα XDIGITID εντολών του καλούντος για μια Χ ψήφιο κωδικό πριν από την πρόσκληση θα τεθούν σε την ουρά. Προεπιλεγμένο είναι CID. - -
-
-
-Στην Ομάδα-Agent Search Μέθοδος - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η μέθοδος αναζήτησης παράγοντας που πρέπει να χρησιμοποιούνται από τα εισερχόμενα ομάδα, LO είναι Load-Balanced-Υπερχείλιση και θα προσπαθήσει να στείλει την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή πριν δοκιμάσετε να το στείλετε σε έναν πράκτορα σε άλλο διακομιστή, LB Load είναι ισορροπημένη και θα προσπαθήσει να στείλει την πρόσκληση για την επόμενη πράκτορα θέμα αυτό δεν είναι για server, SO-Server είναι το μόνο και θα μόνο να προσπαθήσουμε να στείλουμε τις κλήσεις σε παράγοντες σχετικά με το διακομιστή ότι η πρόσκληση ήταν για. Προεπιλεγμένο είναι LB. - -
-
-
--Στην ομάδα Κατάλογος ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτός είναι ο Κατάλογος ID που οδηγεί μπορεί να ερευνάται και ότι οδηγεί θα προστεθούν στο αν χρειάζεται. - -
-
-
--Στην ομάδα καμπάνιας ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το ID Εκστρατείας που οδηγεί μπορεί να αναζητήσει σε περίπτωση που η πρόσκληση χειριστεί μέθοδος CIDLOOKUPRC. - -
-
-
--Στην ομάδα Τηλέφωνο κώδικα - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο κώδικα που χρησιμοποιείται εάν μια νέα πρωτοβουλία δημιουργείται. - - - - -



- -VICIDIAL_REMOTE_AGENTS ΠΙΝΑΚΑΣ

-
-
-Αρχή ID Χρήστη - Αυτό είναι η αρχή του ID Χρήστη που χρησιοποιείται όταν οι καταχωρήσεις των απομακρυσμένων χρηστών παρεμβάλλονται στο σύστημα. Εάν ο αριθμός των γραμμών είναι μεγαλύτερος από 1, αυτός ο αριθμός αυξάνει κατά ένα μέχρι κάθε γραμμή να έχει μία καταχώρηση. Επιβεβαιώστε, ότι δημιουργήσατε ένα νέο VICIDIAL λογαριασμό η με επίπεο χρήσης 4 ή μεγαλύτερο, εάν θέλετε να μπορεί να χρησιμοποιήσει την σελίδα vdremote για απομακρυσμένη πρόσβαση του λογαριασμού του. - -
-
-
-Αριθμός Γραμμών - Αυτό ορίζει πόσες καταχωρήσεις απομακρυσμένων χρηστών το σύστημα δημιουρ, και καθορίζει πόσες γραμμές μπορεί με ασφάλεια να στείλει στον αριθμό παρακάτω. - -
-
-
-IP Διακομιστή - Μία καταχώρηση απομακρυσμένου χρήστη είναι μόνο καλό για ένα συγκεκριμένο διακομιστή, εδώ επιλέγετε τον διακομιστή που ανήκει. - -
-
-
-Εξωτερική Τηλ.Σύνδεση - Αυτός είναι ο αριθμός που θέλετε οι κλήσεις να προωθούνται. Επιβεβαιώστε ότι είναι ένας πλήρης αριθμός από το σχέδιο κλήεων και εάν θέλετε ένα 9 στην αρχή το βάζετε εδώ. Κάντε μία δοκιμή καλώντας αυτόν τον αριθμό από ένα τηλέφωνο του συστήματος. - -
-
-
-Κτάσταση - Εδώ μπορείτε να θέσετε τον απομακρυσμένο χρήστη σε ενεργό και μη ενεργό. Μόλις ο χρήστης γίνει ενεργός το σύστημα μπορεί να στείλει κλήσεις σε αυτόν. Μπορεί να διαρκέσει μέχρι 30 δευτερόλεπτα μετά την αλλαγή της κατάστασης σε μη ενεργός, ώστε να σταματήσει να δέχεται κ. - -
-
-
-Εκστρατεία - Εδώ μπορείτε να επιλέξετε την εκστρατεία όπου οι απομακρυσμένοι χρήστες θα συνδεθούν. Για εισερχόμενες πρέπει να χρησιμοποιηθεί η εκστρατεία CLOSER και επιλέξτε τις εισερχόμενες εκστρατείες παρακάτω, από που θέλετε να λαμβάνεται τις κλήσεις. - -
-
-
-Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία CLOSER. - - -



- -VICIDIAL_CAMPAIGN_ΛΙΣΤΕΣ

-
-
-Οι λίστες της εκστρατείας παρουσιάζονται εδώ, και εάν είναι ενεργές (Υ ή Ν) μπορείτε να πάτε στην οθόνη λίστας με το να πατήσετε στο ID λίστας, στην πρώτη στήλη. - - -



- -VICIDIAL_CAMPAIGN_STATUSES ΠΙΝΑΚΑΣ

-
-
-Με την χρήση προσαρμοσμένων καταστάσεων εκστρατείας, μπορείτε να έχετε καταστάσεις μόνο για συγκεκριμένες εκστρατείες. Η κατάσταση πρέπει να είναι 1-8 χαρακτήρες, η περιγραφή 2-30 χαρακτήρες και Επιλέξιμα καθορίζεται αν εμφανίζεται στο VICIDIAL ως τερματισμός. Ο τομέας χρησιμοποιείται κατά τον υπολογισμό του ποσοστούπτώσης, ή εγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θαχρησιμοποιήσει αυτήν την θέση κατά υπολογισμό τωνανθρώπινος-απαντημένων κλήσεων. Η επιλογή κατηγορίας επιτρέπει σε σας για να ομαδοποιήσειδιάφορες θέσεις σε ένα catogy που μπορεί να χρησιμοποιηθεί γιατη στατιστική ανάλυση. - - - - 0) - { - ?> -



- - VICIDIAL_CAMPAIGN_HOTKEYS ΠΙΝΑΚΑΣ

-
-
- Με την χρήση προσαρμοσμένων κλειδιών εκστρατείας, οι χρήστες που χρησιμοποιούν την εφαρμογή vicidial μπορούν να κλείσουν και να τερματίσουν την κλήση, με ένα μόνο πάτημα πλήκτρου. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. + Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε τη δυνατότητα Ομάδα Γνωστός για την εκστρατεία ότι ο αντιπρόσωπος είναι συνδεδεμένοι στο τότε αυτή είναι η ομάδα που έχει επιλεγεί άλλως πρώτα από προεπιλογή για μια κλήση που προέρχεται από αυτή την ομάδα, όταν ο εισερχόμενος πράκτορας επιλέγει να χρησιμοποιήσετε μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό. @@ -3904,10 +4445,191 @@ if ($SSoutbound_autodial_active > 0)



- VICIDIAL_LEAD_RECYCLE ΠΙΝΑΚΑΣ

-
+ VICIDIAL_Εισερχόμενα_DIDS ΠΙΝΑΚΑΣ


- Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. +
+
+ DID Επέκταση - Αυτό είναι το πλήθος, την παράταση ή DID που θα ενεργοποιήσουν την παρούσα θέση και που θα σας διαδρομή, και εντός του συστήματος με τη βοήθεια αυτής της λειτουργίας. Υπάρχει reserved προεπιλογή DID που μπορείτε να χρησιμοποιήσετε το οποίο είναι μόνο η λέξη-default-χωρίς παύλες, ότι θα μπορείτε να στείλετε ΑΛΛΟΣ κάθε κλήση που δεν ταιριάζει με οποιαδήποτε άλλα υφιστάμενα πρότυπα στην προεπιλεγμένη DID. + +
+
+
+ DID Περιγραφή - Αυτή είναι η περιγραφή της DID δρομολόγησης εισόδου. + +
+
+
+ DID Ενεργό - Αυτό το πεδίο όπου το σύνολο DID εισόδου σε ενεργό ή μη. Προεπιλεγμένο είναι Y. + +
+
+
+ DID Route - Αυτό το είδος της διαδρομής που μπορείτε να ρυθμίσετε το DID χρήση. Παράταση θα αποστείλει τις κλήσεις προς την επέκταση τέθηκε κάτω, τηλεφωνητή θα αποστείλει κλήσεις απευθείας στον τηλεφωνητή τέθηκε κάτω από το πλαίσιο, ο πράκτορας θα αποστείλει κλήσεις σε VICIDIAL παράγοντα όταν είναι συνδεδεμένοι, τηλέφωνο θα στείλει την κλήση σε τηλέφωνα εισόδου επιλεγεί στη συνέχεια, θα IN_GROUP αποστέλλουν κλήσεις απευθείας από την καθορισμένη εισερχόμενα ομάδα. Προεπιλεγμένο είναι παράταση. CALLMENU θα αποστείλει την πρόσκληση προς την πρόσκληση που ορίζεται Μενού. + +
+
+
+ Επέκταση - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτή είναι η επέκταση dialplan που ζητά θα αποσταλεί στο. Προεπιλεγμένο είναι 9998811112, της μη παροχής υπηρεσιών. + +
+
+
+ Παράταση Πλαίσιο - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτό είναι το πλαίσιο dialplan ότι οι κλήσεις θα σταλούν σε. Προεπιλογή είναι προεπιλογή. + +
+
+
+ Τηλεφωνητής Πλαίσιο - Τηλεφωνητής Εάν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η θέση τηλεφωνητή ότι οι κλήσεις που θα αποσταλεί στο. Προεπιλεγμένο είναι άδειο. + +
+
+
+ Τηλέφωνο Επέκταση - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο που καλεί επέκταση θα αποσταλεί στο. + +
+
+
+ Τηλέφωνο IP Διακομιστή - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το server IP για το τηλέφωνο που καλεί επέκταση θα σταλεί στο. + +
+
+
+ Καλέστε Μενού - Αν CALLMENU έχει επιλεγεί ως η DID διαδρομής, τότε αυτή είναι η πρόσκληση Μενού κλήσεις που θα σταλεί στο. + +
+
+
+ Χρήστης Agent - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το γραφείο που VICIDIAL κλήσεις θα σταλούν σε. + +
+
+
+ Χρήστης Unavailable Δράση - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομής, και ο χρήστης είναι συνδεδεμένος ή δεν υπάρχουν, τότε αυτή είναι η διαδρομή που θα λάβουν τις προσκλήσεις. + +
+
+
+ Ρυθμίσεις χρήστη Οδός-Στην Ομάδα - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι θα πρέπει να χρησιμοποιείται για την ουρά ρυθμίσεις του καλούντος είναι σε αναμονή για αποστολή προς τον πράκτορα. Προεπιλεγμένο είναι AGENTDIRECT. + +
+
+
+ Στην Ομάδα-ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι οι κλήσεις που θα σταλεί στο. + +
+
+
+ In-Group Call Handle Method - Αν IN_GROUP έχει επιλεγεί ως η DID διαδρομής, τότε αυτή είναι η επεξεργασία κλήσεων μέθοδος που χρησιμοποιείται για αυτές τις κλήσεις. CID θα προσθέσει ένα νέο ρεκόρ με αποτέλεσμα κάθε κλήση με το CallerID όπως ο αριθμός τηλεφώνου, CIDLOOKUP θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε ολόκληρο το σύστημα, CIDLOOKUPRL θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε μία μόνο που περιλαμβάνεται στον κατάλογο , CIDLOOKUPRC θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε όλες τις λίστες που ανήκουν στη συγκεκριμένη εκστρατεία, ΠΙΟ ΚΟΝΤΑ έχει καθοριστεί για VICIDIAL Closer κλήσεις, ANI θα προσθέσει ένα νέο ρεκόρ με αποτέλεσμα κάθε κλήση με την ANI όπως ο αριθμός τηλεφώνου, ANILOOKUP θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από την ANI σε ολόκληρο το σύστημα, ANILOOKUPRL θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από την ANI σε μία μόνο που περιλαμβάνεται στον κατάλογο, θα XDIGITID προτροπή του καλούντος για ένα Χ οκταψήφιο κωδικό πριν από την κλήση θα τεθεί σε την ουρά, VIDPROMPT θα οδηγήσουν το καλούντος για τον αριθμό ταυτότητας τους και θα δημιουργήσει ένα νέο ρεκόρ με αποτέλεσμα η CallerID όπως τον αριθμό τηλεφώνου και το αναγνωριστικό ως Vendor ID, VIDPROMPTLOOKUP θα προσπαθήσει να την αναζήτηση ταυτότητας σε ολόκληρο το σύστημα, VIDPROMPTLOOKUPRL θα επιχειρήσει να αναζήτησης του προμηθευτή, το αναγνωριστικό της ταυτότητας σε ένα μόνο που περιλαμβάνεται στον κατάλογο, VIDPROMPTLOOKUPRC θα προσπαθήσουν να τον πωλητή αναζήτηση ταυτότητας από το αναγνωριστικό σε όλες τις λίστες που ανήκουν στη συγκεκριμένη καμπάνια. Προεπιλογή είναι CID. + +
+
+
+ Στην Ομάδα-Agent Search Μέθοδος - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η μέθοδος αναζήτησης παράγοντας που πρέπει να χρησιμοποιούνται από τα εισερχόμενα ομάδα, LO είναι Load-Balanced-Υπερχείλιση και θα προσπαθήσει να στείλει την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή πριν δοκιμάσετε να το στείλετε σε έναν πράκτορα σε άλλο διακομιστή, LB Load είναι ισορροπημένη και θα προσπαθήσει να στείλει την πρόσκληση για την επόμενη πράκτορα θέμα αυτό δεν είναι για server, SO-Server είναι το μόνο και θα μόνο να προσπαθήσουμε να στείλουμε τις κλήσεις σε παράγοντες σχετικά με το διακομιστή ότι η πρόσκληση ήταν για. Προεπιλεγμένο είναι LB. + +
+
+
+ -Στην ομάδα Κατάλογος ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτός είναι ο Κατάλογος ID που οδηγεί μπορεί να ερευνάται και ότι οδηγεί θα προστεθούν στο αν χρειάζεται. + +
+
+
+ -Στην ομάδα καμπάνιας ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το ID Εκστρατείας που οδηγεί μπορεί να αναζητήσει σε περίπτωση που η πρόσκληση χειριστεί μέθοδος CIDLOOKUPRC. + +
+
+
+ -Στην ομάδα Τηλέφωνο κώδικα - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο κώδικα που χρησιμοποιείται εάν μια νέα πρωτοβουλία δημιουργείται. + + + + +



+ + VICIDIAL_CALL MENU ΠΙΝΑΚΑΣ

+
+
+ Μενού ID - Αυτό είναι το αναγνωριστικό για αυτό το βήμα του μενού κλήση. Αυτό επίσης θα εμφανίζεται ως το πλαίσιο που χρησιμοποιείται στην dialplan για την παρούσα πρόσκληση μενού. + +
+
+
+ Όνομα μενού - Το πεδίο αυτό είναι το περιγραφικό όνομα για το μενού κλήση. + +
+
+
+ Μενού Προτροπή - Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου εντολών για να παίξει στην αρχή αυτού του μενού. Μπορείτε να εισαγάγετε πολλές propmts σε αυτόν τον τομέα και το άλλο από την άμεση τομείς χωρίζοντάς τους με ένα χαρακτήρα σωλήνα. + +
+
+
+ Μενού Timeout - Το πεδίο αυτό είναι όπου μπορείτε να ρυθμίσετε το χρονικό όριο σε δευτερόλεπτα ότι το μενού θα περιμένει για τον καλούντα να εισέλθει σε μια επιλογή DTMF. Ρύθμιση αυτό τον τομέα με μηδέν 0 σημαίνει ότι δεν θα υπάρχει χρόνος αναμονής μετά την προτροπή παίζεται. + +
+
+
+ Μενού Timeout Προτροπή - Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου προτροπή να παίξει όταν το χρονικό όριο έχει επιτευχθεί. Προεπιλογή είναι ΚΑΝΕΝΑ να παίξει δεν ήχου σε timeout. + +
+
+
+ Μενού Άκυρα Προτροπή - Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου προτροπή να παίξει όταν ο καλών έχει επιλέξει μια άκυρη επιλογή. Προεπιλογή είναι ΚΑΝΕΝΑ να παίξει δεν ήχου σε άκυρο. + +
+
+
+ Επαναλάβετε μενού - Αυτό το πεδίο όπου θα καθορίζουν τον αριθμό των φορών που το μενού θα παίξει μετά από την πρώτη στιγμή, αν δεν είναι έγκυρη επιλογή που έγινε από τον καλούντα. Προεπιλογή είναι 1 για να επαναλάβετε το μενού φορά. + +
+
+
+ Μενού Ώρα Check - Το πεδίο αυτό είναι όπου μπορείτε να επιλέξετε αν θα περιορίσει την πρόσκληση Μενού πρόσβαση στις συγκεκριμένες ώρες που έχει συσταθεί στο επιλεγμένο χρόνο εφημερίας. Εάν το χρόνο εφημερίας είναι κενή, αυτή η ρύθμιση θα πρέπει να αγνοηθεί. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες. + +
+
+
+ ID Χρόνου Κλήσης - Αυτή είναι η πρόσκληση Ώρα αναγνωριστικό που θα χρησιμοποιηθούν για να περιορίσεις την καλώντας φορές αν το μενού Ώρα Check επιλογή είναι ενεργοποιημένη. + +
+
+
+ Track καλεί σε πραγματικό χρόνο έκθεση - Το πεδίο αυτό είναι όπου μπορείτε να επιλέξετε αν θέλετε την πρόσκληση να παρακολουθούνται σε πραγματικό χρόνο οθόνη ως μια εισερχόμενη κλήση τύπου IVR. Προεπιλογή είναι 1 για την ενεργό. + +
+
+
+ Tracking Group - Αυτή είναι η ταυτότητα που μπορείτε να χρησιμοποιήσετε για να παρακολουθείτε τις κλήσεις προς την παρούσα πρόσκληση Μενού όταν εξετάζεται η IVR έκθεση. Ο κατάλογος περιλαμβάνει CALLMENU ως προεπιλογή, καθώς και όλων των In-Ομάδες. + +
+
+
+ Επιλογή Value - Αυτό το πεδίο όπου θα καθορίσει την επιλογή μενού, είναι δυνατές επιλογές: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Η ειδική TIMECHECK επιλογή μπορεί να χρησιμοποιηθεί μόνο αν έχετε Μενού Ώρα Check ενεργοποιημένη και υπάρχει μια πρόσκληση που έχει ορισθεί για το μενού. Για να διαγράψετε μια επιλογή, μόνο που η διαδρομή για να αφαιρέσετε και η επιλογή θα διαγραφεί όταν κάνετε κλικ στο κουμπί ΑΠΟΣΤΟΛΗ. + +
+
+
+ Επιλογή Περιγραφή - Το πεδίο αυτό είναι όπου μπορείτε να περιγράψετε την επιλογή, αυτή η περιγραφή θα πρέπει να μπει στο dialplan ως ένα σχόλιο πάνω από την επιλογή. + +
+
+
+ Επιλογή διαδρομής - Αυτό το μενού περιέχει επιλογές για το πού να στείλει την κλήση, εφόσον επιλέγεται αυτή η δυνατότητα: CALLMENU, ingroup, DID, hangup, ΕΠΕΚΤΑΣΗ, ΤΗΛΕΦΩΝΟ. Για CALLMENU, η Route Αξία θα πρέπει να είναι το μενού αναγνωριστικό της πρόσκλησης μενού που θέλετε να αποσταλεί κλήση. Για ingroup, την ομάδα που θέλετε να καλέσετε να αποσταλούν με τις ανάγκες που πρέπει να επιλεγεί, καθώς και τις άλλες 5 επιλογές που πρέπει να τεθούν σε σωστή πορεία μιας κλήσης προς έναν Inbound ομάδα. Για DID, η Route Αξία πρέπει να είναι η DID πρότυπο που θέλετε να στείλετε την πρόσκληση με. Για hangup, η Route αξία μπορεί να είναι το όνομα ενός αρχείου ήχου για να παίξει πριν από την ανάρτηση της πρόσκλησης. Για την επέκταση, την αξία διαδρομής, πρέπει να το dialplan επέκταση που θέλετε να στείλετε την πρόσκληση προς, και η Route Αξία πλαίσιο είναι το πλαίσιο ότι η επέκταση βρίσκεται σε, αν μείνει κενό το πλαίσιο θα προεπιλογή για προεπιλογή. Για PHONE, η Route Αξία πρέπει να είναι η τιμή σύνδεσης του τηλεφώνου για την έναρξη τηλέφωνα που θέλετε να στείλετε την πρόσκληση με. Για ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ, η Route Αξία πρέπει να είναι η τηλεφωνητή αριθμό κουτί, το διαθέσιμο mesage θα παίξει. Για AGI, η Route Αξία πρέπει να είναι το σενάριο AGI και κάθε αξίες που πρέπει να περάσει σε αυτό. + +
+
+
+ Επιλογή Route Αξία - Αυτό το πεδίο όπου θα εισάγετε την τιμή που καθορίζει εάν στην επιλεγμένη επιλογή Route ότι η πρόσκληση είναι να κατευθυνθεί προς. + +
+
+
+ Επιλογή Route Αξία Πλαίσιο - Το πεδίο αυτό είναι προαιρετικό και χρησιμοποιείται μόνο για Διαδρομές δυνατότητα επέκτασης του πεδίου. + +
+
+
+ Custom Dilplan Έναρξη - Αυτό το πεδίο σας επιτρέπει να εισέρχονται σε κάθε dialplan στοιχεία που θέλετε για την πρόσκληση Μενού. @@ -3915,1128 +4637,1416 @@ if ($SSoutbound_autodial_active > 0)



- VICIDIAL ΑΥΤΟΜΑΤΕΣ ΘΈΣΕΙΣ ΠΙΝΑΚΩΝ ALT

-
+ VICIDIAL_REMOTE_AGENTS ΠΙΝΑΚΑΣ

+

- Εάν ο αυτόματος τομέας σχηματισμού ALT-ARJCMOY' τίθεται,κατόπιν οι μόλυβδοι που είναι κάτω από αυτές τις αυτόματεςθέσεις πινάκων ALT θα σχηματίσουν το alt_phone και-ή τουςτομείς address3 τους αφότου τίθενται οποιεσδήποτε από αυτέςτις θέσεις κανένας-απάντησης. - - - - - -



- -VICIDIAL ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ

-
-
-_ εάν ο πράκτορας διακοπή κωδικοποιώ ενεργός τομέας είμαι θέτωνα ενεργός έπειτα ο πράκτορας θα είμαι σε θέση να επι:λέγω απόαυτός διακοπή κώδικας όταν αυτός χτυπώ ο ΔΙΑΚΟΠΉ κουμπί τουςοθόνη. Αυτό το στοιχείο αποθηκεύεται έπειτα στο vicidialκούτσουρο πρακτόρων. Ο κώδικας μικρής διακοπής πρέπει ναπεριέχει μόνο τα γράμματα και τους αριθμούς και να είναιλιγότερο από 7 χαρακτήρες μακροχρόνιοι. Το όνομα κώδικα μικρήςδιακοπής δεν μπορεί να είναι πλέον από 30 χαρακτήρες. - - - - - -



- -VICIDIAL_USER_GROUPS ΠΙΝΑΚΑΣ

-
-
-Ομάδα Χρήστη - Αυτό είναι το σύντομο όνομα της Vicidial ομάδας χρήστη, πρσπαθήστε να μην χρησιμοποιήσετε κενά ή στίξεις για αυτό το πεδίο. Από 2 μέχρι 20 χαρακτήρες. - -
-
-
-Ονομα Ομάδας- Αυτή είναι η περιγραφή της vicidial ομάδας χρήστη μέχρι 40 χαρακτήρες. - -
-
-
-ΔύναμηΏρα ρολόι Είσοδος - Αυτή η επιλογή σας επιτρέπει να μην επιτρέπει να συνδεθείτε με έναν πράκτορα στην VICIDIAL διεπαφή πράκτορα, εάν δεν έχουν συνδεθεί στο timeclock. Προεπιλεγμένο είναι Ν. Υπάρχει η δυνατότητα να εξαιρούν admin χρήστες, 8 και 9 επίπεδα. - -
-
-
-Shift εκτέλεση - Η ρύθμιση αυτή σας επιτρέπει να περιορίσετε πράκτορα συνδέσεις με βάση τις αλλαγές που έχουν επιλεγεί. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Προεπιλεγμένο είναι OFF. - -
-
-
-Ομάδα Βάρδιες - Αυτό είναι ένα επιλέξιμο λίστα των βαρδιών που μπορούν να περιορίσουν το χρόνο παράγοντες σύνδεσης, για το σύστημα. - -
-
-
-Εκστρατείες - αυτό είναι ένας επιλέξιμος κατάλογος εκστρατειώνστον οποίο τα μέλη αυτής της ομάδας χρηστών μπορούν νασυνδεθούν. Η επιλογή όλος-ΕΚΣΤΡΑΤΕΙΩΝ επιτρέπει στους χρήστες σεαυτήν την ομάδα για να δει και να συνδεθεί σε οποιαδήποτεεκστρατεία στο σύστημα. - - 0) - { - ?> -
-
-
- QC Επιτρέπονται Καμπάνιες - Αυτό είναι ένα επιλέξιμο κατάλογο των καμπάνιες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-CAMPAIGNS επιλογή επιτρέπει στους χρήστες αυτής της ομάδας να QC οποιαδήποτε εκστρατεία για το σύστημα. + Αρχή ID Χρήστη - Αυτό είναι η αρχή του ID Χρήστη που χρησιοποιείται όταν οι καταχωρήσεις των απομακρυσμένων χρηστών παρεμβάλλονται στο σύστημα. Εάν ο αριθμός των γραμμών είναι μεγαλύτερος από 1, αυτός ο αριθμός αυξάνει κατά ένα μέχρι κάθε γραμμή να έχει μία καταχώρηση. Επιβεβαιώστε, ότι δημιουργήσατε ένα νέο VICIDIAL λογαριασμό η με επίπεο χρήσης 4 ή μεγαλύτερο, εάν θέλετε να μπορεί να χρησιμοποιήσει την σελίδα vdremote για απομακρυσμένη πρόσβαση του λογαριασμού του.
-
+
- QC Επιτρέπονται Inbound Ομάδες - Αυτό είναι ένα επιλέξιμο λίστα των εισερχόμενων ομάδες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-ΟΜΑΔΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα χρηστών να QC οποιαδήποτε εισερχόμενα ομάδας για το σύστημα. - + Αριθμός Γραμμών - Αυτό ορίζει πόσες καταχωρήσεις απομακρυσμένων χρηστών το σύστημα δημιουρ, και καθορίζει πόσες γραμμές μπορεί με ασφάλεια να στείλει στον αριθμό παρακάτω. + +
+
+
+ IP Διακομιστή - Μία καταχώρηση απομακρυσμένου χρήστη είναι μόνο καλό για ένα συγκεκριμένο διακομιστή, εδώ επιλέγετε τον διακομιστή που ανήκει. + +
+
+
+ Εξωτερική Τηλ.Σύνδεση - Αυτός είναι ο αριθμός που θέλετε οι κλήσεις να προωθούνται. Επιβεβαιώστε ότι είναι ένας πλήρης αριθμός από το σχέδιο κλήεων και εάν θέλετε ένα 9 στην αρχή το βάζετε εδώ. Κάντε μία δοκιμή καλώντας αυτόν τον αριθμό από ένα τηλέφωνο του συστήματος. + +
+
+
+ Κτάσταση - Εδώ μπορείτε να θέσετε τον απομακρυσμένο χρήστη σε ενεργό και μη ενεργό. Μόλις ο χρήστης γίνει ενεργός το σύστημα μπορεί να στείλει κλήσεις σε αυτόν. Μπορεί να διαρκέσει μέχρι 30 δευτερόλεπτα μετά την αλλαγή της κατάστασης σε μη ενεργός, ώστε να σταματήσει να δέχεται κ. + +
+
+
+ Εκστρατεία - Εδώ μπορείτε να επιλέξετε την εκστρατεία όπου οι απομακρυσμένοι χρήστες θα συνδεθούν. Για εισερχόμενες πρέπει να χρησιμοποιηθεί η εκστρατεία CLOSER και επιλέξτε τις εισερχόμενες εκστρατείες παρακάτω, από που θέλετε να λαμβάνεται τις κλήσεις. + +
+
+
+ Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία CLOSER. - - -



- -VICIDIAL_ΒΟΗΘΟΙ ΠΙΝΑΚΑΣ

-
-
-Ταυτότητα Βοηθού - αυτό είναι το σύντομο όνομα ενός Βοπηθού. Πρέπει να είναι ένα μοναδικό προσδιοριστικό. Προσπαθήστε να μην χρησιμοποιήσετε οποιαδήποτε διαστήμα ή στίξη για τους 10 χαρακτήρες αυτού του πεδίου, ελάχιστο 2 χαρακτήρων. - -
-
-Όνομα Βοηθού - αυτός είναι ο τίτλος ενός Βοηθού. Αυτή είναι μια σύντομη περίληψη. 2-50 χαρακτήρες. Δεν πρέπει να υπάρξουν διάστηματα ή στίξεις σε αυτό το πεδίο. - -
-
-Σχόλια Βοηθού - εδώ μπορείτε να τοποθετήσετε τα σχόλια για έναν Βοηθό. 2-255 χαρακτήρες . - -
-
-Κείμενο χειρόγραφου - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: - -
-<iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&phone=--A--phone--B--" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> -</iframe> -
- -
-
-
-Ενεργός - αυτό καθορίζει εάν αυτός ο οδηγός μπορεί να επιλεχτεί για να χρησιμοποιηθεί από μια εκστρατεία. - - - - - - 0) - { - ?>



- VICIDIAL_LEAD_ΦΙΛΤΡΑ ΠΙΝΑΚΑΣ

-
+ VICIDIAL_CAMPAIGN_ΛΙΣΤΕΣ

+

- ID Φίλτρου - Αυτό είναι το σύντομο όνομα ενός Φίλτρου Οδηγού. Πρέπει να είναι ένας μοναδικός κωδικός. Μην χρησιμοποιήσετε κενά ή στίξη για αυτό το πεδίο. Χαρακτήρες 2 με 10. + Οι λίστες της εκστρατείας παρουσιάζονται εδώ, και εάν είναι ενεργές (Υ ή Ν) μπορείτε να πάτε στην οθόνη λίστας με το να πατήσετε στο ID λίστας, στην πρώτη στήλη. + + +



+ + VICIDIAL_CAMPAIGN_STATUSES ΠΙΝΑΚΑΣ

+
+
+ Με την χρήση προσαρμοσμένων καταστάσεων εκστρατείας, μπορείτε να έχετε καταστάσεις μόνο για συγκεκριμένες εκστρατείες. Η κατάσταση πρέπει να είναι 1-8 χαρακτήρες, η περιγραφή 2-30 χαρακτήρες και Επιλέξιμα καθορίζεται αν εμφανίζεται στο VICIDIAL ως τερματισμός. Ο τομέας χρησιμοποιείται κατά τον υπολογισμό του ποσοστούπτώσης, ή εγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θαχρησιμοποιήσει αυτήν την θέση κατά υπολογισμό τωνανθρώπινος-απαντημένων κλήσεων. Η επιλογή κατηγορίας επιτρέπει σε σας για να ομαδοποιήσειδιάφορες θέσεις σε ένα catogy που μπορεί να χρησιμοποιηθεί γιατη στατιστική ανάλυση. + + + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS ΠΙΝΑΚΑΣ

+
+
+ Με την χρήση προσαρμοσμένων κλειδιών εκστρατείας, οι χρήστες που χρησιμοποιούν την εφαρμογή vicidial μπορούν να κλείσουν και να τερματίσουν την κλήση, με ένα μόνο πάτημα πλήκτρου. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. + + + + + +



+ + VICIDIAL_LEAD_RECYCLE ΠΙΝΑΚΑΣ

+
+
+ Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. + + + + + +



+ + VICIDIAL ΑΥΤΟΜΑΤΕΣ ΘΈΣΕΙΣ ΠΙΝΑΚΩΝ ALT

+
+
+ Εάν ο αυτόματος τομέας σχηματισμού ALT-ARJCMOY' τίθεται,κατόπιν οι μόλυβδοι που είναι κάτω από αυτές τις αυτόματεςθέσεις πινάκων ALT θα σχηματίσουν το alt_phone και-ή τουςτομείς address3 τους αφότου τίθενται οποιεσδήποτε από αυτέςτις θέσεις κανένας-απάντησης. + + + + + +



+ + VICIDIAL ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ

+
+
+ _ εάν ο πράκτορας διακοπή κωδικοποιώ ενεργός τομέας είμαι θέτωνα ενεργός έπειτα ο πράκτορας θα είμαι σε θέση να επι:λέγω απόαυτός διακοπή κώδικας όταν αυτός χτυπώ ο ΔΙΑΚΟΠΉ κουμπί τουςοθόνη. Αυτό το στοιχείο αποθηκεύεται έπειτα στο vicidialκούτσουρο πρακτόρων. Ο κώδικας μικρής διακοπής πρέπει ναπεριέχει μόνο τα γράμματα και τους αριθμούς και να είναιλιγότερο από 7 χαρακτήρες μακροχρόνιοι. Το όνομα κώδικα μικρήςδιακοπής δεν μπορεί να είναι πλέον από 30 χαρακτήρες. + + + + + +



+ + VICIDIAL_USER_GROUPS ΠΙΝΑΚΑΣ

+
+
+ Ομάδα Χρήστη - Αυτό είναι το σύντομο όνομα της Vicidial ομάδας χρήστη, πρσπαθήστε να μην χρησιμοποιήσετε κενά ή στίξεις για αυτό το πεδίο. Από 2 μέχρι 20 χαρακτήρες.
-
- Ονομα Φίλτρου - Αυτό είναι ένα πιο περιγραφικό όνομα για το Φίλτρο. Είναι μία σύντομη περιγρφή του φίλτρου. Χαρακτήρες 2 με 30. + +
+ Ονομα Ομάδας- Αυτή είναι η περιγραφή της vicidial ομάδας χρήστη μέχρι 40 χαρακτήρες.
-
- Σχόλια Φίλτρου - Εδώ μπορείτε σχολιάσετε το φίλτρο. Χαρακτήρες 2 με 255. + +
+ ΔύναμηΏρα ρολόι Είσοδος - Αυτή η επιλογή σας επιτρέπει να μην επιτρέπει να συνδεθείτε με έναν πράκτορα στην VICIDIAL διεπαφή πράκτορα, εάν δεν έχουν συνδεθεί στο timeclock. Προεπιλεγμένο είναι Ν. Υπάρχει η δυνατότητα να εξαιρούν admin χρήστες, 8 και 9 επίπεδα.
-
- SQL Φίλτρου - Εδώ μπορείτε να ορίσετε SQL ερώτημα για το φίλτρο. Μην ξεκινήσετε ή τελειώσετε με ένα AND, αυτό θα γίνει αυτόματα από το hopper. Ένα παράδειγμα είναι- called_count > 4 and called_count < 8 -. - + +
+ Shift εκτέλεση - Η ρύθμιση αυτή σας επιτρέπει να περιορίσετε πράκτορα συνδέσεις με βάση τις αλλαγές που έχουν επιλεγεί. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Προεπιλεγμένο είναι OFF. + +
+
+
+ Ομάδα Βάρδιες - Αυτό είναι ένα επιλέξιμο λίστα των βαρδιών που μπορούν να περιορίσουν το χρόνο παράγοντες σύνδεσης, για το σύστημα. + +
+
+
+ Εκστρατείες - αυτό είναι ένας επιλέξιμος κατάλογος εκστρατειώνστον οποίο τα μέλη αυτής της ομάδας χρηστών μπορούν νασυνδεθούν. Η επιλογή όλος-ΕΚΣΤΡΑΤΕΙΩΝ επιτρέπει στους χρήστες σεαυτήν την ομάδα για να δει και να συνδεθεί σε οποιαδήποτεεκστρατεία στο σύστημα. + +
+
+
+ Agent Κατάσταση θέασης Ομάδες - Αυτή είναι μια λίστα επιλογής των χρηστών Ομάδες και τις λειτουργίες του χρήστη με το οποίο τα μέλη της ομάδας αυτής ο χρήστης μπορεί να δείτε την κατάσταση καθώς και κλήσεις προς τη μεταφορά στο εσωτερικό της οθόνης πράκτορα. Η ALL-ΟΜΑΔΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα για να δείτε και τη μεταφορά κλήσεων για κάθε χρήστη του συστήματος. Η ΕΚΣΤΡΑΤΕΙΑ-ΠΡΑΚΤΟΡΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα για να δείτε και να μεταβιβάσει τις κλήσεις σε κάθε χρήστη στην εκστρατεία που είναι συνδεδεμένοι στο. + +
+
+
+ Agent Κατάσταση Προβολή Ώρα - Αυτή η επιλογή καθορίζει αν ο αντιπρόσωπος θα δείτε το ποσό του χρόνου που οι χρήστες στην πλαϊνή μπάρα πράκτορας τους έχουν στην τρέχουσα κατάστασή τους. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες ή δεν. + + 0) + { + ?> +
+
+
+ QC Επιτρέπονται Καμπάνιες - Αυτό είναι ένα επιλέξιμο κατάλογο των καμπάνιες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-CAMPAIGNS επιλογή επιτρέπει στους χρήστες αυτής της ομάδας να QC οποιαδήποτε εκστρατεία για το σύστημα. + +
+
+
+ QC Επιτρέπονται Inbound Ομάδες - Αυτό είναι ένα επιλέξιμο λίστα των εισερχόμενων ομάδες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-ΟΜΑΔΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα χρηστών να QC οποιαδήποτε εισερχόμενα ομάδας για το σύστημα. + -



+



-VICIDIAL_ΧΡΟΝΟΙ ΚΛΗΣΕΩΝ ΠΙΝΑΚΑΣ

-
-
-ID Χρόνου Κλήσης - Αυτό είναι το σύντομο όνομα του Ορισμού Χρόνου Κλήσης. Πρέπει να είναι ένα μοναδικό στοιχείο. Μην χρησιμοποιηθούν διαστήματα ή στίξεις. 2-10 χαρατήρες. + VICIDIAL_ΒΟΗΘΟΙ ΠΙΝΑΚΑΣ

+
+
+ Ταυτότητα Βοηθού - αυτό είναι το σύντομο όνομα ενός Βοπηθού. Πρέπει να είναι ένα μοναδικό προσδιοριστικό. Προσπαθήστε να μην χρησιμοποιήσετε οποιαδήποτε διαστήμα ή στίξη για τους 10 χαρακτήρες αυτού του πεδίου, ελάχιστο 2 χαρακτήρων. -
-
-Ονομα Χρόνου Κλήσης - Αυτό είναι ένα πιο περιγραφικό όνομα του Ορισμού Χρόνου Κλήσης. Είναι μία σύντομη περιγραφή. 2-30 χαρακτήρεςΣχόλια Χρόνου Κλήσης -
This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters. +
+
+ Όνομα Βοηθού - αυτός είναι ο τίτλος ενός Βοηθού. Αυτή είναι μια σύντομη περίληψη. 2-50 χαρακτήρες. Δεν πρέπει να υπάρξουν διάστηματα ή στίξεις σε αυτό το πεδίο. -
-
-Σχόλια Χρόνου Κλήσης - This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters. +
+
+ Σχόλια Βοηθού - εδώ μπορείτε να τοποθετήσετε τα σχόλια για έναν Βοηθό. 2-255 χαρακτήρες . -
-
-Προκαθορισμένοι Χρόνοι Εκκίνησης και Παύσης - Αυτός είναι ο προκαορισμένος χρόνος όπου θα επιτρέπετε οι κλήσεις εάν δεν έχει οριστεί ο χρόνος εκκίνησης της ημέρας-της-εβδομάδας. 0 είναι μεσάνυχτα. Εάν δεν θέλετε καμία κλήση θέστε αυτό το πεδίο σε 2400 και το προκαθορισμένο χρόνο Παύσης σε 2400. Για να επιτρέψετε την 24ωρη κλήση την ημέρα θέστε σε 0 τον χρόνο εκκίνησης και σε 2400 τον χρόνο παύσης +
+
+ Κείμενο χειρόγραφου - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Ενεργός - αυτό καθορίζει εάν αυτός ο οδηγός μπορεί να επιλεχτεί για να χρησιμοποιηθεί από μια εκστρατεία. + + + + + + 0) + { + ?> +



+ + VICIDIAL_LEAD_ΦΙΛΤΡΑ ΠΙΝΑΚΑΣ

+
+
+ ID Φίλτρου - Αυτό είναι το σύντομο όνομα ενός Φίλτρου Οδηγού. Πρέπει να είναι ένας μοναδικός κωδικός. Μην χρησιμοποιήσετε κενά ή στίξη για αυτό το πεδίο. Χαρακτήρες 2 με 10. + +
+
+ Ονομα Φίλτρου - Αυτό είναι ένα πιο περιγραφικό όνομα για το Φίλτρο. Είναι μία σύντομη περιγρφή του φίλτρου. Χαρακτήρες 2 με 30. + +
+
+ Σχόλια Φίλτρου - Εδώ μπορείτε σχολιάσετε το φίλτρο. Χαρακτήρες 2 με 255. + +
+
+ SQL Φίλτρου - Εδώ μπορείτε να ορίσετε SQL ερώτημα για το φίλτρο. Μην ξεκινήσετε ή τελειώσετε με ένα AND, αυτό θα γίνει αυτόματα από το hopper. Ένα παράδειγμα είναι- called_count > 4 and called_count < 8 -. + + + + + +



+ + VICIDIAL_ΧΡΟΝΟΙ ΚΛΗΣΕΩΝ ΠΙΝΑΚΑΣ

+
+
+ ID Χρόνου Κλήσης - Αυτό είναι το σύντομο όνομα του Ορισμού Χρόνου Κλήσης. Πρέπει να είναι ένα μοναδικό στοιχείο. Μην χρησιμοποιηθούν διαστήματα ή στίξεις. 2-10 χαρατήρες. + +
+
+ Ονομα Χρόνου Κλήσης - Αυτό είναι ένα πιο περιγραφικό όνομα του Ορισμού Χρόνου Κλήσης. Είναι μία σύντομη περιγραφή. 2-30 χαρακτήρεςΣχόλια Χρόνου Κλήσης - This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters. + +
+
+ Σχόλια Χρόνου Κλήσης - This is where you can place comments for a Vicidial Call Time Definition such as -10am to 4pm with extra call state restrictions-. max 255 characters. + +
+
+ Προκαθορισμένοι Χρόνοι Εκκίνησης και Παύσης - Αυτός είναι ο προκαορισμένος χρόνος όπου θα επιτρέπετε οι κλήσεις εάν δεν έχει οριστεί ο χρόνος εκκίνησης της ημέρας-της-εβδομάδας. 0 είναι μεσάνυχτα. Εάν δεν θέλετε καμία κλήση θέστε αυτό το πεδίο σε 2400 και το προκαθορισμένο χρόνο Παύσης σε 2400. Για να επιτρέψετε την 24ωρη κλήση την ημέρα θέστε σε 0 τον χρόνο εκκίνησης και σε 2400 τον χρόνο παύσης . -
-
-Εβδομαδιαίοι Χρόνοι Εκκίνησης και Παύσης - Αυτοί είναι προσαρμόσιμοι χρόνοι ανά ημέρα για τον ορισμό χρόνων κλήσεων. +
+
+ Εβδομαδιαίοι Χρόνοι Εκκίνησης και Παύσης - Αυτοί είναι προσαρμόσιμοι χρόνοι ανά ημέρα για τον ορισμό χρόνων κλήσεων. -
-
-Ορισμοί Χρόνων Κλήσεων Καταστάσεων - Είναι η λίστα συγκεκριμένων Ορισμών Χρόνων Κλήσεων Καταστάσεων. +
+
+ Ορισμοί Χρόνων Κλήσεων Καταστάσεων - Είναι η λίστα συγκεκριμένων Ορισμών Χρόνων Κλήσεων Καταστάσεων. -
-
-Κατάσταση Χρόνου Κλήσης Κατάστασης - Αυτό είναι ο δύο γραμμάτων κωδικός για την κατάσταση όπου ο ορισμός χρόνου κλήης είναι για. Θα πρέπει και οι Οδηγοί της εκστρατείας να έχουν δύο γράμματα κωδικούς κατάστασης για τον χρόνο κλήσης κατάστασης. +
+
+ Κατάσταση Χρόνου Κλήσης Κατάστασης - Αυτό είναι ο δύο γραμμάτων κωδικός για την κατάσταση όπου ο ορισμός χρόνου κλήης είναι για. Θα πρέπει και οι Οδηγοί της εκστρατείας να έχουν δύο γράμματα κωδικούς κατάστασης για τον χρόνο κλήσης κατάστασης. -



+



-VICIDIAL_SHIFTS ΠΙΝΑΚΑΣ

-
-
-ID Shift - Αυτή είναι η σύντομη ονομασία της Vicidial Shift Ορισμός. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε τυχόν διαστήματα ή σημεία στίξης για αυτόν τον τομέα. max 20 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + VICIDIAL_SHIFTS ΠΙΝΑΚΑΣ

+
+
+ ID Shift - Αυτή είναι η σύντομη ονομασία της Vicidial Shift Ορισμός. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε τυχόν διαστήματα ή σημεία στίξης για αυτόν τον τομέα. max 20 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. -
-
-Shift Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα του Shift Ορισμός. Αυτή είναι μια σύντομη περίληψη του Shift ορισμό. το πολύ 50 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. +
+
+ Shift Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα του Shift Ορισμός. Αυτή είναι μια σύντομη περίληψη του Shift ορισμό. το πολύ 50 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. -
-
-Start Time Shift - Αυτή είναι η στιγμή που αρχίζει η εκστρατεία στροφή. Πρέπει να είναι μόνο αριθμοί, 9.30 π.μ. και 0930 θα είναι 5:00 μμ θα είναι 1.700. +
+
+ Start Time Shift - Αυτή είναι η στιγμή που αρχίζει η εκστρατεία στροφή. Πρέπει να είναι μόνο αριθμοί, 9.30 π.μ. και 0930 θα είναι 5:00 μμ θα είναι 1.700. -
-
-Shift Μήκος - Αυτό είναι το χρόνο σε ώρες και τα λεπτά που διαρκεί η εκστρατεία στροφή. 8 ώρα θα είναι 08:00 και 7 ώρες και 30 λεπτά θα είναι 07:30. +
+
+ Shift Μήκος - Αυτό είναι το χρόνο σε ώρες και τα λεπτά που διαρκεί η εκστρατεία στροφή. 8 ώρα θα είναι 08:00 και 7 ώρες και 30 λεπτά θα είναι 07:30. -
-
-Shift Καθημερινά - Στην ενότητα αυτή θα πρέπει να επιλέξετε τις μέρες την εβδομάδα ότι αυτή η στροφή είναι ενεργή. +
+
+ Shift Καθημερινά - Στην ενότητα αυτή θα πρέπει να επιλέξετε τις μέρες την εβδομάδα ότι αυτή η στροφή είναι ενεργή. - 0) - { + + +



+
+ Audio Store - Αυτό το βοηθητικό πρόγραμμα σας επιτρέπει να ανεβάσετε αρχεία ήχου με τον web server έτσι ώστε να μπορούν να διανέμονται σε όλες τις ViciDial διακομιστές σε ένα πολυ-cluster server. Μια σημαντική σημείωση, μόνο δύο τύπους αρχείων ήχου θα λειτουργήσει,. Wav τα αρχεία που είναι PCM 16bit και 8k. Αρχείων GSM που είναι 8bit 8k. Παρακαλώ βεβαιωθείτε ότι τα αρχεία σας μορφοποιηθεί σωστά πριν από την αποστολή τους εδώ. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD ΠΙΝΑΚΑΣ

+
+
+ Music On Hold ID - Αυτή είναι η σύντομη ονομασία Music On Hold εισόδου. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε κενά ή σημεία στίξης για αυτό τον τομέα. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Music Hold On Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα του Music Hold On εισόδου. Αυτή είναι μια σύντομη περίληψη του Music On Hold πλαίσιο και θα δείχνει ένα σχόλιο στην MusicOnHold-vicidial.conf αρχείο. μεγ. 255 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Ενεργό - Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε το Music On Hold είσοδο στην ενεργό ή ανενεργό. Ανενεργό θα αφαιρέσει την είσοδο από το conf αρχεία. + +
+
+ Τυχαία σειρά - Αυτή η επιλογή σας επιτρέπει να ορίσετε την αναπαραγωγή των αρχείων ήχου σε τυχαία σειρά. Αν οριστεί σε Ν τότε ορίζεται η διάταξη θα πρέπει να χρησιμοποιείται. + +
+
+ Filename - Για να προσθέσετε ένα νέο αρχείο ήχου σε ένα Music On Hold καταχώρηση στο αρχείο πρέπει πρώτα να είναι στο κατάστημα ήχου, τότε μπορείτε να επιλέξετε το αρχείο και πατήστε Υποβολή για να το προσθέσετε στη λίστα αρχείο. Μουσική σε αναμονή ενημερώνεται μία φορά ανά λεπτό, εάν έχουν επέλθει αλλαγές. Τα αρχεία που δεν περιλαμβάνονται σε μουσική για την είσοδο κρίνει ότι η παρουσία τους στη μουσική για το φάκελο κατέχουν θα διαγραφούν. + + + + +



+ + VICIDIAL_TTS_PROMPTS ΠΙΝΑΚΑΣ

+
+
+ TTS ID - Αυτή είναι η σύντομη ονομασία μιας εισόδου TTS. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε κενά ή σημεία στίξης για αυτό τον τομέα. πολύ 50 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ TTS Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα της εισόδου TTS. Αυτή είναι μια σύντομη περίληψη του ορισμού TTS. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Ενεργό - Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε την είσοδο TTS με ενεργές ή αδρανείς. + +
+
+ TTS Κείμενο - Αυτό είναι το πραγματικό πεδίο Κείμενο Ομιλία δεδομένα τα οποία αποστέλλονται σε Cepstral για τη δημιουργία του αρχείου ήχου που μπορεί να διαδραματίσει στον πελάτη. μπορείτε να χρησιμοποιήσετε Σύνθεση Ομιλίας Markup Language-SSML-στον τομέα αυτό, για παράδειγμα,, <break time='1000ms'/> για δεύτερη 1 διάλειμμα. Μπορείτε επίσης να χρησιμοποιήσετε διάφορες μεταβλητές, όπως όνομα, επώνυμο και τίτλο που ViciDial μεταβλητές όπως κάνετε σε ένα Σενάριο: - Α - first_name - Β -. Εδώ είναι μια λίστα με τις διαθέσιμες μεταβλητές:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL ΠΙΝΑΚΑΣ

+
+
+ ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID - Αυτό είναι το αναγνωριστικό αριθμό όλων των αυτήν την ταχυδρομική θυρίδα. Αυτό δεν πρέπει να είναι ένα αντίγραφο μιας υπάρχουσας τηλεφωνητή ταυτότητας ή το φωνητικό ταχυδρομείο αναγνωριστικό του τηλεφώνου για το σύστημα, τουλάχιστον 2 χαρακτήρες. + +
+
+ Name - Αυτό είναι το όνομα που συνδέονται με αυτό το κουτί τηλεφωνητή. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Password - Αυτός είναι ο κωδικός που χρησιμοποιείται για να αποκτήσουν πρόσβαση στο τηλεφωνητή κουτί όταν κλήση, για να ελέγξετε μηνύματα έως 10 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Ενεργό - Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε το τηλεφωνητή κουτί στην ενεργό ή ανενεργό. Εάν το πλαίσιο είναι ανενεργό δεν μπορείτε να αφήσετε μηνύματα για αυτό και δεν μπορείτε να ελέγξετε μηνύματα σε αυτό. + +
+
+ Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα που αποστέλλονται σε ένα λογαριασμό ηλεκτρονικού ταχυδρομείου, αν το σύστημά σας έχει ρυθμιστεί ώστε να στείλει email. Αν αυτό το πεδίο είναι κενό τότε δεν θα είναι τα μηνύματα που αποστέλλονται. + +
+
+ Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email - Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα διαγράφονται από το σύστημα αφού έχουν ήδη αποσταλεί έξω. Προεπιλογή είναι N. + + + + + 0) + { + ?> + +



+ + ΛΕΙΤΟΥΡΓΙΑ ΕΙΣΑΓΩΓΗΣ ΛΙΣΤΑΣ

+
+
+ Ο βασικός βασισμένος στο WEB φορτωτής μολύβδου VICIDIALσχεδιάζεται απλά για να πάρει ένα αρχείο μολύβδου - μέχρι8MB στο μέγεθος - που είναι είτε ετικέττα είτε σωλήνας πουοριοθετείται και τον φορτώνει στον πίνακα vicidial_list. Οφορτωτής μολύβδου επιτρέπει τον τομέα επιλέγοντας και TXT -σαφές κείμενο, CSV - κόμμα χώρισε τις τιμές και XLS -σχήματα αρχείων Excel. Ο φορτωτής μολύβδου δεν κάνει τηνεπικύρωση στοιχείων, αλλά επιτρέπει σε σας για να ελέγξει για τααντίγραφα σε το, μέσα στην εκστρατεία ή μέσα το σε ολόκληροσύστημα. Επίσης, σιγουρευτείτε ότι έχετε δημιουργήσει τονκατάλογο ότι αυτοί οι μόλυβδοι πρόκειται να κάτω έτσι ώστεμπορείτε να τους χρησιμοποιήσετε. Εδώ είναι ένας κατάλογος τωντομέων στην κατάλληλη διαταγή τους για τα αρχεία μολύβδου: +
    +
  1. Κωδικός Οδηγού Προμηθευτού +
  2. Πηγαίος Κώδικας - εσωτερική χρήση μόνο από διαχειριστές και DBAs +
  3. ID λίστας - ο αριθμός λίστας που οι οδηγοί θα παρουσιαστούν κάτω από +
  4. Κωδικός τηλεφώνου - το πρόθεμα του τηλεφωνικού αριθμού (1 για ΗΠΑ, 01144 για Βρετανία κλπ) +
  5. Ο αριθμός τηλεφώνου - πρέπει να είναι τουλάχιστον 8 ψηφία +
  6. Τίτλος - ο τίτλος του πελάτη (κος. κα. κλπ) +
  7. Ονομα +
  8. Μεσαίο Αρχικό +
  9. Επίθετο +
  10. 1 Γραμμή Διεύθυνσης +
  11. 2 Γραμμή Διεύθυνσης +
  12. 3 Γραμμή Διεύθυνσης +
  13. Πόλη +
  14. Κράτος - περιορισμός σε 2 χαρακτήρες +
  15. Επαρχία +
  16. Ταχ.Κωδ. +
  17. Χώρα +
  18. Φύλο +
  19. Ημερ. Γέννησης +
  20. Εναλ. Αριθμός Τηλ. +
  21. Διεύθυνση Ηλεκτρ.Ταχυδρομείου +
  22. Φράση Ασφαλείας +
  23. Σχόλια +
+ +
ΣΗΜΕΙΩΣΕΙΣ: Η λειτουργία φορτωτών μολύβδου Excel επιτρέπεταιαπό μια σειρά χειρογράφων perl και πρέπει να έχει κατάλληλαδιαμορφωμένη/ένα αρχείο κ.λπ.../astguiclient.conf σε ισχύ στονκεντρικό υπολογιστή δικτύου. Επίσης, οι ενότητες ζευγών perlπρέπει να φορτωθούν για το για να εργαστούν επίσης - ολε-Storage_Lite και υπολογισμός με λογιστικό φύλλο(spreadsheet)- ParseExcel. Μπορείτε να ελέγξετε για τα λάθηχρόνου εκτέλεσης σε αυτοί με την εξέταση το αρχείο apache σαςerror_log. Επίσης, για τους ελέγχους διπλασιασμού ενάντια στουςκαταλόγους gampaign, ο κατάλογος που έχει τα νέα προβαδίσματαπου πηγαίνουν σε το πρέπει να δημιουργηθεί στο σύστημα προτού νααρχίσετε να φορτώνετε τους μολύβδους. + + + + +



+ -



- ΛΕΙΤΟΥΡΓΙΑ ΕΙΣΑΓΩΓΗΣ ΛΙΣΤΑΣ

-
+ + + + ΠΙΝΑΚΑΣ ΤΗΛΕΦΩΝΩΝ

+

- Ο βασικός βασισμένος στο WEB φορτωτής μολύβδου VICIDIALσχεδιάζεται απλά για να πάρει ένα αρχείο μολύβδου - μέχρι8MB στο μέγεθος - που είναι είτε ετικέττα είτε σωλήνας πουοριοθετείται και τον φορτώνει στον πίνακα vicidial_list. Οφορτωτής μολύβδου επιτρέπει τον τομέα επιλέγοντας και TXT -σαφές κείμενο, CSV - κόμμα χώρισε τις τιμές και XLS -σχήματα αρχείων Excel. Ο φορτωτής μολύβδου δεν κάνει τηνεπικύρωση στοιχείων, αλλά επιτρέπει σε σας για να ελέγξει για τααντίγραφα σε το, μέσα στην εκστρατεία ή μέσα το σε ολόκληροσύστημα. Επίσης, σιγουρευτείτε ότι έχετε δημιουργήσει τονκατάλογο ότι αυτοί οι μόλυβδοι πρόκειται να κάτω έτσι ώστεμπορείτε να τους χρησιμοποιήσετε. Εδώ είναι ένας κατάλογος τωντομέων στην κατάλληλη διαταγή τους για τα αρχεία μολύβδου: -
    -
  1. Κωδικός Οδηγού Προμηθευτού -
  2. Πηγαίος Κώδικας - εσωτερική χρήση μόνο από διαχειριστές και DBAs -
  3. ID λίστας - ο αριθμός λίστας που οι οδηγοί θα παρουσιαστούν κάτω από -
  4. Κωδικός τηλεφώνου - το πρόθεμα του τηλεφωνικού αριθμού (1 για ΗΠΑ, 01144 για Βρετανία κλπ) -
  5. Ο αριθμός τηλεφώνου - πρέπει να είναι τουλάχιστον 8 ψηφία -
  6. Τίτλος - ο τίτλος του πελάτη (κος. κα. κλπ) -
  7. Ονομα -
  8. Μεσαίο Αρχικό -
  9. Επίθετο -
  10. 1 Γραμμή Διεύθυνσης -
  11. 2 Γραμμή Διεύθυνσης -
  12. 3 Γραμμή Διεύθυνσης -
  13. Πόλη -
  14. Κράτος - περιορισμός σε 2 χαρακτήρες -
  15. Επαρχία -
  16. Ταχ.Κωδ. -
  17. Χώρα -
  18. Φύλο -
  19. Ημερ. Γέννησης -
  20. Εναλ. Αριθμός Τηλ. -
  21. Διεύθυνση Ηλεκτρ.Ταχυδρομείου -
  22. Φράση Ασφαλείας -
  23. Σχόλια -
+ Εωτ.Σύνδεση Τηλεφώνου - Αυτό το πεδίο είναι για την καταχώρηση του ονόματος του τηλεφώνου, όπως αυτό εμφανίζεται στο Asterisk, χωρίς να συμπεριλαμβάνει το πρωτόκολλο ή slash στην αρχή. Για παράδειγμα: για SIP τηλέφωνο SIPVtest101 η Εσω.Γραμμή Τηλεφώνου θα είναι test101. Επίσης, για IAX2 τηλέφωνα χρησιμοποιείστε τα πλήρης ονόματα: IAX2/IAXphone1@IAXphone1 θα είναι IAXphone1@IAXphone1. Για Zap τηλέφωνα καταχωρήστε το πλήρες κανάλι: Zap/25-1 θα είναι 25-1. Αλλη σημείωση, ορίστε το πρωτόκολλο παρακάτω σωστά για τον τύπο του τηλεφώνου. -
ΣΗΜΕΙΩΣΕΙΣ: Η λειτουργία φορτωτών μολύβδου Excel επιτρέπεταιαπό μια σειρά χειρογράφων perl και πρέπει να έχει κατάλληλαδιαμορφωμένη/ένα αρχείο κ.λπ.../astguiclient.conf σε ισχύ στονκεντρικό υπολογιστή δικτύου. Επίσης, οι ενότητες ζευγών perlπρέπει να φορτωθούν για το για να εργαστούν επίσης - ολε-Storage_Lite και υπολογισμός με λογιστικό φύλλο(spreadsheet)- ParseExcel. Μπορείτε να ελέγξετε για τα λάθηχρόνου εκτέλεσης σε αυτοί με την εξέταση το αρχείο apache σαςerror_log. Επίσης, για τους ελέγχους διπλασιασμού ενάντια στουςκαταλόγους gampaign, ο κατάλογος που έχει τα νέα προβαδίσματαπου πηγαίνουν σε το πρέπει να δημιουργηθεί στο σύστημα προτού νααρχίσετε να φορτώνετε τους μολύβδους. +
+
+
+ Αριθμός Σχεδίου Κλήσεων - Αυτό το πεδίο είναι για τον αριθμό που καλείται για να κουδουνίζει το τηλέφωνο. Αυτός ο αριθμός ορίζεται στο αρχείο extensions.conf του διακομιστή Asterisk + +
+
+
+ Περιεχόμενο Φωνητικού Ταχυδρομείου - Αυτό το πεδίο είναι για το περιεχόμενο του φωνητικού ταχυδρομείου, όπου πηγαίνουν τα μηνύματα του τηλεφώνου του χρήστη. Το χρησιμοποιούμαι για να ελέγξουμε τα φωνητικά μηνύματα και για να μπορεί ο χρήστης να χρησιμοποιήσει το πλήκτρο VOICEMAIL. + +
+
+
+ CallerID Εξερχομένων - Αυτό το πεδίο είναι για την καταχώριση του αριθμού callerID που θα θέλατε να εμφανίζεται στις εξερχόμενες κλήσεις. + +
+
+
+ Δνση IP Τηλεφώνου - Αυτό το πεδίο είναι για την δνση IP του τηλέφωνου εάν είναι ένα VOIP τηλέφωνο. Αυτό είναι ένα προαιρετικό πεδίο + +
+
+
+ Δνση IP Υπολογιστού - Αυτό το πεδίο είναι για την δνση IP του υπολογιστή του χρήστη. Αυτό είναι ένα προαιρετικό πεδίο + +
+
+
+ IP Διακομιστή - Αυτός ο κατάλογος επιλογών είναι που επιλέγετε σε ποιον διακομιστή το τηλέφωνο είναι ενεργό. + +
+
+
+ Σύνδεση - η σύνδεση που χρησιμοποιείται για τον τηλεφωνικό χρήστηστη σύνδεση στις εφαρμογές πελατών. + +
+
+
+ Κωδικός πρόσβασης - ο κωδικός πρόσβασης που χρησιμοποιείται γιατον τηλεφωνικό χρήστη στη σύνδεση στις εφαρμογές πελατών. ΣΗΜΑΝΤΙΚΟ, αυτό είναι το κωδικό πρόσβασης μόνο για το web interface πράκτορα σύνδεση τηλεφώνου, για να αλλάξετε τον κωδικό πρόσβασης sip.conf ή iax.conf, ή μυστική, για την εν λόγω τηλεφωνική συσκευή θα πρέπει να τροποποιήσετε το αρχείο Conf μυστικό χώρο πιο κάτω σε αυτή τη σελίδα. + +
+
+
+ Κατάσταση - Η κατάσταση του τηλεφώνου στο σύστημα, ΕΝΕΡΓΗ και ΔΙΑΧ επιτρέπουν στους GUI πελάτες να δουλέψουν. Η ΔΙΑΧ επιτρέπει την πρόσβαση στην ιστοσελίδα διαχείρισης. + +
+
+
+ Ενεργός Λογαριασμός - Κατά πόσο το τηλέφωνο είναι ενεργό για να τοποθετηθεί στην λίστα στο GUI. + +
+
+
+ Τύπος Τηλεφώνου - Απλά για σημειώσεις διαχείρισης. + +
+
+
+ Πλήρες Ονομα - Χρησιμοποιείται από τον χρήστη GUI στην λίστα ενεργών τηλεφώνων. + +
+
+
+ Εταιρία - Απλά για σημειώσεις διαχείρισης. + +
+
+
+ Τηλέφωνα Email - Η διεύθυνση ηλεκτρονικού ταχυδρομείου που σχετίζονται με αυτό το τηλέφωνο εισόδου. Αυτό χρησιμοποιείται για τηλεφωνητή ρυθμίσεις. + +
+
+ Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email - Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα διαγράφονται από το σύστημα αφού έχουν ήδη αποσταλεί έξω. Προεπιλογή είναι N. + +
+
+
+ Εικόνα - Δεν έχει υλοποιηθεί ακόμα. + +
+
+
+ Νέα Μηνύματα - Αριθμός νέων φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk. + +
+
+
+ Παλαιά Μηνύματα - Αριθμός παλαιών φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk. + +
+
+
+ Πρωτόκολλο Πελάτη - Το πρωτόκολλο που χρησιμοποιεί το τηλέφωνο για συνδεθεί στον διακομιστή Asterisk: SIP, IAX2, Zap. + +
+
+
+ οπική GMT - Η διαφορά από την GMT όπου το τηλέφωνο βρίσκεται. Μην το ρυθμίσετε για DAYLIGHT SAVINGS ΩΡΑ. Αυτή χρησιμοποιείται από την VICIDIAL εκστρατεία για την επακριβή εμφάνιση της ώρας. + +
+
+
+ Τηλέφωνο Ring Timeout - Αυτό είναι το χρονικό διάστημα, σε δευτερόλεπτα, ότι το τηλέφωνο θα χτυπήσει στο dialplan πριν από την αποστολή της πρόσκλησης στον τηλεφωνητή. Προεπιλογή είναι 60 δευτερόλεπτα. + +
+
+
+ Σύνδεση Διαχειριστή - Αυτή είναι η σύνδεση που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται. + +
+
+
+ Μυστικό Διαχειριστή - Αυτός είναι ο κωδικός που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται. + +
+
+
+ Προκαθορισμένος VICIDIAL Χρήστης - Εδώ ορίζεται μία προκαθορισμένη τιμή χρήστη, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα χρήστη. + +
+
+
+ Προκαθορισμένος VICIDIAL Κωδικός - Εδώ ορίζεται μία προκαθορισμένη τιμή κωδικού, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα κωδικό. + +
+
+
+ VICIDIAL Προκαθορισμένη Εκστρατεία - Εδώ ορίζεται μα προκαθορισμένη τιμή εκστρατείας, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για καμία εκστρατεία. + +
+
+
+ Εσ.Σύνδ. Στάθμευσης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Στάθμευσης για τις εφαρμογές του χρήστη. + +
+
+
+ Εσ.Σύνδ. Συνδιάλεξης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Συνδιάλεξης για τις εφαρμογές του χρήστη. + +
+
+
+ Εσωτ.Σύνδεση Στάθμευσης VICIDIAL - Η προκαθορισμένη εσωτ.σύνδεση στάθμευσης. Εξακριβώστε ότι κάποια διαφορετική δουλεύει πριν την αλλάξετε. + +
+
+
+ Αρχείο Στάθμευσης VICIDIAL - Το προκαθορισμένο αρχείο στάθμευσης. Μέχρι 10 χαρακτήρες. + +
+
+
+ Πρόθεμα παρακολούθησης - Αυτό είναι το πρόθεμα παρακολούθησης των καναλιών ZAP. + +
+
+
+ Εσωτ.Σύνδεση Ηχογράφησης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων για την εσωτ.σύνδεση ηχογράφησης που χρησιμοποιείται για μεταφορά στις συνδιαλέξεις, ώστε να ηχογραφηθούν.Extensions.conf . + +
+
+
+ Βασική Εσωτ.Σύνδεση VMAIL - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων που ελέγχει την θυρίδα ηχητικών μηνυμάτων. + +
+
+
+ Εσωτ.Σύνδεση απόρριψης VMAIL - Αυτο είναι το πρόθεμα του πλάνου κλήσεων που χρησιμοποιείται στο να στέλνει κλήσεις κατευθείαν στη θυρίδα του χρήστη από μία κλήση. + +
+
+
+ Περιεχόμενο Τηλ.σύνδ - Αυτό είναι το πλαίσιο σχέδιο dial ότι οι αιτήσεις πληρωμής, όπως ViciDial, κατά κύριο λόγο χρήσης. Είναι δεδομένο ότι σε όλους τους αριθμούς κλήσης από το apps πελάτη χρησιμοποιούν αυτό το πλαίσιο γι -αυτό είναι καλή ιδέα να βεβαιωθείτε ότι αυτό είναι το πιο ευρύ πλαίσιο δυνατό. επαληθεύει με extensions.conf αρχείο πριν από την αλλαγή. προεπιλογή είναι προεπιλογή. + +
+
+
+ Τηλέφωνο Πλαίσιο - Αυτό είναι το πλαίσιο σχέδιο dial ότι αυτό το τηλέφωνο θα χρησιμοποιήσει η κλήση. Εάν εκτελείτε ένα τηλεφωνικό κέντρο και δεν θέλετε να σας παράγοντες είναι σε θέση να καλέσετε από έξω από την ViciDial αίτηση για παράδειγμα, τότε θα δημιουργούσε αυτόν τον τομέα σε ένα πλαίσιο dialplan που δεν υπάρχει, κάτι σαν πράκτορας-nodial. προεπιλογή είναι προεπιλογή. + +
+
+
+ Conf Φάκελος Secret - Αυτό είναι το μυστικό, ή τον κωδικό πρόσβασης, για το τηλέφωνο στο IAX ή auto γουλιά-generated conf αρχείο για αυτό το τηλέφωνο. Όριο είναι 20 χαρακτήρες αλφαριθμητικό παύλα και υπογράμμισης δεκτή. Προεπιλογή είναι δοκιμή. + +
+
+
+ Κανάλι αποστολής DTMF - Αυτό είναι το κανάλι του χρησιμοποιείται για την αποστολή DTMF ήχων στις συνδιαλέξεις. + +
+
+
+ Εξερχόμεη ομάδα κλήσης - αυτή είναι η ομάδα καναλιού όπου οι εξερχόμενες κλήσεις από αυτό το τηλέφωνο τοποθετούνται. Υπάρχουν ρουτίνες που την χρησιμοποιούν. Για τα κανάλια Zap θέλετε να χρησιμοποιήσετε κάτι σαν Zap/g2, για IAX2 trunks θα θέλετε να χρησιμοποιήσετε το πλήρες πρόθεμα IAX όπως IAX2/VICItest1:secret@10.10.10.15:4569. Ελέγξτε τα trunks με το αρχείο extensions.conf. + +
+
+
+ Περιοχή Ιστο-Πλοηγού - Αυτό χρειάζεται μόνο σε Linux συστήματα. + +
+
+
+ Κατάλογος Εγκατάστασης - . + +
+
+
+ CallerID URL - Αυτή είναι η Δνση της ιστοσελίδας που χρησιμοποιείται για αναζήτηση με callerID + +
+
+
+ Προκαθορισμένο VICIDIAL URL - Αυτή είναι η δνση ιστοσελίδας που χρησιμοποιείται για προσαρμοσμένα VICIDIAL ερωτήματα ιστοσελίδας + +
+
+
+ Καταγραφή Γεγονότων Κλήσης - Αυτό τοποθετείται σε αληθές εάν το αρχείο call_log.agi βρίσκεται στο αρχείο extensions.conf για τις εξερχόμενες κλήσεις και για τις εσωτ.συνδέσεις 'h' που κλείνουν. Αυτό πρέπει πάντα να είναι 1 για να δουλεύουν σωστά πολλά χαρακτηριστικά των εφαρμογών. + +
+
+
+ Μεταγωγή Χρήστη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να μεταβούν σε άλλον λογαριασμό χρήστη + +
+
+
+ Σε συνδιάλεξη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να ξεκινούν συνδιαλέξεις μέχρι 6 εξωτερικές γραμμές. + +
+
+
+ Διαχειριστού Κλείσιμο- Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να κλείνουν κάθε γραμμή. + +
+
+
+ Διαχειριστού Κλέψιμο - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή. + +
+
+
+ Διαχειριστού Παρακολούθηση - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδποτε γραμμή. + +
+
+
+ Στάθμευση Κλήσης - Εάν το θέσετε σε αληθές θα επιτρέπετε σε χρήστες να σταθμεύουν κλήσεις και κλήσεις σε αναμονή να διαχειρίζονται από οποιοδήποτε άλλο ρήστη. Οι κλήσεις μένουν σε αναμονή για 30 δευτερόλεπτα και μετά κλείνουν. Συνήθως ενεργοποιημένη για όλους. + +
+
+
+ Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές θα εμφανίζεται ένα παράθυρο ειδοποίησης, ότι η ώρα ενημέρωσης δεν έχει αλλάξει σε 20 δευτερόλεπτα. + +
+
+
+ AF Καταγραφή Γεγονότος - Εάν το θέσετε σε αληθές θα καταγράφονται οι ενέργειες χρήσης του astGUIclient σε ένα αρχείο στον υπολογιστή του χρήστη. + +
+
+
+ Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές οι εφαρμογές θα χρησιμοποιούν το ACQS. + +
+
+
+ Υπερεμφανιζόμενο παραθύρο CallerID - Εάν το θέσετε σε αληθές θα επιτρέψετε σε αριθμούς ορισμένους στο αρχείο extensions.conf, να στέλνουν οθόνες με CallerID στους astGUIclient χρήστες. + +
+
+
+ VMail Πλήκτρο - Εάν το θέσετε σε αληθές θα εμφανιστεί το πλήκτρο VOICEMAIL και τα μηνύματα μπορούν να εμφανίζονται στο astGUIclient. + +
+
+
+ Ταχύτητα Ανανέωσης - Εάν το θέσετε σε αληθές ενεργοποιείται ένα νέο ρυθμό ανανέωσης πληροφοριών κλήσης για το astGUIclient. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευτερόλεπτο). + +
+
+
+ Ρυθμός Ανανέωσης Ταχύτητας - σε χιλιοστά δευτερολέπτου. Χρημοποιείται μόνο εάν η Ταχύτητα Ανανέωσης είναι ενεργοποιημένη. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευερόλεπτο). + +
+
+
+ Συνεχής MySQL - Εάν είναι ενεργοποιημένο, το astGUIclient θα παραμένει συνδεμένο αντί να συνδέεται κάθε δευτερόλεπτο. + +
+
+
+ Αυτόματη Κλήση Επόμενου Αριθμού - Εάν είναι ενεργοποιημένο, μετά από τον τερματισμό θα γίνει κλήση του επόμενου αριθμού, εκτός εάν επιλέξουμε "Μη κάνεις κλήσεις". + +
+
+
+ Σταμάτα την ηχογράφηση μετά από κάθε κλήση - Εάν είναι ενεργοποιημένο η ηχογράφηση θα σταματήσει μετά τον τερματισμό. + +
+
+
+ Επιτρέψτε τα μηνύματα SIPSAK - εάν επιτρέπεται ο κεντρικόςυπολογιστής θα στείλει τα μηνύματα στο τηλέφωνο ΓΟΥΛΙΏΝ στηνεπίδειξη στην τηλεφωνική LCD επίδειξη όταν συνδέεται μεVICIDIAL. Το χαρακτηριστικό γνώρισμα λειτουργεί μόνο με τατηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak την εφαρμογή για ναεγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Η προεπιλογήείναι 0. + +
+
+
+ DBΧ Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί. + +
+
+
+ DBΧ Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk. + +
+
+
+ DBΧ Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron. + +
+
+
+ DBΧ Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234. + +
+
+
+ DBΧ Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306. + +
+
+
+ DBY Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ Γνωστός ID - Η ID του ψευδώνυμο που χρησιμοποιείται για να επιτρέψει συνδέσεις τηλεφώνου φορτίο ισορροπημένη. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. + +
+
+
+ Ψευδώνυμο - Το όνομα που χρησιμοποιείται για την περιγραφή ενός τηλέφωνα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες. + +
+
+
+ Τηλέφωνα logins List - Η comma separated κατάλογο τηλέφωνο συνδέσεις χρησιμοποιούνται όταν ένας πράκτορας συνδέεται στο τηλέφωνο χρησιμοποιώντας φορτίο ισορροπημένη συνδέσεις. Το γραφείο θα βρει εφαρμογή η ενεργός διακομιστής με τις λιγότερες παράγοντες συνδεθεί σε αυτήν και μια κλήση από το διακομιστή στον πράκτορα κατά login. + +
+
+
+ ID Template - Αυτό είναι το πρότυπο αρχείο conf ID εισόδου ότι αυτό το τηλέφωνο θα χρησιμοποιήσει για την Asterisk ρυθμίσεις. Προεπιλεγμένο είναι - ΚΑΝΕΝΑ --. + +
+
+
+ Conf Override Settings - If populated, and the Πρότυπο ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Ομάδα Γνωστός ID - Η ID της ομάδας άλλως χρησιμοποιείται από τους αντιπροσώπους που ορίζονται για να καλέσετε τις κλήσεις από το VICIDIAL πράκτορα διεπαφής με διαφορετικές ταυτότητες καλούντος. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. + +
+
+
+ Ομάδα ψευδώνυμο - Το όνομα που χρησιμοποιείται για να περιγράψει μια ομάδα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες. + +
+
+
+ Αριθμός Ταυτότητας καλούντος - Η καλούντος αριθμό ταυτότητας που χρησιμοποιούνται σε αυτή την ομάδα Γνωστός. Πρέπει να είναι μόνο ψηφία. + +
+
+
+ Όνομα καλούντος ID - Το όνομα του καλούντος ID που μπορούν να αποσταλούν με αυτή την ομάδα Γνωστός. Από όσο γνωρίζουμε αυτό θα λειτουργήσει μόνο στον Καναδά και στις PRI κυκλωμάτων χρησιμοποιώντας IAX βρόχο κορμού μέσω Asterisk.



- - - - - - -ΠΙΝΑΚΑΣ ΤΗΛΕΦΩΝΩΝ

-
-
-Εωτ.Σύνδεση Τηλεφώνου - Αυτό το πεδίο είναι για την καταχώρηση του ονόματος του τηλεφώνου, όπως αυτό εμφανίζεται στο Asterisk, χωρίς να συμπεριλαμβάνει το πρωτόκολλο ή slash στην αρχή. Για παράδειγμα: για SIP τηλέφωνο SIPVtest101 η Εσω.Γραμμή Τηλεφώνου θα είναι test101. Επίσης, για IAX2 τηλέφωνα χρησιμοποιείστε τα πλήρης ονόματα: IAX2/IAXphone1@IAXphone1 θα είναι IAXphone1@IAXphone1. Για Zap τηλέφωνα καταχωρήστε το πλήρες κανάλι: Zap/25-1 θα είναι 25-1. Αλλη σημείωση, ορίστε το πρωτόκολλο παρακάτω σωστά για τον τύπο του τηλεφώνου. - -
-
-
-Αριθμός Σχεδίου Κλήσεων - Αυτό το πεδίο είναι για τον αριθμό που καλείται για να κουδουνίζει το τηλέφωνο. Αυτός ο αριθμός ορίζεται στο αρχείο extensions.conf του διακομιστή Asterisk - -
-
-
-Περιεχόμενο Φωνητικού Ταχυδρομείου - Αυτό το πεδίο είναι για το περιεχόμενο του φωνητικού ταχυδρομείου, όπου πηγαίνουν τα μηνύματα του τηλεφώνου του χρήστη. Το χρησιμοποιούμαι για να ελέγξουμε τα φωνητικά μηνύματα και για να μπορεί ο χρήστης να χρησιμοποιήσει το πλήκτρο VOICEMAIL. - -
-
-
-CallerID Εξερχομένων - Αυτό το πεδίο είναι για την καταχώριση του αριθμού callerID που θα θέλατε να εμφανίζεται στις εξερχόμενες κλήσεις. - -
-
-
-Δνση IP Τηλεφώνου - Αυτό το πεδίο είναι για την δνση IP του τηλέφωνου εάν είναι ένα VOIP τηλέφωνο. Αυτό είναι ένα προαιρετικό πεδίο - -
-
-
-Δνση IP Υπολογιστού - Αυτό το πεδίο είναι για την δνση IP του υπολογιστή του χρήστη. Αυτό είναι ένα προαιρετικό πεδίο - -
-
-
-IP Διακομιστή - Αυτός ο κατάλογος επιλογών είναι που επιλέγετε σε ποιον διακομιστή το τηλέφωνο είναι ενεργό. - -
-
-
-Σύνδεση - η σύνδεση που χρησιμοποιείται για τον τηλεφωνικό χρήστηστη σύνδεση στις εφαρμογές πελατών. - -
-
-
-Κωδικός πρόσβασης - ο κωδικός πρόσβασης που χρησιμοποιείται γιατον τηλεφωνικό χρήστη στη σύνδεση στις εφαρμογές πελατών. - -
-
-
-Κατάσταση - Η κατάσταση του τηλεφώνου στο σύστημα, ΕΝΕΡΓΗ και ΔΙΑΧ επιτρέπουν στους GUI πελάτες να δουλέψουν. Η ΔΙΑΧ επιτρέπει την πρόσβαση στην ιστοσελίδα διαχείρισης. - -
-
-
-Ενεργός Λογαριασμός - Κατά πόσο το τηλέφωνο είναι ενεργό για να τοποθετηθεί στην λίστα στο GUI. - -
-
-
-Τύπος Τηλεφώνου - Απλά για σημειώσεις διαχείρισης. - -
-
-
-Πλήρες Ονομα - Χρησιμοποιείται από τον χρήστη GUI στην λίστα ενεργών τηλεφώνων. - -
-
-
-Εταιρία - Απλά για σημειώσεις διαχείρισης. - -
-
-
-Εικόνα - Δεν έχει υλοποιηθεί ακόμα. - -
-
-
-Νέα Μηνύματα - Αριθμός νέων φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk. - -
-
-
-Παλαιά Μηνύματα - Αριθμός παλαιών φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk. - -
-
-
-Πρωτόκολλο Πελάτη - Το πρωτόκολλο που χρησιμοποιεί το τηλέφωνο για συνδεθεί στον διακομιστή Asterisk: SIP, IAX2, Zap. - -
-
-
-οπική GMT - Η διαφορά από την GMT όπου το τηλέφωνο βρίσκεται. Μην το ρυθμίσετε για DAYLIGHT SAVINGS ΩΡΑ. Αυτή χρησιμοποιείται από την VICIDIAL εκστρατεία για την επακριβή εμφάνιση της ώρας. - -
-
-
-Σύνδεση Διαχειριστή - Αυτή είναι η σύνδεση που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται. - -
-
-
-Μυστικό Διαχειριστή - Αυτός είναι ο κωδικός που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται. - -
-
-
-Προκαθορισμένος VICIDIAL Χρήστης - Εδώ ορίζεται μία προκαθορισμένη τιμή χρήστη, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα χρήστη. - -
-
-
-Προκαθορισμένος VICIDIAL Κωδικός - Εδώ ορίζεται μία προκαθορισμένη τιμή κωδικού, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα κωδικό. - -
-
-
-VICIDIAL Προκαθορισμένη Εκστρατεία - Εδώ ορίζεται μα προκαθορισμένη τιμή εκστρατείας, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για καμία εκστρατεία. - -
-
-
-Εσ.Σύνδ. Στάθμευσης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Στάθμευσης για τις εφαρμογές του χρήστη. - -
-
-
-Εσ.Σύνδ. Συνδιάλεξης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Συνδιάλεξης για τις εφαρμογές του χρήστη. - -
-
-
-Εσωτ.Σύνδεση Στάθμευσης VICIDIAL - Η προκαθορισμένη εσωτ.σύνδεση στάθμευσης. Εξακριβώστε ότι κάποια διαφορετική δουλεύει πριν την αλλάξετε. - -
-
-
- Αρχείο Στάθμευσης VICIDIAL - Το προκαθορισμένο αρχείο στάθμευσης. Μέχρι 10 χαρακτήρες. - -
-
-
-Πρόθεμα παρακολούθησης - Αυτό είναι το πρόθεμα παρακολούθησης των καναλιών ZAP. - -
-
-
-Εσωτ.Σύνδεση Ηχογράφησης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων για την εσωτ.σύνδεση ηχογράφησης που χρησιμοποιείται για μεταφορά στις συνδιαλέξεις, ώστε να ηχογραφηθούν.Extensions.conf . - -
-
-
-Βασική Εσωτ.Σύνδεση VMAIL - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων που ελέγχει την θυρίδα ηχητικών μηνυμάτων. - -
-
-
-Εσωτ.Σύνδεση απόρριψης VMAIL - Αυτο είναι το πρόθεμα του πλάνου κλήσεων που χρησιμοποιείται στο να στέλνει κλήσεις κατευθείαν στη θυρίδα του χρήστη από μία κλήση. - -
-
-
-Περιεχόμενο Εσωτ.Σύνδεσης - Αυτό είναι το περιεχόμενο του πλάνου κλήσεων όπου το τηλέφωνο χρησιμοποιεί. - -
-
-
-Κανάλι αποστολής DTMF - Αυτό είναι το κανάλι του χρησιμοποιείται για την αποστολή DTMF ήχων στις συνδιαλέξεις. - -
-
-
-Εξερχόμεη ομάδα κλήσης - αυτή είναι η ομάδα καναλιού όπου οι εξερχόμενες κλήσεις από αυτό το τηλέφωνο τοποθετούνται. Υπάρχουν ρουτίνες που την χρησιμοποιούν. Για τα κανάλια Zap θέλετε να χρησιμοποιήσετε κάτι σαν Zap/g2, για IAX2 trunks θα θέλετε να χρησιμοποιήσετε το πλήρες πρόθεμα IAX όπως IAX2/VICItest1:secret@10.10.10.15:4569. Ελέγξτε τα trunks με το αρχείο extensions.conf. - -
-
-
-Περιοχή Ιστο-Πλοηγού - Αυτό χρειάζεται μόνο σε Linux συστήματα. - -
-
-
-Κατάλογος Εγκατάστασης - . - -
-
-
-CallerID URL - Αυτή είναι η Δνση της ιστοσελίδας που χρησιμοποιείται για αναζήτηση με callerID - -
-
-
-Προκαθορισμένο VICIDIAL URL - Αυτή είναι η δνση ιστοσελίδας που χρησιμοποιείται για προσαρμοσμένα VICIDIAL ερωτήματα ιστοσελίδας - -
-
-
-Καταγραφή Γεγονότων Κλήσης - Αυτό τοποθετείται σε αληθές εάν το αρχείο call_log.agi βρίσκεται στο αρχείο extensions.conf για τις εξερχόμενες κλήσεις και για τις εσωτ.συνδέσεις 'h' που κλείνουν. Αυτό πρέπει πάντα να είναι 1 για να δουλεύουν σωστά πολλά χαρακτηριστικά των εφαρμογών. - -
-
-
-Μεταγωγή Χρήστη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να μεταβούν σε άλλον λογαριασμό χρήστη - -
-
-
-Σε συνδιάλεξη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να ξεκινούν συνδιαλέξεις μέχρι 6 εξωτερικές γραμμές. - -
-
-
-Διαχειριστού Κλείσιμο- Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να κλείνουν κάθε γραμμή. - -
-
-
-Διαχειριστού Κλέψιμο - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή. - -
-
-
-Διαχειριστού Παρακολούθηση - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδποτε γραμμή. - -
-
-
-Στάθμευση Κλήσης - Εάν το θέσετε σε αληθές θα επιτρέπετε σε χρήστες να σταθμεύουν κλήσεις και κλήσεις σε αναμονή να διαχειρίζονται από οποιοδήποτε άλλο ρήστη. Οι κλήσεις μένουν σε αναμονή για 30 δευτερόλεπτα και μετά κλείνουν. Συνήθως ενεργοποιημένη για όλους. - -
-
-
-Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές θα εμφανίζεται ένα παράθυρο ειδοποίησης, ότι η ώρα ενημέρωσης δεν έχει αλλάξει σε 20 δευτερόλεπτα. - -
-
-
-AF Καταγραφή Γεγονότος - Εάν το θέσετε σε αληθές θα καταγράφονται οι ενέργειες χρήσης του astGUIclient σε ένα αρχείο στον υπολογιστή του χρήστη. - -
-
-
-Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές οι εφαρμογές θα χρησιμοποιούν το ACQS. - -
-
-
-Υπερεμφανιζόμενο παραθύρο CallerID - Εάν το θέσετε σε αληθές θα επιτρέψετε σε αριθμούς ορισμένους στο αρχείο extensions.conf, να στέλνουν οθόνες με CallerID στους astGUIclient χρήστες. - -
-
-
-VMail Πλήκτρο - Εάν το θέσετε σε αληθές θα εμφανιστεί το πλήκτρο VOICEMAIL και τα μηνύματα μπορούν να εμφανίζονται στο astGUIclient. - -
-
-
-Ταχύτητα Ανανέωσης - Εάν το θέσετε σε αληθές ενεργοποιείται ένα νέο ρυθμό ανανέωσης πληροφοριών κλήσης για το astGUIclient. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευτερόλεπτο). - -
-
-
-Ρυθμός Ανανέωσης Ταχύτητας - σε χιλιοστά δευτερολέπτου. Χρημοποιείται μόνο εάν η Ταχύτητα Ανανέωσης είναι ενεργοποιημένη. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευερόλεπτο). - -
-
-
-Συνεχής MySQL - Εάν είναι ενεργοποιημένο, το astGUIclient θα παραμένει συνδεμένο αντί να συνδέεται κάθε δευτερόλεπτο. - -
-
-
-Αυτόματη Κλήση Επόμενου Αριθμού - Εάν είναι ενεργοποιημένο, μετά από τον τερματισμό θα γίνει κλήση του επόμενου αριθμού, εκτός εάν επιλέξουμε "Μη κάνεις κλήσεις". - -
-
-
-Σταμάτα την ηχογράφηση μετά από κάθε κλήση - Εάν είναι ενεργοποιημένο η ηχογράφηση θα σταματήσει μετά τον τερματισμό. - -
-
-
-Επιτρέψτε τα μηνύματα SIPSAK - εάν επιτρέπεται ο κεντρικόςυπολογιστής θα στείλει τα μηνύματα στο τηλέφωνο ΓΟΥΛΙΏΝ στηνεπίδειξη στην τηλεφωνική LCD επίδειξη όταν συνδέεται μεVICIDIAL. Το χαρακτηριστικό γνώρισμα λειτουργεί μόνο με τατηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak την εφαρμογή για ναεγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Η προεπιλογήείναι 0. - -
-
-
-DBΧ Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί. - -
-
-
-DBΧ Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk. - -
-
-
-DBΧ Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron. - -
-
-
-DBΧ Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234. - -
-
-
-DBΧ Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306. - -
-
-
-DBY Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. - -
-
-
-DBY Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. - -
-
-
-DBY Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. - -
-
-
-DBY Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. - -
-
-
-DBY Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. - -
-
-
-Γνωστός ID - Η ID του ψευδώνυμο που χρησιμοποιείται για να επιτρέψει συνδέσεις τηλεφώνου φορτίο ισορροπημένη. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. - -
-
-
-Ψευδώνυμο - Το όνομα που χρησιμοποιείται για την περιγραφή ενός τηλέφωνα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες. - -
-
-
-Τηλέφωνα logins List - Η comma separated κατάλογο τηλέφωνο συνδέσεις χρησιμοποιούνται όταν ένας πράκτορας συνδέεται στο τηλέφωνο χρησιμοποιώντας φορτίο ισορροπημένη συνδέσεις. Το γραφείο θα βρει εφαρμογή η ενεργός διακομιστής με τις λιγότερες παράγοντες συνδεθεί σε αυτήν και μια κλήση από το διακομιστή στον πράκτορα κατά login. - -
-
-
-Τηλέφωνα Email - Η διεύθυνση ηλεκτρονικού ταχυδρομείου που σχετίζονται με αυτό το τηλέφωνο εισόδου. Αυτό χρησιμοποιείται για τηλεφωνητή ρυθμίσεις. - -
-
-
-ID Template - Αυτό είναι το πρότυπο αρχείο conf ID εισόδου ότι αυτό το τηλέφωνο θα χρησιμοποιήσει για την Asterisk ρυθμίσεις. Προεπιλεγμένο είναι - ΚΑΝΕΝΑ --. - -
-
-
-Conf Override Settings - If populated, and the Πρότυπο ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. - -
-
-
-Ομάδα Γνωστός ID - Η ID της ομάδας άλλως χρησιμοποιείται από τους αντιπροσώπους που ορίζονται για να καλέσετε τις κλήσεις από το VICIDIAL πράκτορα διεπαφής με διαφορετικές ταυτότητες καλούντος. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. - -
-
-
-Ομάδα ψευδώνυμο - Το όνομα που χρησιμοποιείται για να περιγράψει μια ομάδα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες. - -
-
-
-Αριθμός Ταυτότητας καλούντος - Η καλούντος αριθμό ταυτότητας που χρησιμοποιούνται σε αυτή την ομάδα Γνωστός. Πρέπει να είναι μόνο ψηφία. - -
-
-
-Όνομα καλούντος ID - Το όνομα του καλούντος ID που μπορούν να αποσταλούν με αυτή την ομάδα Γνωστός. Από όσο γνωρίζουμε αυτό θα λειτουργήσει μόνο στον Καναδά και στις PRI κυκλωμάτων χρησιμοποιώντας IAX βρόχο κορμού μέσω Asterisk. - - - - -



- -ΠΙΝΑΚΑΣ ΔΙΑΚΟΜΙΣΤΩΝ

-
-
-ID Διακομιστή - Σε αυτό το πεδίο ορίζεται το όνομα του διακομιστή Asterisk, είναι μόνο μία επωνυμία ώστε να αναγνωρίζεται από τους διαχειριστές. - -
-
-
-Περιγραφή Διακομιστή - Το πεδίο στο οποίο περιγράφεται με μία φράση τον διακομιστή Asterisk. - -
-
-
-Δνση IP Διακομιστή - Το πεδίο που ορίζεται η δνση IP του δικτύου του διακομιστή Asterisk. - -
-
-
-Ενεργός - Ορίζει κατά πόσον ο διακομιστής Asterisk είναι ενεργός ή μη ενεργός. - -
-
-
-System Load - Τα δύο αυτά στατιστικά στοιχεία δείχνουν την loadavg ενός συστήματος φορές 100 και το ποσοστό χρήσης της CPU του διακομιστή και ενημερώνεται ανά λεπτό. Η loadavg θα πρέπει να είναι κατά μέσο όρο κάτω των 100 πολλαπλασιάζεται με τον αριθμό των πυρήνων της CPU σας σύστημα, για τη βέλτιστη απόδοση. Η χρήση της CPU ποσοστό θα πρέπει να παραμείνει κάτω από 50 για τη βέλτιστη απόδοση. - -
-
-
-Live Channels - Αυτό το πεδίο δείχνει τον τρέχοντα αριθμό των σταθμών Asterisk που ζουν με το σύστημα τώρα. Είναι σημαντικό να σημειωθεί ότι ο αριθμός των καναλιών Asterisk είναι συνήθως πολύ υψηλότερη από τον πραγματικό αριθμό των κλήσεων σε ένα σύστημα. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό. - -
-
-
-Disk Usage - Το πεδίο αυτό θα δείξει το δίσκο χρήσης για κάθε διαμέρισμα σε αυτόν το διακομιστή. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό. - -
-
-
-Εκδοση Asterisk. - -
-
-
-Μέγιστος Αριθμός Trunk του VICIDIAL - Αυτό το πεδίο θα προσδιορίσει τον μέγιστο αριθμό γραμμών, τις οποίες θα χρησιμοποιήσει η διεργασία αυτόατης κλήσης. Εάν θέλετε να αφιερώσετε δύο PRI σε ένα διακομιστή τότε θα πρέπει να το ορίσετε σε 46. Το προκαθορισμένο είναι 96. - -
-
-
-Max ζητεί ανά Δεύτερη - Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το εξερχόμενο αυτόματη κλήση δέσμης ενεργειών σε αυτόν το διακομιστή ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 100. Η προεπιλογή είναι 20. - -
-
-
-Telnet Πελάτης - Αυτή είναι η δνση ή το όνομα του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι 'localhost'. - -
-
-
-Πόρτα Telnet - Αυτή είναι η πόρτα της σύνδεσης με τον διαχειριστή του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι '5038'. - -
-
-
- Διαχειριστής Χρήστης - Το όνομα χρήστη που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι 'cron' - -
-
-
-Μυστικό Διαχειριστή - Το μυστικό ή κωδικός που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι '1111' - -
-
-
-Ενημέρωση Χρήστη Διαχειριστή - Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες ενημέρωσης. Το προκαθορισμένο είαι 'updatecron'. - -
-
-
-Ακουσμα Χρήστη Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο ακούν για έξοδο. Τ προκαθορισμένο είναι 'listencron'. -
-
-
-Αποστολή Διακομιστή Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο στέλνουν Ενέργειες στον διαχειριστή.Το προκαθορισμένο είναι 'sendcron'. + ΠΙΝΑΚΑΣ ΔΙΑΚΟΜΙΣΤΩΝ

+
+
+ ID Διακομιστή - Σε αυτό το πεδίο ορίζεται το όνομα του διακομιστή Asterisk, είναι μόνο μία επωνυμία ώστε να αναγνωρίζεται από τους διαχειριστές. + +
+
+
+ Περιγραφή Διακομιστή - Το πεδίο στο οποίο περιγράφεται με μία φράση τον διακομιστή Asterisk. + +
+
+
+ Δνση IP Διακομιστή - Το πεδίο που ορίζεται η δνση IP του δικτύου του διακομιστή Asterisk. + +
+
+
+ Ενεργός - Ορίζει κατά πόσον ο διακομιστής Asterisk είναι ενεργός ή μη ενεργός. + +
+
+
+ System Load - Τα δύο αυτά στατιστικά στοιχεία δείχνουν την loadavg ενός συστήματος φορές 100 και το ποσοστό χρήσης της CPU του διακομιστή και ενημερώνεται ανά λεπτό. Η loadavg θα πρέπει να είναι κατά μέσο όρο κάτω των 100 πολλαπλασιάζεται με τον αριθμό των πυρήνων της CPU σας σύστημα, για τη βέλτιστη απόδοση. Η χρήση της CPU ποσοστό θα πρέπει να παραμείνει κάτω από 50 για τη βέλτιστη απόδοση. + +
+
+
+ Live Channels - Αυτό το πεδίο δείχνει τον τρέχοντα αριθμό των σταθμών Asterisk που ζουν με το σύστημα τώρα. Είναι σημαντικό να σημειωθεί ότι ο αριθμός των καναλιών Asterisk είναι συνήθως πολύ υψηλότερη από τον πραγματικό αριθμό των κλήσεων σε ένα σύστημα. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό. + +
+
+
+ Disk Usage - Το πεδίο αυτό θα δείξει το δίσκο χρήσης για κάθε διαμέρισμα σε αυτόν το διακομιστή. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό. + +
+
+
+ Εκδοση Asterisk. + +
+
+
+ Μέγιστος Αριθμός Trunk του VICIDIAL - Αυτό το πεδίο θα προσδιορίσει τον μέγιστο αριθμό γραμμών, τις οποίες θα χρησιμοποιήσει η διεργασία αυτόατης κλήσης. Εάν θέλετε να αφιερώσετε δύο PRI σε ένα διακομιστή τότε θα πρέπει να το ορίσετε σε 46. Το προκαθορισμένο είναι 96. + +
+
+
+ Max ζητεί ανά Δεύτερη - Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το εξερχόμενο αυτόματη κλήση δέσμης ενεργειών σε αυτόν το διακομιστή ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 100. Η προεπιλογή είναι 20. + +
+
+
+ Telnet Πελάτης - Αυτή είναι η δνση ή το όνομα του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι 'localhost'. + +
+
+
+ Πόρτα Telnet - Αυτή είναι η πόρτα της σύνδεσης με τον διαχειριστή του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι '5038'. + +
+
+
+ Διαχειριστής Χρήστης - Το όνομα χρήστη που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι 'cron' + +
+
+
+ Μυστικό Διαχειριστή - Το μυστικό ή κωδικός που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι '1111' + +
+
+
+ Ενημέρωση Χρήστη Διαχειριστή - Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες ενημέρωσης. Το προκαθορισμένο είαι 'updatecron'. + +
+
+
+ Ακουσμα Χρήστη Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο ακούν για έξοδο. Τ προκαθορισμένο είναι 'listencron'. + +
+
+
+ Αποστολή Διακομιστή Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο στέλνουν Ενέργειες στον διαχειριστή.Το προκαθορισμένο είναι 'sendcron'. + +
+
+
+ Conf Φάκελος Secret - Αυτό είναι το μυστικό, ή τον κωδικό πρόσβασης για το διακομιστή στο IAX που δημιουργείται αυτόματα conf αρχείο για αυτό το διακομιστή σε άλλους servers. Όριο είναι 20 χαρακτήρες αλφαριθμητικό παύλα και υπογράμμισης δεκτή. Προεπιλογή είναι δοκιμή. + +
+
+
+ GMT offset Διακομιστής - Η διαφορά σε ώρες από την GMT ώρα που δεν έχει ρυθμιστεί με Daylight-Savings-Time. Το προκαθορισμένο είναι '-5' + +
+
+
+ Εσωτ.σύνδεση απόρριψης VMail - Το πρόθεμα εσωτ.σύνδεσης που χρησιμοποιείται στον διακομιστή για να στείλει τις κλήσεις κατευθείαν μέσω agc σε ένα συγκεκριμένο φωνητικό ταχυδρομείο. Το προκαθορισμένο είναι '85026666666666' + +
+
+
+ VICIDIAL AD εσωτ.σύνδεση - Η προκαθορισμένη εσωτ.σύνδεση εάν δεν έχει οριστεί στην εκστρατεία για να στείλει τις κλήσεις στην διεργασία αυτόματης κλήσης. Η προκαθορισμένη είναι '8365' + +
+
+
+ Προκαθορισμένο Περιεχόμενο - Το προκαθορισμένο περιεχόμενο του πλάνου κλήσεων για διεργασίες του διακομιστή. Το προκαθορισμένο είναι 'προκαθορισμένο' + +
+
+
+ Επίδοση Συστήματος - Θέτοντας αυτήν την επιλογή σε Ν, θα ενεργοποιήσετε την καταγραφή στατιστικών γεγονότων επίδοσης για τον διακομιστή, συμπεριλαμβάνοντας το φόρτο του συστήματος, τις διεργασίες και τα κανάλια που χρησιμοποιεί. Προκαθορισμένα είναι Ο. + +
+
+
+ Γεγονότα Διακομιστή - Θέτοντας αυτήν την επιλογή σε Ν θα ενεργοποιήσετε την καταγραφή των γεγονότων για όλες τις διεργασίες. Επίσης, η καταγραφή γεγονότων της οθόνης θα είναι απενεργοποιημένη, εάν είναι Ν όταν το σύστημα ξεκινήσει. Προκαθορισμένα είναι Ν. + +
+
+
+ Εξοδος AGI - Θέτοντας αυτήν την επιλογή σε NONE θα απενεργοποιήσετε την έξοδο από όλες τις διαδικασίες AGI. Αν θέσετε STDERR θα σταλεί η έξοδος των AGI στο CLI. Επίσης υπάρχουν οι επιλογές FILE και BOTH. Προκαθορισμένα είναι FILE. + +
+
+
+ Διακύμανση Τηλεφωνικής Κλήσης - Καθορίζοντας αυτό το πεδίο σε Ν θα επιτρέψει στον εξυπηρετητή να ορίζει κλήσεις διακύμανσης για την εκστρατεία, ώστε το καθορισμένο επίπεδο κλήσης να μπορεί να ικανοποιείται έστω και εάν δεν υπάρχουν συνδεμένοι χειριστές σε αυτήν την εκστρατεία. Προκαθορισμένα είναι Ο. + +
+
+
+ Υπόλοιπο VICIDIAL Rank - Αυτό το πεδίο σας επιτρέπει να ορίσετε τη σειρά με την οποία αυτός ο διακομιστής πρέπει να χρησιμοποιείται για την κλήση ισορροπία, αν κλήση ισορροπία είναι ενεργοποιημένη. Ο server με την υψηλότερη κατάταξη θα πρέπει να χρησιμοποιείται για πρώτη φορά στην διάθεση Υπόλοιπο συμπληρώστε κλήσεις. Προεπιλογή είναι 0. + +
+
+
+ Διακύμανση εκτός ορίων - Καθορίζει τον αριθμό των τηλ.κυκλ.συνδ. που δεν επιτρέπετε στο σύστημα να χειριστεί για Διακύμανση Τηλεφωνικής Κλήσης. + +
+
+
+ Καταγραφή Σύνδεσμος - Η ρύθμιση αυτή σας επιτρέπει να παρακάμπτουν την προεπιλογή της οθόνης του συνδέσμου εγγραφή στο admin ιστοσελίδες. Προεπιλεγμένο είναι SERVER_IP. + +
+
+
+ Αναπληρωματικό Καταγραφή IP Διακομιστή - Αυτή η ρύθμιση είναι όπου μπορείτε να βάλετε ένα διακομιστή IP ή άλλο μηχάνημα το όνομα που μπορεί να χρησιμοποιηθεί στη θέση του server_ip στις συνδέσεις με ηχογραφήσεις εντός του admin ιστοσελίδες. Προεπιλεγμένο είναι άδειο. + +
+
+
+ Asterisk Ενεργό Server - Αν Asterisk δεν εκτελείται σε αυτόν το διακομιστή ή αν VICIDIAL δεν θα πρέπει να χρησιμοποιούν αυτό το διακομιστή ή αν είναι μόνο με τη χρήση αυτού του διακομιστή για άλλα σενάρια, όπως η χοάνη φόρτωσης script που θέλετε να ρυθμίσετε αυτή να Ν. Προεπιλ είναι Y. + +
+
+
+ Ενεργή Server Agent - Η ρύθμιση αυτής της δυνατότητας να Ν παραγόντων θα αποτρέψει από το να είναι σε θέση να συνδεθείτε σε αυτόν το διακομιστή μέσω του vicidial οθόνη παράγοντα. Αυτό είναι πολύ χρήσιμο όταν χρησιμοποιείτε ένα φορτίο σύνδεση τηλεφώνου ισορροπημένη ρύθμιση. Προεπιλογή είναι Y. + +
+
+
+ Δημιουργήστε conf αρχεία - Αν θα θέλατε το σύστημα auto-δημιουργούν αστερίσκο conf αρχεία με βάση τις ενδείξεις τηλεφώνων, την εξισορρόπηση φορτίου εγγραφές και εγκατάσταση εντός VICIDIAL τότε που αυτό να είναι Προεπιλ Y. Y. + +
+
+
+ Αναδημιουργία conf αρχεία - Αν θέλετε να αναγκάσετε μια ανακατασκευή του Asterisk conf αρχεία ή αν κάποιο από τα τηλέφωνα ή μεταφορέα εγγραφές έχουν αλλάξει, τότε αυτό θα πρέπει να ρυθμιστεί σε Υ. Μετά την conf αρχεία που έχουν δημιουργηθεί και έχει Asterisk φορτώθηκε στη συνέχεια, αυτό θα αλλάξει σε Ν. Προεπιλεγμένο είναι Y. + +
+
+
+ Rebuild Music On Hold - Αν θέλετε να αναγκάσετε μια ανασυγκρότηση των αρχείων μουσικής σε κατάσταση αναμονής ή όταν η μουσική για τις εισόδους που κατέχουν ή καταχωρήσεις διακομιστή έχουν αλλάξει, τότε αυτό θα πρέπει να οριστεί σε Γ. Μετά την μουσική σε αναμονή αρχεία έχουν συγχρονιστεί και φορτώθηκε στη συνέχεια, αυτό θα αλλάξει σε Ν. Default είναι Y. -
-
-
-GMT offset Διακομιστής - Η διαφορά σε ώρες από την GMT ώρα που δεν έχει ρυθμιστεί με Daylight-Savings-Time. Το προκαθορισμένο είναι '-5' +
+
+
+ Ήχοι Ενημέρωση - Αν θέλετε να ισχύει ο έλεγχος των αρχείων ήχου σε αυτόν το διακομιστή, και το κεντρικό κατάστημα ήχου είναι ενεργοποιημένη ως μια ρύθμιση συστήματος, τότε το πεδίο αυτό θα επιτρέψει την ήχους updater να τρέχει κατά την επόμενη κορυφή της λεπτό. Κάθε φορά που ένα ηχητικό αρχείο αποστέλλεται από το web interface αυτό έχει ρυθμιστεί αυτόματα στο Υ για όλους τους διακομιστές που έχουν Asterisk ενεργό. Προεπιλογή είναι N. -
-
-
-Εσωτ.σύνδεση απόρριψης VMail - Το πρόθεμα εσωτ.σύνδεσης που χρησιμοποιείται στον διακομιστή για να στείλει τις κλήσεις κατευθείαν μέσω agc σε ένα συγκεκριμένο φωνητικό ταχυδρομείο. Το προκαθορισμένο είναι '85026666666666' +
+
+
+ ViciDial Καταγραφή Όριο - Το πεδίο αυτό είναι όπου μπορείτε να ορίσετε το μέγιστο αριθμό των λεπτών ότι μια καταγραφή τηλεφωνήματος που ViciDial μπορεί να είναι. Προεπιλογή είναι 60 λεπτά. -
-
-
-VICIDIAL AD εσωτ.σύνδεση - Η προκαθορισμένη εσωτ.σύνδεση εάν δεν έχει οριστεί στην εκστρατεία για να στείλει τις κλήσεις στην διεργασία αυτόματης κλήσης. Η προκαθορισμένη είναι '8365' - -
-
-
-Προκαθορισμένο Περιεχόμενο - Το προκαθορισμένο περιεχόμενο του πλάνου κλήσεων για διεργασίες του διακομιστή. Το προκαθορισμένο είναι 'προκαθορισμένο' - -
-
-
-Επίδοση Συστήματος - Θέτοντας αυτήν την επιλογή σε Ν, θα ενεργοποιήσετε την καταγραφή στατιστικών γεγονότων επίδοσης για τον διακομιστή, συμπεριλαμβάνοντας το φόρτο του συστήματος, τις διεργασίες και τα κανάλια που χρησιμοποιεί. Προκαθορισμένα είναι Ο. - -
-
-
-Γεγονότα Διακομιστή - Θέτοντας αυτήν την επιλογή σε Ν θα ενεργοποιήσετε την καταγραφή των γεγονότων για όλες τις διεργασίες. Επίσης, η καταγραφή γεγονότων της οθόνης θα είναι απενεργοποιημένη, εάν είναι Ν όταν το σύστημα ξεκινήσει. Προκαθορισμένα είναι Ν. - -
-
-
-Εξοδος AGI - Θέτοντας αυτήν την επιλογή σε NONE θα απενεργοποιήσετε την έξοδο από όλες τις διαδικασίες AGI. Αν θέσετε STDERR θα σταλεί η έξοδος των AGI στο CLI. Επίσης υπάρχουν οι επιλογές FILE και BOTH. Προκαθορισμένα είναι FILE. - -
-
-
-Διακύμανση Τηλεφωνικής Κλήσης - Καθορίζοντας αυτό το πεδίο σε Ν θα επιτρέψει στον εξυπηρετητή να ορίζει κλήσεις διακύμανσης για την εκστρατεία, ώστε το καθορισμένο επίπεδο κλήσης να μπορεί να ικανοποιείται έστω και εάν δεν υπάρχουν συνδεμένοι χειριστές σε αυτήν την εκστρατεία. Προκαθορισμένα είναι Ο. - -
-
-
-Διακύμανση εκτός ορίων - Καθορίζει τον αριθμό των τηλ.κυκλ.συνδ. που δεν επιτρέπετε στο σύστημα να χειριστεί για Διακύμανση Τηλεφωνικής Κλήσης. - -
-
-
-Καταγραφή Σύνδεσμος - Η ρύθμιση αυτή σας επιτρέπει να παρακάμπτουν την προεπιλογή της οθόνης του συνδέσμου εγγραφή στο admin ιστοσελίδες. Προεπιλεγμένο είναι SERVER_IP. +
+
+
+ Carrier Logging Ενεργό - Η ρύθμιση αυτή σας επιτρέπει να συνδεθείτε όλες hangup κωδικούς επιστροφής για κάθε εξερχόμενη κλήση λίστα κλήσεων που σας διάθεση. Προεπιλογή είναι Ν. -
-
-
-Αναπληρωματικό Καταγραφή IP Διακομιστή - Αυτή η ρύθμιση είναι όπου μπορείτε να βάλετε ένα διακομιστή IP ή άλλο μηχάνημα το όνομα που μπορεί να χρησιμοποιηθεί στη θέση του server_ip στις συνδέσεις με ηχογραφήσεις εντός του admin ιστοσελίδες. Προεπιλεγμένο είναι άδειο. -
-
-
-Asterisk Ενεργό Server - Αν Asterisk δεν εκτελείται σε αυτόν το διακομιστή ή αν VICIDIAL δεν θα πρέπει να χρησιμοποιούν αυτό το διακομιστή ή αν είναι μόνο με τη χρήση αυτού του διακομιστή για άλλα σενάρια, όπως η χοάνη φόρτωσης script που θέλετε να ρυθμίσετε αυτή να Ν. Προεπιλ είναι Y. -
-
-
-Δημιουργήστε conf αρχεία - Αν θα θέλατε το σύστημα auto-δημιουργούν αστερίσκο conf αρχεία με βάση τις ενδείξεις τηλεφώνων, την εξισορρόπηση φορτίου εγγραφές και εγκατάσταση εντός VICIDIAL τότε που αυτό να είναι Προεπιλ Y. Y. -
-
-
-Αναδημιουργία conf αρχεία - Αν θέλετε να αναγκάσετε μια ανακατασκευή του Asterisk conf αρχεία ή αν κάποιο από τα τηλέφωνα ή μεταφορέα εγγραφές έχουν αλλάξει, τότε αυτό θα πρέπει να ρυθμιστεί σε Υ. Μετά την conf αρχεία που έχουν δημιουργηθεί και έχει Asterisk φορτώθηκε στη συνέχεια, αυτό θα αλλάξει σε Ν. Προεπιλεγμένο είναι Y. +



+ vicidial_conf_templates ΠΙΝΑΚΑΣ

+
+
+ ID Template - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό της conf πρότυπο σε ολόκληρο το σύστημα. +
+
+
+ Όνομα - Αυτό είναι το όνομα του αρχείου conf πρότυπο εισόδου. -



+
+
+
+ Περιεχόμενα Template - Το πεδίο αυτό είναι όπου μπορείτε να εισάγετε τις ειδικές ρυθμίσεις στο να χρησιμοποιηθούν από όλα τα τηλέφωνα και-ή αερομεταφορέων που έχουν ρυθμιστεί να χρησιμοποιούν αυτό το πρότυπο conf. Τα πεδία που δεν θα πρέπει να περιλαμβάνονται στη θέση αυτή είναι: μυστικό, accountcode, υπόψη, username και το γραμματοκιβώτιο. -vicidial_conf_templates ΠΙΝΑΚΑΣ

-
-
-ID Template - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό της conf πρότυπο σε ολόκληρο το σύστημα. -
-
-
-Όνομα - Αυτό είναι το όνομα του αρχείου conf πρότυπο εισόδου. -
-
-
-Περιεχόμενα Template - Το πεδίο αυτό είναι όπου μπορείτε να εισάγετε τις ειδικές ρυθμίσεις στο να χρησιμοποιηθούν από όλα τα τηλέφωνα και-ή αερομεταφορέων που έχουν ρυθμιστεί να χρησιμοποιούν αυτό το πρότυπο conf. Τα πεδία που δεν θα πρέπει να περιλαμβάνονται στη θέση αυτή είναι: μυστικό, accountcode, υπόψη, username και το γραμματοκιβώτιο. +



+ vicidial_server_carriers ΠΙΝΑΚΑΣ

+
+
+ ID Carrier - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό του αερομεταφορέα για τη συγκεκριμένη θέση σε όλο το σύστημα. +
+
+
+ Όνομα Carrier - Αυτό είναι το όνομα του μεταφορέα εισόδου. -



+
+
+
+ Περιγραφή Carrier - Αυτό είναι που στα σχόλια του αστερίσκο αρχεία conf πάνω από το dialplan και εγγραφές λογαριασμό. Μέγιστο 255 χαρακτήρες. -vicidial_server_carriers ΠΙΝΑΚΑΣ

-
-
-ID Carrier - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό του αερομεταφορέα για τη συγκεκριμένη θέση σε όλο το σύστημα. +
+
+
+ Εγγραφή String - Το πεδίο αυτό είναι όπου μπορείτε να εισαγάγετε στον ακριβή συμβολοσειρά που απαιτούνται στο SIP IAX ή αρχείο διαμόρφωσης για να εγγραφείτε στο φορέα παροχής υπηρεσιών. Προαιρετικό αλλά συνιστάται ιδιαίτερα αν ο φορέας σας επιτρέπει την καταχώριση. -
-
-
-Όνομα Carrier - Αυτό είναι το όνομα του μεταφορέα εισόδου. +
+
+
+ ID Template - Αυτό το προαιρετικό πεδίο σας επιτρέπει να επιλέξετε ένα πρότυπο conf αρχείο για τον εν λόγω αερομεταφορέα εισόδου. -
-
-
-Εγγραφή String - Το πεδίο αυτό είναι όπου μπορείτε να εισαγάγετε στον ακριβή συμβολοσειρά που απαιτούνται στο SIP IAX ή αρχείο διαμόρφωσης για να εγγραφείτε στο φορέα παροχής υπηρεσιών. Προαιρετικό αλλά συνιστάται ιδιαίτερα αν ο φορέας σας επιτρέπει την καταχώριση. +
+
+
+ Λογαριασμός Θέση - Το πεδίο αυτό χρησιμοποιείται αν δεν έχετε επιλέξει να χρησιμοποιήσετε ένα πρότυπο, και είναι όπου μπορείτε να εισαγάγετε στον ειδικό λογαριασμό ρυθμίσεις που πρέπει να χρησιμοποιείται για τον εν λόγω αερομεταφορέα. Αν πρόκειται να λαμβάνουν σε εισερχόμενα κλήσεις από τον εν λόγω αερομεταφορέα κορμού μπορεί να θέλετε να ρυθμίσετε το πλαίσιο = trunkinbound σε αυτό τον τομέα, ώστε να μπορείτε να χρησιμοποιήσετε τη διαδικασία χειρισμού DID εντός VICIDIAL. -
-
-
-ID Template - Αυτό το προαιρετικό πεδίο σας επιτρέπει να επιλέξετε ένα πρότυπο conf αρχείο για τον εν λόγω αερομεταφορέα εισόδου. +
+
+
+ Πρωτόκολλο - Αυτό το πεδίο σας επιτρέπει να ορίσετε το πρωτόκολλο να χρησιμοποιήσετε για την είσοδο του μεταφορέα. Επί του παρόντος μόνο SIP IAX και υποστηρίζονται. -
-
-
-Λογαριασμός Θέση - Το πεδίο αυτό χρησιμοποιείται αν δεν έχετε επιλέξει να χρησιμοποιήσετε ένα πρότυπο, και είναι όπου μπορείτε να εισαγάγετε στον ειδικό λογαριασμό ρυθμίσεις που πρέπει να χρησιμοποιείται για τον εν λόγω αερομεταφορέα. Αν πρόκειται να λαμβάνουν σε εισερχόμενα κλήσεις από τον εν λόγω αερομεταφορέα κορμού μπορεί να θέλετε να ρυθμίσετε το πλαίσιο = trunkinbound σε αυτό τον τομέα, ώστε να μπορείτε να χρησιμοποιήσετε τη διαδικασία χειρισμού DID εντός VICIDIAL. +
+
+
+ Globals String - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε μια global μεταβλητή που θα χρησιμοποιηθεί για τον μεταφορέα στο dialplan. -
-
-
-Πρωτόκολλο - Αυτό το πεδίο σας επιτρέπει να ορίσετε το πρωτόκολλο να χρησιμοποιήσετε για την είσοδο του μεταφορέα. Επί του παρόντος μόνο SIP IAX και υποστηρίζονται. +
+
+
+ Dialplan Είσοδος - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε ένα σύνολο dialplan καταχωρήσεις να χρησιμοποιήσετε για τον εν λόγω αερομεταφορέα. -
-
-
-Globals String - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε μια global μεταβλητή που θα χρησιμοποιηθεί για τον μεταφορέα στο dialplan. +
+
+
+ IP Διακομιστή - Αυτό είναι το διακομιστή ότι αυτό το συγκεκριμένο μεταφορέα εγγραφή είναι συνδεδεμένες με. -
-
-
-Dialplan Είσοδος - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε ένα σύνολο dialplan καταχωρήσεις να χρησιμοποιήσετε για τον εν λόγω αερομεταφορέα. +
+
+
+ Ενεργή - Αυτό καθορίζει εάν ο μεταφορέας θα συμπεριληφθούν στα auto-conf αρχεία που δημιουργούνται ή δεν. -
-
-
-IP Διακομιστή - Αυτό είναι το διακομιστή ότι αυτό το συγκεκριμένο μεταφορέα εγγραφή είναι συνδεδεμένες με. -
-
-
-Ενεργή - Αυτό καθορίζει εάν ο μεταφορέας θα συμπεριληφθούν στα auto-conf αρχεία που δημιουργούνται ή δεν. +



+ ΠΙΝΑΚΑΣ ΣΥΝΔΙΑΛΕΞΕΩΝ

+
+
+ Αριθμός Συνδιάλεξης - Αυτό το πεδίο είναι για τον αριθμό συνδιάλεξης meetme στο σχέδιο κλήσεων. Επίσης, συνιστούμε ο αριθμς meetme στο meetme.conf να ταιριάζει με αυτό τον αριθμό για κάθε καταχώρηση. Αυτό είναι για τις συνδιαλέξε στο astGUIclient και χρησιμοποιείται για την λειτουργία αποχώρησης από κλήση με 3 γραμμές στο VICIDIAL. -



+
+
+
+ IP Διακομιστή- Ο κατάλογος που επιλέξατε τον διακομιστή ASTERISK όπου η συνδιάλεξη θα είναι. -ΠΙΝΑΚΑΣ ΣΥΝΔΙΑΛΕΞΕΩΝ

-
-
-Αριθμός Συνδιάλεξης - Αυτό το πεδίο είναι για τον αριθμό συνδιάλεξης meetme στο σχέδιο κλήσεων. Επίσης, συνιστούμε ο αριθμς meetme στο meetme.conf να ταιριάζει με αυτό τον αριθμό για κάθε καταχώρηση. Αυτό είναι για τις συνδιαλέξε στο astGUIclient και χρησιμοποιείται για την λειτουργία αποχώρησης από κλήση με 3 γραμμές στο VICIDIAL. -
-
-
-IP Διακομιστή- Ο κατάλογος που επιλέξατε τον διακομιστή ASTERISK όπου η συνδιάλεξη θα είναι. + 0) + { + ?> +



- - 0) - { + VICIDIAL_SERVER_Μπαούλα ΠΙΝΑΚΑΣ

+
+
+ Οι Τηλ.Κυκλ.Συνδ. του εξυπηρετητή σας επιτρέπουν να περιορίσετε τις εξερχόμενες γραμμές που χρησιμοποιούνται στον εξυπηρετητή ανά εκστρατεία. Χωρίς αυτές τις εγγραφές, επιτρέπετε στην εκστρατεία να έχει όσες γραμμές μπορεί να έχει, μέχρι τον μέγιστο καθορισμένο αριθμό Τηλ.Κυκλ.Συνδ.. + + + + +



- VICIDIAL_SERVER_Μπαούλα ΠΙΝΑΚΑΣ

-
+ SYSTEM_SETTINGS ΠΙΝΑΚΑΣ

+

- Οι Τηλ.Κυκλ.Συνδ. του εξυπηρετητή σας επιτρέπουν να περιορίσετε τις εξερχόμενες γραμμές που χρησιμοποιούνται στον εξυπηρετητή ανά εκστρατεία. Χωρίς αυτές τις εγγραφές, επιτρέπετε στην εκστρατεία να έχει όσες γραμμές μπορεί να έχει, μέχρι τον μέγιστο καθορισμένο αριθμό Τηλ.Κυκλ.Συνδ.. - + Μη-λατινικά χρήσης - αυτή η επιλογή επιτρέπει σε σας για ναπροκαθορίσει το χειρόγραφο επίδειξης Ιστού για να χρησιμοποιήσειUTF8 τους χαρακτήρες και να μην κάνει οποιαδήποτε φιλτράρισμαλατινικός-χαρακτήρας-οικογενειακής κανονική έκφρασης ήμορφοποίηση επίδειξης. Η προεπιλογή είναι 0. + +
+
+
+ Webroot writable - αυτή η ρύθμιση επιτρέπει σε σας για νακαθορίσει εάν temp τα αρχεία και τα αρχεία επικύρωσης πρέπεινα τοποθετηθούν στο webroot στον κεντρικό υπολογιστή δικτύουσας. Η προεπιλογή είναι 1. + +
+
+
+ VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη - αυτός ο τομέας χρησιμοποιείται για να επιλέξει πότε για ναπαρουσιάσει σε έναν πράκτορα πότε η σύνοδός τους έχει τεθείεκτός λειτουργίας από το σύστημα, μια δράση διευθυντών ή απόένα εξωτερικό μέτρο. Η ρύθμιση NOT_ACTIVE θα θέσει εκτόςλειτουργίας το μήνυμα στην οθόνη πρακτόρων. Η ρύθμισηLIVE_ΧΕΙΡΙΣΤΗΣθα επιδείξει μόνο το εκτός λειτουργίας μήνυμα όταναφαιρεθεί το αρχείο πρακτόρων vicidial_auto_calls, όπως κατάτη διάρκεια μιας αποσύνδεσης δύναμης ή της αποσύνδεσης έκτακτηςανάγκης. + +
+
+
+ Επιτρέψτε τα μηνύματα SIPSAK - εάν θέστε 1, αυτό θα επιτρέψειτον τηλεφωνικό πίνακα θέτοντας για να εργαστεί κατάλληλα, οκεντρικός υπολογιστής θα στείλει τα μηνύματα στο τηλέφωνοΓΟΥΛΙΏΝ στην επίδειξη στην τηλεφωνική LCD επίδειξη ότανσυνδέεται με VICIDIAL. Αυτό το χαρακτηριστικό γνώρισμαλειτουργεί μόνο με τα τηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak τηνεφαρμογή για να εγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Ηπροεπιλογή είναι 0. + +
+
+
+ Agent API Ενεργό - Αν οριστεί σε 1, αυτό θα επιτρέψει τη διασύνδεση API γραφείο να λειτουργεί. Η προεπιλογή είναι 0. + +
+
+
+ Σπίτι URL Admin - αυτό είναι η διεύθυνση URL ήιστοχώρων ότι θα πάτε εάν χτυπήσετε στην ΕΓΧΏΡΙΑ σύνδεση στηνκορυφή της σελίδας admin.php. + +
+
+
+ Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων - αυτή ηεπιλογή θα καταγράψει σε ένα αρχείο ημερολογίου κειμένων στοwebserver κάθε φορά που μεταφέρεται μια κλήση σε ένανπράκτορα. Η προεπιλογή είναι 0, άτομα με ειδικές ανάγκες. + +
+
+
+ Ώρα ρολόι Τέλος της ημέρας - Αυτή η ρύθμιση καθορίζει, όταν όλοι οι χρήστες θα πρέπει να συνδεθεί αυτόματα από το σύστημα timeclock. Μόνο εκτελείται μία φορά την ημέρα. πρέπει να είναι μόνο 4 ψηφία ψηφίο 2 ώρες και 2 λεπτά ψηφίο στο 24ωρο διάστημα. Η προεπιλογή είναι 0000. + +
+
+
+ ΤελευταίαΏρα ρολόι Auto Αποσύνδεση - Αυτό το πεδίο εμφανίζει την ημερομηνία της τελευταίας αυτόματη αποσύνδεση. + +
+
+
+ Agent Screen Επικεφαλίδας Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή της ημερομηνίας που εμφανίζεται στο πάνω μέρος της οθόνης VICIDIAL πράκτορα. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 24 ώρες χρόνο
+ US_SLASH_24HR 06/24/2008 23:59:59 - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 24 ώρες χρόνο
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 24 ώρες χρόνο
+ AL_TEXT_24HR JUN 24 23:59:59 - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 24 ώρες χρόνο
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 12 ώρες χρόνο
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 12 ώρες χρόνο
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 12 ώρες χρόνο
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 12 ώρες χρόνο
+ +
+
+
+ Agent Screen Πελατών Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή των πελατών ζώνη ώρας ημερομηνία που εμφανίζεται στο πάνω μέρος της πληροφόρησης πελατών τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 24 ώρες χρόνο
+ US_SLASH_24HR 06/24/2008 23:59:59 - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 24 ώρες χρόνο
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 24 ώρες χρόνο
+ AL_TEXT_24HR JUN 24 23:59:59 - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 24 ώρες χρόνο
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 12 ώρες χρόνο
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 12 ώρες χρόνο
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 12 ώρες χρόνο
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 12 ώρες χρόνο
+ +
+
+
+ Agent Screen Πελατών τηλέφωνο Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή του πελάτη τον αριθμό τηλεφώνου που εμφανίζεται στην κατάσταση τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι US_PARN
+ US_DASH 000-000-0000 - USA παύλα διαχωρίζονται αριθμό τηλεφώνου
+ US_PARN (000)000-0000 - USA παύλα αριθμός διαχωρίζονται με τον κωδικό περιοχής σε παρένθεση
+ MS_NODS 0000000000 - Δεν μορφοποίησης
+ UK_DASH 00 0000-0000 - UK παύλα διαχωρίζονται αριθμό τηλεφώνου με το διάστημα μετά την πόλη κωδικός
+ AU_SPAC 000 000 000 - Australia χώρος χωρίζεται αριθμό τηλεφώνου
+ IT_DASH 0000-000-000 - Italy παύλα διαχωρίζονται αριθμό τηλεφώνου
+ FR_SPAC 00 00 00 00 00 - France χώρος χωρίζεται αριθμό τηλεφώνου
+ +
+
+
+ Agent interface API Access Ενεργό - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Agent Μόνο Callback Καμπάνια Lock - Αυτή η επιλογή καθορίζει αν οι callbacks AGENTONLY κλειδώνεται στην καμπάνια που δημιούργησε ο αντιπρόσωπος τους αρχικά στο πλαίσιο. Η ρύθμιση αυτής προς 1 σημαίνει ότι ο αντιπρόσωπος μπορεί να καλέσετε τους μόνο από την εκστρατεία που είχαν καθοριστεί στο πλαίσιο, 0 σημαίνει ότι ο αντιπρόσωπος μπορεί να έχει πρόσβαση αυτά δεν έχει σημασία ποια καμπάνια είναι συνδεδεμένοι στο. Προεπιλογή είναι 1. + +
+
+
+ Κεντρική Sound Control Ενεργό - Αυτή η επιλογή καθορίζει αν το ηχητικό σύστημα συγχρονισμού δραστηριοποιείται σε όλους τους servers. Προεπιλογή είναι 0 για το ανενεργό. + +
+
+
+ Ήχοι Web Server - Αυτό είναι το όνομα του διακομιστή ή τη διεύθυνση IP του web server που θα χειρίζεται τα αρχεία ήχου με αυτό το σύστημα, αυτό πρέπει να ταιριάζει με το όνομα του διακομιστή ή την IP του μηχανήματος που προσπαθείτε να αποκτήσετε πρόσβαση στο audio_store.php την ιστοσελίδα ή δεν θα λειτουργήσει . Προεπιλογή είναι 127.0.0.1. + +
+
+
+ Ήχοι Web Directory - Αυτό που δημιουργείται αυτόματα για όνομα καταλόγου δημιουργείται τυχαία από το σύστημα ως το μέρος που η ακουστική κατάστημα θα διατηρηθεί. Όλα τα μουσικά αρχεία θα διαμένουν σε αυτόν τον κατάλογο. + +
+
+
+ Ενεργή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Server - Σε πολλά συστήματα server, αυτό είναι ο διακομιστής που θα χειριστεί όλα τα τηλεφωνητή κουτιά. Αυτός ο διακομιστής είναι επίσης όταν η dial-in δημιουργείται ζητά θα φορτωθεί από το 8168 εγγραφές. + +
+
+
+ Εξερχόμενο Auto-Dial Ενεργό - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τον εξερχόμενο αυτόματης κλήσης εντός VICIDIAL, θέτοντας σε αυτόν τον τομέα θα 0 αφαίρεση των καταλόγων και ΦΙΛΤΡΑ πολλά τμήματα και τομείς από το Εκστρατεία Τροποποίηση οθόνες. Εγχειρίδιο εισόδου κλήσης θα εξακολουθεί να είναι εντός των επιτρεπομένων από τον αντιπρόσωπο της οθόνης, αλλά δεν κατάλογο κλήσης θα είναι δυνατή. Η προεπιλογή είναι 1 για ενεργή. + +
+
+
+ Ratio Dial Limit - Αυτό είναι το ανώτατο όριο του επιπέδου αυτόματη κλήση στην οθόνη εκστρατεία. + +
+
+
+ Max ΣΥΜΠΛΗΡΩΣΤΕ ζητεί ανά Δεύτερη - Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το auto-ΣΥΜΠΛΗΡΩΣΤΕ εξερχό auto-κλήση δέσμης ενεργειών για όλους τους διακομιστές, ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 200. Η προεπιλογή είναι 40. + +
+
+
+ Επιτρέψτε Custom dialplan Καταχωρήσεις - Αυτή η επιλογή σας επιτρέπει να εισάγετε έθιμο dialplan γραμμές στο Call μενού. Προεπιλογή είναι 0 για το ανενεργό. + +
+
+
+ Χρήστης Εδάφη Ενεργό - Η ρύθμιση αυτή σας επιτρέπει να ενεργοποιήσετε το χρήστη setttings Εδάφη από την οθόνη τροποποίηση χρήστη. Αυτό το χαρακτηριστικό προστέθηκε ώστε να υπάρχει μεγαλύτερη ενοποίηση με μια προσαρμοσμένη εγκατάσταση vtiger αλλά μπορεί να έχει εφαρμογές σε ένα καθαρό ViciDial συστήματος. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες. + +
+
+
+ Ενεργοποίηση Δεύτερη Webform - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Ενεργοποίηση TTS Ολοκλήρωσης - Η ρύθμιση αυτή σας επιτρέπει να ενεργοποιήσετε Κείμενο Προς ολοκλήρωση Ομιλία με Cepstral. Αυτό είναι προς το παρόν διαθέσιμο μόνο για το εξερχόμενο εκστρατειών τύπου Έρευνα. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες. + +
+
+
+ QC Χαρακτηριστικά Ενεργό - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τη QC ή Ποιοτικός Έλεγχος χαρακτηριστικά. Η προεπιλογή είναι 0 για το ανενεργό. + +
+
+
+ Επιτρέψτε την αναγραφή QueueMetrics - αυτή η ρύθμιση επιτρέπεισε σας για να καθορίσει εάν VICIDIAL θα παρεμβάλει τιςκαταχωρήσεις κούτσουρων στον πίνακα βάσεων δεδομένων queue_logόπως η δραστηριότητα σειρών αναμονής αστερίσκων. ΤοQueueMetrics είναι ένα πρόγραμμα αυτόνομης, ανάλυσηςκλείνω-πηγής στατιστικό. Πρέπει που εγκαταστάθηκε ήδη ναδιαμορφώσετε QueueMetrics και πρίν επιτρέπετε αυτό τοχαρακτηριστικό γνώρισμα. Η προεπιλογή είναι 0. + +
+
+
+ QueueMetrics κεντρικός υπολογιστής IP - αυτό είναι ηδιεύθυνση IP της βάσης δεδομένων για την εγκατάστασηQueueMetrics σας. + +
+
+
+ QueueMetrics όνομα βάσεων δεδομένων - αυτό είναι το όνομαβάσεων δεδομένων για τη βάση δεδομένων QueueMetrics σας. + +
+
+
+ QueueMetrics σύνδεση βάσεων δεδομένων - αυτό είναι το όνομαχρηστών που χρησιμοποιείται για να συνδεθεί στη βάση δεδομένωνQueueMetrics σας. + +
+
+
+ QueueMetrics κωδικός πρόσβασης βάσεων δεδομένων - αυτό είναιο κωδικός πρόσβασης που χρησιμοποιείται για να συνδεθεί στη βάσηδεδομένων QueueMetrics σας. + +
+
+
+ QueueMetrics URL - αυτό είναι η διεύθυνση URL ήιστοχώρων που χρησιμοποιείται για να φτάσει στην εγκατάστασηQueueMetrics σας. + +
+
+
+ QueueMetrics ταυτότητα κούτσουρων - αυτό είναι η ταυτότητακεντρικών υπολογιστών που όλα τα κούτσουρα VICIDIAL πουπηγαίνουν στη βάση δεδομένων QueueMetrics θα χρησιμοποιήσουν ωςπροσδιοριστικό για κάθε αρχείο. + +
+
+
+ QueueMetrics EnterQueue Prepend - αυτός ο τομέαςχρησιμοποιείται για να επιτρέψει ένας από τους τομείς στοιχείωνvicidial_list μπροστά από τον τηλεφωνικό αριθμό του πελάτη γιατις προσαρμοσμένες εκθέσεις QueueMetrics. Η προεπιλογή δενείναι ΚΑΜΙΑ για να μην εποικήσει τίποτα. + +
+
+
+ Ενεργοποίηση Vtiger Ένταξη - Η ρύθμιση αυτή σας δίνει τη δυνατότητα να επιτρέψει την ένταξη Vtiger με VICIDIAL. Σήμερα Vtiger συνδέσμους προς admin και αναζήτησης του χρήστη, καθώς και την αντιγραφή είναι τα μόνα διαθέσιμα στοιχεία ολοκλήρωσης. Η προεπιλογή είναι 0. + +
+
+
+ Vtiger ΣΠ IP Διακομιστή - Αυτή είναι η διεύθυνση IP της βάσης δεδομένων για την εγκατάσταση Vtiger. + +
+
+
+ Vtiger Database Name - Αυτό είναι το όνομα της βάσης δεδομένων για την βάση δεδομένων σας Vtiger. + +
+
+
+ Σύνδεση Vtiger Database - Αυτό είναι το όνομα χρήστη που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων. + +
+
+
+ Vtiger Database Password - Αυτό είναι το κωδικό πρόσβασης που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων. + +
+
+
+ Vtiger URL - Αυτό είναι το URL ή διεύθυνση web site που χρησιμοποιείται για να σας Vtiger εγκατάσταση. + + +



+ + VICIDIAL_STATUSES ΠΙΝΑΚΑΣ

+
+
+ Μέσω της χρήσης των θέσεων συστημάτων, μπορείτε να έχετε τιςθέσεις που υπάρχουν για την εκστρατεία και την-ΟΜΑΔΑ. Η θέσηπρέπει να είναι 1-6 χαρακτήρες στο μήκος, η περιγραφή πρέπεινα είναι 2-30 χαρακτήρες στο μήκος και επιλέξιμος καθορίζειεάν παρουσιάζει σε VICIDIAL ως διάθεση πρακτόρων. Ο τομέαςχρησιμοποιείται κατά τον υπολογισμό του ποσοστού πτώσης, ήεγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θα χρησιμοποιήσειαυτήν την θέση κατά υπολογισμό των ανθρώπινος-απαντημένωνκλήσεων. Η επιλογή κατηγορίας επιτρέπει σε σας για ναομαδοποιήσει διάφορες θέσεις σε ένα catogy που μπορεί ναχρησιμοποιηθεί για τη στατιστική ανάλυση. Υπάρχουν επίσης 5 επιπλέον ρυθμίσεις που θα καθορίσει το είδος της κατάστασης: πώληση, DNC, επικοινωνήστε με τον πελάτη, δεν ενδιαφέρονται, ανεφάρμοστη. +



-



- -SYSTEM_SETTINGS ΠΙΝΑΚΑΣ

-
-
-Μη-λατινικά χρήσης - αυτή η επιλογή επιτρέπει σε σας για ναπροκαθορίσει το χειρόγραφο επίδειξης Ιστού για να χρησιμοποιήσειUTF8 τους χαρακτήρες και να μην κάνει οποιαδήποτε φιλτράρισμαλατινικός-χαρακτήρας-οικογενειακής κανονική έκφρασης ήμορφοποίηση επίδειξης. Η προεπιλογή είναι 0. - -
-
-
-Webroot writable - αυτή η ρύθμιση επιτρέπει σε σας για νακαθορίσει εάν temp τα αρχεία και τα αρχεία επικύρωσης πρέπεινα τοποθετηθούν στο webroot στον κεντρικό υπολογιστή δικτύουσας. Η προεπιλογή είναι 1. - -
-
-
-VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη - αυτός ο τομέας χρησιμοποιείται για να επιλέξει πότε για ναπαρουσιάσει σε έναν πράκτορα πότε η σύνοδός τους έχει τεθείεκτός λειτουργίας από το σύστημα, μια δράση διευθυντών ή απόένα εξωτερικό μέτρο. Η ρύθμιση NOT_ACTIVE θα θέσει εκτόςλειτουργίας το μήνυμα στην οθόνη πρακτόρων. Η ρύθμισηLIVE_ΧΕΙΡΙΣΤΗΣθα επιδείξει μόνο το εκτός λειτουργίας μήνυμα όταναφαιρεθεί το αρχείο πρακτόρων vicidial_auto_calls, όπως κατάτη διάρκεια μιας αποσύνδεσης δύναμης ή της αποσύνδεσης έκτακτηςανάγκης. - -
-
-
-Επιτρέψτε τα μηνύματα SIPSAK - εάν θέστε 1, αυτό θα επιτρέψειτον τηλεφωνικό πίνακα θέτοντας για να εργαστεί κατάλληλα, οκεντρικός υπολογιστής θα στείλει τα μηνύματα στο τηλέφωνοΓΟΥΛΙΏΝ στην επίδειξη στην τηλεφωνική LCD επίδειξη ότανσυνδέεται με VICIDIAL. Αυτό το χαρακτηριστικό γνώρισμαλειτουργεί μόνο με τα τηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak τηνεφαρμογή για να εγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Ηπροεπιλογή είναι 0. - -
-
-
-Agent API Ενεργό - Αν οριστεί σε 1, αυτό θα επιτρέψει τη διασύνδεση API γραφείο να λειτουργεί. Η προεπιλογή είναι 0. - -
-
-
-Σπίτι URL Admin - αυτό είναι η διεύθυνση URL ήιστοχώρων ότι θα πάτε εάν χτυπήσετε στην ΕΓΧΏΡΙΑ σύνδεση στηνκορυφή της σελίδας admin.php. - -
-
-
-Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων - αυτή ηεπιλογή θα καταγράψει σε ένα αρχείο ημερολογίου κειμένων στοwebserver κάθε φορά που μεταφέρεται μια κλήση σε ένανπράκτορα. Η προεπιλογή είναι 0, άτομα με ειδικές ανάγκες. - -
-
-
-Ώρα ρολόι Τέλος της ημέρας - Αυτή η ρύθμιση καθορίζει, όταν όλοι οι χρήστες θα πρέπει να συνδεθεί αυτόματα από το σύστημα timeclock. Μόνο εκτελείται μία φορά την ημέρα. πρέπει να είναι μόνο 4 ψηφία ψηφίο 2 ώρες και 2 λεπτά ψηφίο στο 24ωρο διάστημα. Η προεπιλογή είναι 0000. - -
-
-
-ΤελευταίαΏρα ρολόι Auto Αποσύνδεση - Αυτό το πεδίο εμφανίζει την ημερομηνία της τελευταίας αυτόματη αποσύνδεση. - -
-
-
-Agent Screen Επικεφαλίδας Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή της ημερομηνίας που εμφανίζεται στο πάνω μέρος της οθόνης VICIDIAL πράκτορα. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι MS_DASH_24HR
-MS_DASH_24HR 2008-06-24 23:59:59 - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 24 ώρες χρόνο
-US_SLASH_24HR 06/24/2008 23:59:59 - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 24 ώρες χρόνο
-EU_SLASH_24HR 24/06/2008 23:59:59 - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 24 ώρες χρόνο
-AL_TEXT_24HR JUN 24 23:59:59 - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 24 ώρες χρόνο
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 12 ώρες χρόνο
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 12 ώρες χρόνο
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 12 ώρες χρόνο
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 12 ώρες χρόνο
- -
-
-
-Agent Screen Πελατών Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή των πελατών ζώνη ώρας ημερομηνία που εμφανίζεται στο πάνω μέρος της πληροφόρησης πελατών τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι AL_TEXT_AMPM
-MS_DASH_24HR 2008-06-24 23:59:59 - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 24 ώρες χρόνο
-US_SLASH_24HR 06/24/2008 23:59:59 - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 24 ώρες χρόνο
-EU_SLASH_24HR 24/06/2008 23:59:59 - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 24 ώρες χρόνο
-AL_TEXT_24HR JUN 24 23:59:59 - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 24 ώρες χρόνο
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 12 ώρες χρόνο
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 12 ώρες χρόνο
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 12 ώρες χρόνο
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 12 ώρες χρόνο
- -
-
-
-Agent Screen Πελατών τηλέφωνο Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή του πελάτη τον αριθμό τηλεφώνου που εμφανίζεται στην κατάσταση τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι US_PARN
-US_DASH 000-000-0000 - USA παύλα διαχωρίζονται αριθμό τηλεφώνου
-US_PARN (000)000-0000 - USA παύλα αριθμός διαχωρίζονται με τον κωδικό περιοχής σε παρένθεση
-MS_NODS 0000000000 - Δεν μορφοποίησης
-UK_DASH 00 0000-0000 - UK παύλα διαχωρίζονται αριθμό τηλεφώνου με το διάστημα μετά την πόλη κωδικός
-AU_SPAC 000 000 000 - Australia χώρος χωρίζεται αριθμό τηλεφώνου
-IT_DASH 0000-000-000 - Italy παύλα διαχωρίζονται αριθμό τηλεφώνου
-FR_SPAC 00 00 00 00 00 - France χώρος χωρίζεται αριθμό τηλεφώνου
- -
-
-
-Agent interface API Access Ενεργό - This option allows you to enable or disable the agent interface API. Default is 0. - -
-
-
-QC Χαρακτηριστικά Ενεργό - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τη QC ή Ποιοτικός Έλεγχος χαρακτηριστικά. Η προεπιλογή είναι 0 για το ανενεργό. - -
-
-
-Εξερχόμενο Auto-Dial Ενεργό - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τον εξερχόμενο αυτόματης κλήσης εντός VICIDIAL, θέτοντας σε αυτόν τον τομέα θα 0 αφαίρεση των καταλόγων και ΦΙΛΤΡΑ πολλά τμήματα και τομείς από το Εκστρατεία Τροποποίηση οθόνες. Εγχειρίδιο εισόδου κλήσης θα εξακολουθεί να είναι εντός των επιτρεπομένων από τον αντιπρόσωπο της οθόνης, αλλά δεν κατάλογο κλήσης θα είναι δυνατή. Η προεπιλογή είναι 1 για ενεργή. - -
-
-
-Max ΣΥΜΠΛΗΡΩΣΤΕ ζητεί ανά Δεύτερη - Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το auto-ΣΥΜΠΛΗΡΩΣΤΕ εξερχό auto-κλήση δέσμης ενεργειών για όλους τους διακομιστές, ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 200. Η προεπιλογή είναι 40. - -
-
-
-Επιτρέψτε την αναγραφή QueueMetrics - αυτή η ρύθμιση επιτρέπεισε σας για να καθορίσει εάν VICIDIAL θα παρεμβάλει τιςκαταχωρήσεις κούτσουρων στον πίνακα βάσεων δεδομένων queue_logόπως η δραστηριότητα σειρών αναμονής αστερίσκων. ΤοQueueMetrics είναι ένα πρόγραμμα αυτόνομης, ανάλυσηςκλείνω-πηγής στατιστικό. Πρέπει που εγκαταστάθηκε ήδη ναδιαμορφώσετε QueueMetrics και πρίν επιτρέπετε αυτό τοχαρακτηριστικό γνώρισμα. Η προεπιλογή είναι 0. - -
-
-
-QueueMetrics κεντρικός υπολογιστής IP - αυτό είναι ηδιεύθυνση IP της βάσης δεδομένων για την εγκατάστασηQueueMetrics σας. - -
-
-
-QueueMetrics όνομα βάσεων δεδομένων - αυτό είναι το όνομαβάσεων δεδομένων για τη βάση δεδομένων QueueMetrics σας. - -
-
-
-QueueMetrics σύνδεση βάσεων δεδομένων - αυτό είναι το όνομαχρηστών που χρησιμοποιείται για να συνδεθεί στη βάση δεδομένωνQueueMetrics σας. - -
-
-
-QueueMetrics κωδικός πρόσβασης βάσεων δεδομένων - αυτό είναιο κωδικός πρόσβασης που χρησιμοποιείται για να συνδεθεί στη βάσηδεδομένων QueueMetrics σας. - -
-
-
-QueueMetrics URL - αυτό είναι η διεύθυνση URL ήιστοχώρων που χρησιμοποιείται για να φτάσει στην εγκατάστασηQueueMetrics σας. - -
-
-
-QueueMetrics ταυτότητα κούτσουρων - αυτό είναι η ταυτότητακεντρικών υπολογιστών που όλα τα κούτσουρα VICIDIAL πουπηγαίνουν στη βάση δεδομένων QueueMetrics θα χρησιμοποιήσουν ωςπροσδιοριστικό για κάθε αρχείο. - -
-
-
-QueueMetrics EnterQueue Prepend - αυτός ο τομέαςχρησιμοποιείται για να επιτρέψει ένας από τους τομείς στοιχείωνvicidial_list μπροστά από τον τηλεφωνικό αριθμό του πελάτη γιατις προσαρμοσμένες εκθέσεις QueueMetrics. Η προεπιλογή δενείναι ΚΑΜΙΑ για να μην εποικήσει τίποτα. - -
-
-
-Ενεργοποίηση Vtiger Ένταξη - Η ρύθμιση αυτή σας δίνει τη δυνατότητα να επιτρέψει την ένταξη Vtiger με VICIDIAL. Σήμερα Vtiger συνδέσμους προς admin και αναζήτησης του χρήστη, καθώς και την αντιγραφή είναι τα μόνα διαθέσιμα στοιχεία ολοκλήρωσης. Η προεπιλογή είναι 0. - -
-
-
-Vtiger ΣΠ IP Διακομιστή - Αυτή είναι η διεύθυνση IP της βάσης δεδομένων για την εγκατάσταση Vtiger. - -
-
-
-Vtiger Database Name - Αυτό είναι το όνομα της βάσης δεδομένων για την βάση δεδομένων σας Vtiger. - -
-
-
-Σύνδεση Vtiger Database - Αυτό είναι το όνομα χρήστη που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων. - -
-
-
-Vtiger Database Password - Αυτό είναι το κωδικό πρόσβασης που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων. - -
-
-
-Vtiger URL - Αυτό είναι το URL ή διεύθυνση web site που χρησιμοποιείται για να σας Vtiger εγκατάσταση. + VICIDIAL_STATUS_CATEGORIES ΠΙΝΑΚΑΣ

+
+
+ Μέσω της χρήσης των κατηγοριών θέσης συστημάτων, μπορείτε νασυγκεντρώσετε τις θέσεις για να επιτρέψετε τη στατιστική ανάλυσησε μια ομάδα θέσεων. Η ταυτότητα κατηγορίας πρέπει να είναι2-20 χαρακτήρες στο μήκος χωρίς τα διαστήματα, το όνομαπρέπει να είναι 2-50 χαρακτήρες στο μήκος, η περιγραφή είναιπροαιρετική και η επίδειξη TimeonVDAD καθορίζει εάν εκείνη ηθέση θα είναι ενός θέσης από μέχρι 4 θέσεις που μπορούν ναυπολογιστούν και να επιδειχθούν στο χρόνο στη σε πραγματικό χρόνοέκθεση VDAD. Η Πώληση Κατηγορία και Dead επικεφαλής της κατηγορίας είναι και οι δύο που χρησιμοποιούνται από το σύστημα όταν Κατάλογος Πρόταση αναλύοντας κατάλογο στατιστικών. -



+ 0) + { + ?> +



-VICIDIAL_STATUSES ΠΙΝΑΚΑΣ

-
-
-Μέσω της χρήσης των θέσεων συστημάτων, μπορείτε να έχετε τιςθέσεις που υπάρχουν για την εκστρατεία και την-ΟΜΑΔΑ. Η θέσηπρέπει να είναι 1-6 χαρακτήρες στο μήκος, η περιγραφή πρέπεινα είναι 2-30 χαρακτήρες στο μήκος και επιλέξιμος καθορίζειεάν παρουσιάζει σε VICIDIAL ως διάθεση πρακτόρων. Ο τομέαςχρησιμοποιείται κατά τον υπολογισμό του ποσοστού πτώσης, ήεγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θα χρησιμοποιήσειαυτήν την θέση κατά υπολογισμό των ανθρώπινος-απαντημένωνκλήσεων. Η επιλογή κατηγορίας επιτρέπει σε σας για ναομαδοποιήσει διάφορες θέσεις σε ένα catogy που μπορεί ναχρησιμοποιηθεί για τη στατιστική ανάλυση. - - -



- -VICIDIAL_STATUS_CATEGORIES ΠΙΝΑΚΑΣ

-
-
-Μέσω της χρήσης των κατηγοριών θέσης συστημάτων, μπορείτε νασυγκεντρώσετε τις θέσεις για να επιτρέψετε τη στατιστική ανάλυσησε μια ομάδα θέσεων. Η ταυτότητα κατηγορίας πρέπει να είναι2-20 χαρακτήρες στο μήκος χωρίς τα διαστήματα, το όνομαπρέπει να είναι 2-50 χαρακτήρες στο μήκος, η περιγραφή είναιπροαιρετική και η επίδειξη TimeonVDAD καθορίζει εάν εκείνη ηθέση θα είναι ενός θέσης από μέχρι 4 θέσεις που μπορούν ναυπολογιστούν και να επιδειχθούν στο χρόνο στη σε πραγματικό χρόνοέκθεση VDAD. Η Πώληση Κατηγορία και Dead επικεφαλής της κατηγορίας είναι και οι δύο που χρησιμοποιούνται από το σύστημα όταν Κατάλογος Πρόταση αναλύοντας κατάλογο στατιστικών. - - - 0) - { + QC VICIDIAL κωδικοί

+
+
+ Ο Ποιοτικός Έλεγχος-QC σύστημα εντός VICIDIAL έχει τους δικούς της κωδικοί χωριστά από εκείνα που, κατά την κλήση των λειτουργιών χειρισμού VICIDIAL. QC statuse κωδικοί πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες και δεν περιέχουν ειδικούς χαρακτήρες όπως ένα χώρο ή παχέος εντέρου. Ο κωδικός QC περιγραφή πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες. + -



- QC VICIDIAL κωδικοί

-
-
- Ο Ποιοτικός Έλεγχος-QC σύστημα εντός VICIDIAL έχει τους δικούς της κωδικοί χωριστά από εκείνα που, κατά την κλήση των λειτουργιών χειρισμού VICIDIAL. QC statuse κωδικοί πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες και δεν περιέχουν ειδικούς χαρακτήρες όπως ένα χώρο ή παχέος εντέρου. Ο κωδικός QC περιγραφή πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες. -






+







+ ΤΕΛΟΣ +
+ - - - -







-







-ΤΕΛΟΣ -
-\n"; - echo "\n"; - echo "\n"; - echo ""; - - $stmt="SELECT dial_statuses,local_call_time,lead_filter_id from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $dial_statuses = $row[0]; - $local_call_time = $row[1]; - if ($lead_filter_id=='') { - $lead_filter_id = $row[2]; - if ($lead_filter_id=='') + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') { - $lead_filter_id='NONE'; + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Εμφάνιση Μετρητή Κληθέντων Οδηγών -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "ΛΙΣΤΕΣ: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; } - - $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; - $rslt=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rslt); - $camp_lists=''; - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; - if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} - } - $camp_lists = eregi_replace(".$","",$camp_lists); - - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} else - {$fSQL = '';} - - - echo "

\n"; - echo "Εμφάνιση Μετρητή Κληθέντων Οδηγών -

\n"; - echo "CAMPAIGN: $campaign_id
\n"; - echo "ΛΙΣΤΕΣ: $camp_lists
\n"; - echo "STATUSES: $dial_statuses
\n"; - echo "FILTER: $lead_filter_id
\n"; - echo "CALL TIME: $local_call_time

\n"; - - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - - echo "

\n"; - echo "\n"; - - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } - else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; - } -} ###################### @@ -5145,7 +6158,7 @@ if ($ADD==7111111) $country_code = 'USA'; $gender = 'M'; $date_of_birth = '1970-01-01'; - $alt_phone = '3125551212'; + $alt_phone = '3125551111'; $email = 'test@test.com'; $security_phrase = 'SECUTIRY'; $comments = 'COMMENTS FIELD'; @@ -5163,17 +6176,32 @@ if ($ADD==7111111) $RGserver_ip = '10.10.10.15'; $RGSIPexten = 'SIP/gs102'; $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; echo "\n"; echo "\n"; echo "\n"; echo ""; - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $script_name = $row[1]; - $script_text = $row[3]; + $script_text = stripslashes($row[3]); if (eregi("iframe src",$script_text)) { @@ -5214,6 +6242,21 @@ if ($ADD==7111111) $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); } $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); @@ -5254,6 +6297,21 @@ if ($ADD==7111111) $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); $script_text = eregi_replace("\n","
",$script_text); @@ -5293,6 +6351,17 @@ if ($ADD=="1") { if ($LOGmodify_users==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; @@ -5300,7 +6369,14 @@ if ($ADD=="1") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Αριθμός Χρήστη: $NWB#vicidial_users-user$NWE
Αριθμός Χρήστη: Auto-Generated $NWB#vicidial_users-user$NWE
Αριθμός Χρήστη: $NWB#vicidial_users-user$NWE
Κωδικός:$NWB#vicidial_users-pass$NWE
Πλήρες Ονομα: $NWB#vicidial_users-full_name$NWE
Επίπεδο Χρήστη:
\n"; echo ""; @@ -5356,7 +6443,14 @@ if ($ADD=="1A") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -5398,26 +6492,99 @@ if ($ADD==11) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Αριθμός Χρήστη: $NWB#vicidial_users-user$NWE
Αριθμός Χρήστη: Auto-Generated $NWB#vicidial_users-user$NWE
Αριθμός Χρήστη: $NWB#vicidial_users-user$NWE
Κωδικός:$NWB#vicidial_users-pass$NWE
Πλήρες Ονομα: $NWB#vicidial_users-full_name$NWE
\n"; echo ""; echo "
ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΕΚΣΤΡΑΤΕΙΑΣ
\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; @@ -5428,7 +6595,11 @@ if ($ADD==11) echo "\n"; - echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID Εκστρατείας: $NWB#vicidial_campaigns-campaign_id$NWE
ID Εκστρατείας: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Εκστρατείας: $NWB#vicidial_campaigns-campaign_id$NWE
Ονομα Εκστρατείας: $NWB#vicidial_campaigns-campaign_name$NWE
Περιγραφή εκστρατείας: $NWB#vicidial_campaigns-campaign_description$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Τηλ.σύνδ. Στάθμευσης: $NWB#vicidial_campaigns-park_ext$NWE
Ονομα Αρχείου Στάθμευσης: $NWB#vicidial_campaigns-park_file_name$NWE
Ιστο-σελίδα: $NWB#vicidial_campaigns-web_form_address$NWE
Ιστο-σελίδα: $NWB#vicidial_campaigns-web_form_address$NWE
Επιτρέπω τους Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_campaigns-next_agent_call$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_campaigns-next_agent_call$NWE
Χρόνος Τοπικής Κλήσης: $NWB#vicidial_campaigns-local_call_time$NWE
Βοηθός: $NWB#vicidial_campaigns-campaign_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_campaigns-get_call_launch$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; } @@ -5448,13 +6619,31 @@ if ($ADD==12) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ΑΝΤΙΓΡΑΨΤΕ μια ΕΚΣΤΡΑΤΕΙΑ\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID Εκστρατείας: $NWB#vicidial_campaigns-campaign_id$NWE
ID Εκστρατείας: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Εκστρατείας: $NWB#vicidial_campaigns-campaign_id$NWE
Ονομα Εκστρατείας: $NWB#vicidial_campaigns-campaign_name$NWE
Εκστρατεία πηγής:
\n"; echo ""; echo "
ADD A NEW LIST\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
ID Λίστας: (μόνο αριθμοί)$NWB#vicidial_lists-list_id$NWE
ID Λίστας: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID Λίστας: (μόνο αριθμοί)$NWB#vicidial_lists-list_id$NWE
Ονομα Λίστας: $NWB#vicidial_lists-list_name$NWE
Περιγραφή καταλόγων: $NWB#vicidial_lists-list_description$NWE
Εκστρατεία: \n"; echo "
\n"; echo "\n"; echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } echo "\n"; echo "
List:
Τηλέφωνα:

(έναν αριθμό τηλεφώνου σε κάθε γραμμή μόνο)
$NWB#vicidial_list-dnc$NWE
Προσθήκη ή Διαγραφή:
\n"; } @@ -5632,24 +6902,45 @@ if ($ADD==1111) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ΠΡΟΣΘΗΚΗ ΕΙΣΕΡΧΟΜΕΝΗΣ ΟΜΑΔΑΣ\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID Ομάδας: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
ID Ομάδας: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Ομάδας: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Ονομα Ομάδας: $NWB#vicidial_inbound_groups-group_name$NWE
Χρώμα Ομάδας: $NWB#vicidial_inbound_groups-group_color$NWE
Ενεργή:$NWB#vicidial_inbound_groups-active$NWE
Ιστο-σελίδα: $NWB#vicidial_inbound_groups-web_form_address$NWE
Ιστο-σελίδα: $NWB#vicidial_inbound_groups-web_form_address$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Μπροστινή Οθόνη: $NWB#vicidial_inbound_groups-fronter_display$NWE
Βοηθός: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; } @@ -5669,13 +6960,31 @@ if ($ADD==1211) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ΕΙΣΕΡΧΟΜΕΝΗ ΟΜΑΔΑ ΑΝΤΙΓΡΑΦΩΝ\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID Ομάδας: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
ID Ομάδας: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Ομάδας: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Ονομα Ομάδας: $NWB#vicidial_inbound_groups-group_name$NWE
Source ID Ομάδας:
\n"; + echo ""; + + echo "
ADD μια νέα κλήση MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Μενού ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Μενού ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Όνομα μενού: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Μενού ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Μενού ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Όνομα μενού: $NWB#vicidial_call_menu-menu_name$NWE
Πηγή Μενού: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + ###################### # ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN ###################### @@ -5825,13 +7242,31 @@ if ($ADD==111111) { if ($LOGmodify_usergroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ΠΡΟΣΘΗΚΗ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Ομάδα: (όχι κενά ή στίξη)$NWB#vicidial_user_groups-user_group$NWE
Ομάδα:Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Ομάδα: (όχι κενά ή στίξη)$NWB#vicidial_user_groups-user_group$NWE
Περιγραφή: (περιγραφή ομάδας)$NWB#vicidial_user_groups-group_name$NWE
\n"; @@ -5852,13 +7287,32 @@ if ($ADD==1111111) { if ($LOGmodify_scripts==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ADD NEW SCRIPT\n"; echo "\n"; + echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -5902,6 +7356,16 @@ if ($ADD==1111111) echo ""; echo ""; echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; echo ""; echo "
"; # END Insert Field @@ -5925,13 +7389,31 @@ if ($ADD==11111111) { if ($LOGmodify_filters==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Ταυτότητα χειρογράφων:: (όχι κενά ή στίξη)$NWB#vicidial_scripts-script_id$NWE
Ταυτότητα χειρογράφων:: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
Ταυτότητα χειρογράφων:: (όχι κενά ή στίξη)$NWB#vicidial_scripts-script_id$NWE
Όνομα χειρογράφων: (τίτλος του βοηθού)$NWB#vicidial_scripts-script_name$NWE
Σχόλια χειρόγραφου: $NWB#vicidial_scripts-script_comments$NWE
Ενεργή:$NWB#vicidial_scripts-active$NWE
\n"; echo ""; echo "
ΠΡΟΣΘΕΣΕ ΦΙΛΤΡΟ\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6055,6 +7537,17 @@ if ($ADD==11111111111) { if ($LOGast_admin_access==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
ID Φίλτρου: (όχι κενά ή στίξη)$NWB#vicidial_lead_filters-lead_filter_id$NWE
ID Φίλτρου: Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
ID Φίλτρου: (όχι κενά ή στίξη)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Όνομα Φίλτρου: (σύντομη περιγραφή του φίλτρου)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Σχόλια Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
SQL Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; echo ""; @@ -6063,7 +7556,14 @@ if ($ADD==11111111111) echo "
\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6235,6 +7735,7 @@ if ($ADD==141111111111) echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "
Τηλ.σύνδεσης τηλεφώνου: $NWB#phones-extension$NWE
Τηλ.σύνδεσης τηλεφώνου: Auto-Generated $NWB#phones-extension$NWE
Τηλ.σύνδεσης τηλεφώνου: $NWB#phones-extension$NWE
Αριθμός Σχεδίου Κλήσεων: (μόνο αριθμοί)$NWB#phones-dialplan_number$NWE
Τηλεφωνητής Box: (μόνο αριθμοί)$NWB#phones-voicemail_id$NWE
Εξερχόμενο CallerID: (μόνο αριθμοί)$NWB#phones-outbound_cid$NWE
Θαλαμίσκος ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Φέρον Όνομα: $NWB#vicidial_server_carriers-carrier_name$NWE
Περιγραφή Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Εγγραφή String: $NWB#vicidial_server_carriers-registration_string$NWE
Αναγνωριστικό:
\n"; + echo ""; + + echo "
Προσθήκη νέου TTS ΕΙΣΟΔΟΣ\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Όνομα: $NWB#vicidial_tts_prompts-tts_name$NWE
Ενεργή:
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Προσθήκη νέουMusic on Hold ΕΙΣΟΔΟΥ\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $NWB#vicidial_music_on_hold-moh_id$NWE
Music Hold On Όνομα: $NWB#vicidial_music_on_hold-moh_name$NWE
Τυχαία σειρά:
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Προσθήκη νέου ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Ενεργή:
Email:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + ###################### # ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN ###################### @@ -6363,6 +7956,20 @@ if ($ADD==11111111111111) if ($ADD=="2") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6375,13 +7982,14 @@ if ($ADD=="2") { $user = 'AUTOGENERA'; } - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) { - echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
πρέπει να επιλέξετε μια ομάδα χρηστών\n"; } - else + else { if (ereg('AUTOGENERA',$user)) { @@ -6499,8 +8107,8 @@ if ($ADD=="2") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6508,7 +8116,7 @@ if ($ADD=="2") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6630,6 +8238,20 @@ if ($ADD=="2") if ($ADD=="2A") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6638,14 +8260,14 @@ if ($ADD=="2A") {echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας χρήστης με αυτό τον αριθμό\n";} else { - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) { - echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - echo "\n"; + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "\n"; } - else + else { if (ereg('AUTOGEN',$user)) { @@ -6684,7 +8306,7 @@ if ($ADD=="2A") $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; $rslt=mysql_query($stmt, $link); } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -6767,8 +8389,8 @@ if ($ADD=="2A") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6776,7 +8398,7 @@ if ($ADD=="2A") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6903,6 +8525,20 @@ if ($ADD=="2A") if ($ADD==21) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6918,17 +8554,17 @@ if ($ADD==21) {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) { - echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; - echo "
το όνομα της εκστρατείας πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες\n"; + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + echo "
το όνομα της εκστρατείας πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες\n"; } - else + else { echo "
ΕΚΣΤΡΑΤΕΙΑ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED');"; + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; @@ -6953,6 +8589,20 @@ if ($ADD==21) if ($ADD==20) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6961,41 +8611,49 @@ if ($ADD==20) {echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εκστρατεία με αυτό το ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else { - echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; - echo "
source το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; - } - else - { - echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + echo "
source το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias from vicidial_campaigns where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=31; @@ -7022,17 +8680,17 @@ if ($ADD==22) {echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία καθολική-κατάσταση με αυτό το όνομα\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; - echo "
το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες\n"; + echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; + echo "
το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες\n"; } - else + else { echo "
ΚΑΤΑΣΤΑΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id - $status\n"; - $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -7068,13 +8726,13 @@ if ($ADD==23) {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
hotkey must be a single character between 1 and 9 \n"; - echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; + echo "
ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; } - else + else { echo "
ΚΛΕΙΔΙ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id - $status - $hotkey\n"; @@ -7110,14 +8768,14 @@ if ($ADD==25) {echo "
ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - υπάρχει ήδη έναςμόλυβδος-ανακύκλωσης για αυτήν την εκστρατεία με αυτήν την θέση\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - παρακαλώ επιστρέψτεκαι εξετάστε τα στοιχεία που εισαγάγατε\n"; - echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; - echo "
η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα και λιγότερο από 43.200 δευτερολέπτων ή 12 ωρών\n"; - echo "
οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10\n"; + echo "
ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - παρακαλώ επιστρέψτεκαι εξετάστε τα στοιχεία που εισαγάγατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + echo "
η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα και λιγότερο από 43.200 δευτερολέπτων ή 12 ωρών\n"; + echo "
οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10\n"; } - else + else { echo "
ΠΡΟΣΤΙΘΕΜΕΝΟΣ ΟΔΗΓΟΣ ΑΝΑΚΥΚΛΩΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status - $attempt_delay\n"; @@ -7153,12 +8811,12 @@ if ($ADD==26) {echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ - υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτήν τηνθέση\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; } - else + else { echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ: $campaign_id - $status\n"; @@ -7199,13 +8857,13 @@ if ($ADD==27) {echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτόν τονκώδικα μικρής διακοπής\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
pause code must be between 1 and 6 characters in length\n"; - echo "
pause κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; + echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; } - else + else { echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ: $campaign_id - $pause_code - $pause_code_name\n"; @@ -7241,12 +8899,12 @@ if ($ADD==28) {echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτήν τηνθέση\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; } - else + else { echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ: $campaign_id - $status\n"; @@ -7279,6 +8937,20 @@ if ($ADD==28) if ($ADD==211) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); @@ -7287,14 +8959,14 @@ if ($ADD==211) {echo "
Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία λίστα με αυτό το ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) { - echo "
Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Το ID λίστας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; - echo "
Το όνομα λίστας πρέπει να είναι 2 χαρακτήρες\n"; - echo "
ID Λίστας must be greater than 100\n"; - } - else + echo "
Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID λίστας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + echo "
Το όνομα λίστας πρέπει να είναι 2 χαρακτήρες\n"; + echo "
ID Λίστας must be greater than 100\n"; + } + else { echo "
ΛΙΣΤΑ ΠΡΟΣΤΕΘΗΚΕ: $list_id\n"; @@ -7321,6 +8993,20 @@ if ($ADD==211) if ($ADD==2111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7336,15 +9022,15 @@ if ($ADD==2111) {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) { - echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες ' -+'.\n"; - echo "
Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες ' -+'.\n"; + echo "
Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch');"; + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,web_form_address_two,start_call_url,dispo_call_url) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; @@ -7372,6 +9058,20 @@ if ($ADD==2111) if ($ADD==2011) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7380,26 +9080,34 @@ if ($ADD==2011) {echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία ομάδα με αυτό το ID\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else { - echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες ' -+'.\n"; - echo "
Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else - { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias from vicidial_inbound_groups where group_id=\"$source_group_id\";"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες ' -+'.\n"; + echo "
Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); - echo "
ΟΜΑΔΑ ΠΡΟΣΤΕΘΗΚΕ: $group_id\n"; + echo "
ΟΜΑΔΑ ΠΡΟΣΤΕΘΗΚΕ: $group_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN ΕΙΣΕΡΧΟΜΕΝΗ ΟΜΑΔΑ ΑΝΤΙΓΡΑΦΩΝ', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN ΕΙΣΕΡΧΟΜΕΝΗ ΟΜΑΔΑ ΑΝΤΙΓΡΑΦΩΝ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=3111; @@ -7427,12 +9135,12 @@ if ($ADD==2311) {echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια DID στο σύστημα με την παράταση αυτή\n";} else { - if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) { - echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; $rslt=mysql_query($stmt, $link); @@ -7472,14 +9180,14 @@ if ($ADD==2411) {echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια DID στο σύστημα με την παράταση αυτή\n";} else { - if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) { - echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code from vicidial_inbound_dids where did_id=\"$source_did\";"; + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; $rslt=mysql_query($stmt, $link); $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; @@ -7502,6 +9210,115 @@ if ($ADD==2411) } +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Καλέστε Μενού ID πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες και δεν περιέχουν ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU ADDED: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Καλέστε Μενού ID πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες και δεν περιέχουν ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU ADDED: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + ###################### # ADD=21111 adds new remote agents to the system ###################### @@ -7516,12 +9333,12 @@ if ($ADD==21111) {echo "
ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - υπάρχει ήδη καταχώρηση απομακρυσμένων χειριστών που ξεκινάει με αυτό το ID χρήστη\n";} else { - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Το ID χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else + echo "
ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else { $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; $rslt=mysql_query($stmt, $link); @@ -7546,6 +9363,20 @@ if ($ADD==21111) if ($ADD==211111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -7554,12 +9385,12 @@ if ($ADD==211111) {echo "
ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - υπάρχει ήδη μία καταχώρηση ομάδας χρήστη με αυτό το όνομα\n";} else { - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else + echo "
ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else { $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; $rslt=mysql_query($stmt, $link); @@ -7625,8 +9456,8 @@ if ($ADD==211111) else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -7634,7 +9465,7 @@ if ($ADD==211111) if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -7660,6 +9491,20 @@ if ($ADD==211111) if ($ADD==2111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); @@ -7668,16 +9513,16 @@ if ($ADD==2111111) {echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μια είσοδος χειρογράφων με αυτό το όνομα\n";} else { - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος\n"; - } - else + echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος\n"; + } + else { - $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','$script_text','$active');"; + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; $rslt=mysql_query($stmt, $link); - + if ($DB > 0) {echo "|$stmt|";} echo "
Ο ΒΟΗΘΟΣ ΠΡΟΣΤΕΘΗΚΕ: $script_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7699,6 +9544,20 @@ if ($ADD==2111111) if ($ADD==21111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; $rslt=mysql_query($stmt, $link); @@ -7707,16 +9566,17 @@ if ($ADD==21111111) {echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα φίλτρο με αυτό το ID\n";} else { - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
ID φίλτρου, όνομα και SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else + echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID φίλτρου, όνομα και SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else { - $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='$lead_filter_sql';"; + $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
ΤΟ ΦΙΛΤΡΟ ΠΡΟΣΤΕΘΗΚΕ: $lead_filter_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7746,15 +9606,16 @@ if ($ADD==211111111) {echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - υπάρχει ήδη μία εγγραφή χρόνου κλήσης με αυτό το ID\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το ID Χρόνου Κλήσης και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else + echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else { $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
ΠΡΟΣΘΗΚΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ: $call_time_id\n"; @@ -7785,15 +9646,16 @@ if ($ADD==2111111111) {echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εγγραφή χρόνου κλήσης με αυτό το ID\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες \n"; - } - else + echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες \n"; + } + else { $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
ΠΡΟΣΘΗΚΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ: $call_time_id\n"; @@ -7816,6 +9678,20 @@ if ($ADD==2111111111) if ($ADD==231111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; $rslt=mysql_query($stmt, $link); @@ -7825,14 +9701,14 @@ if ($ADD==231111111) else { $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - echo "
SHIFT ΟΡΙΣΜΟΣ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
ID Shift και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - echo "
Shift ώρα έναρξης πρέπει να είναι 4 ψηφία στο μήκος και να είναι μια έγκυρη ώρα\n"; - echo "
Shift Μήκος 5 χαρακτήρες πρέπει να είναι σε μήκος και να είναι 24 ώρες ή λιγότερο\n"; - } - else + echo "
SHIFT ΟΡΙΣΜΟΣ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID Shift και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Shift ώρα έναρξης πρέπει να είναι 4 ψηφία στο μήκος και να είναι μια έγκυρη ώρα\n"; + echo "
Shift Μήκος 5 χαρακτήρες πρέπει να είναι σε μήκος και να είναι 24 ώρες ή λιγότερο\n"; + } + else { $p=0; $shift_weekdays_ct = count($shift_weekdays); @@ -7843,6 +9719,7 @@ if ($ADD==231111111) } $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
SHIFT ΠΡΟΣΤΙΘΕΜΕΝΗ:$shift_id\n"; @@ -7865,6 +9742,20 @@ if ($ADD==231111111) if ($ADD==21111111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; $rslt=mysql_query($stmt, $link); @@ -7887,25 +9778,36 @@ if ($ADD==21111111111) {echo "
PHONE NOT ADDED - υπάρχει ήδη ένα τηλέφωνο άλλως στο σύστημα με αυτή τη σύνδεση\n";} else { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID in the system with this ID\n";} + else { - echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΠΡΟΣΤΕΘΗΚΕ\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Τα παρακάτω πεδία πρέπει να διαθέτουν στοιχεία: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΠΡΟΣΤΕΘΗΚΕ\n"; - $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } @@ -7935,9 +9837,9 @@ if ($ADD==22111111111) {echo "
PHONE ALIAS δεν προστίθενται - υπάρχει ήδη μια Τηλέφωνο Σύνδεση στο σύστημα με αυτό το ID\n";} else { - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) {echo "
PHONE ALIAS δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else + else { echo "
PHONE ALIAS ΠΡΟΣΤΙΘΕΜΕΝΗ\n"; @@ -7976,9 +9878,9 @@ if ($ADD==23111111111) {echo "
ΟΜΑΔΑ ALIAS δεν προστίθενται - δεν μπορείτε να χρησιμοποιήσετε τις δεσμευμένες λέξεις της ομάδας ψευδώνυμα\n";} else { - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) {echo "
ΟΜΑΔΑ ALIAS δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else + else { echo "
ΟΜΑΔΑ ALIAS ΠΡΟΣΤΙΘΕΜΕΝΗ\n"; @@ -8013,16 +9915,16 @@ if ($ADD==211111111111) {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το ID\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + else { echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΠΡΟΣΤΕΘΗΚΕ\n"; $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; $rslt=mysql_query($stmtA, $link); ### LOG INSERTION Admin Log Table ### @@ -8068,14 +9970,14 @@ if ($ADD==221111111111) {echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εγγραφή-κορμού στον εξυπηρετητή για την εκστρατεία\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) { - echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος\n"; - echo "
η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες\n"; - echo "
οι κορμοί πρέπει να είναι ένα ψηφίο από 0 έως 9999\n"; + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος\n"; + echo "
η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες\n"; + echo "
οι κορμοί πρέπει να είναι ένα ψηφίο από 0 έως 9999\n"; } - else + else { echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; @@ -8110,9 +10012,9 @@ if ($ADD==231111111111) {echo "
ΠΙΣΤ TEMPLATE δεν προστίθενται - υπάρχει ήδη ένα πρότυπο σε αυτό το σύστημα, με αυτό το ID\n";} else { - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) {echo "
ΠΙΣΤ TEMPLATE δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else + else { echo "
ΠΙΣΤ TEMPLATE ΠΡΟΣΤΙΘΕΜΕΝΗ\n"; @@ -8146,13 +10048,13 @@ if ($ADD==241111111111) {echo "
ΘΑΛΑΜΙΣΚΟ δεν προστίθενται - υπάρχει ήδη ένα μεταφορέα στο σύστημα με αυτό το ID\n";} else { - if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) {echo "
ΘΑΛΑΜΙΣΚΟ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else + else { echo "
CARRIER ADDED\n"; - $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N');"; + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; $rslt=mysql_query($stmt, $link); $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; @@ -8171,6 +10073,130 @@ if ($ADD==241111111111) } +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS ΕΙΣΟΔΟΥ δεν προστίθενται - υπάρχει ήδη TTS εισόδου στο σύστημα με αυτό το αναγνωριστικό\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS ΕΙΣΟΔΟΥ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
TTS ΕΙΣΟΔΟΥ ADDED\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Music on Hold ΕΙΣΟΔΟΥ δεν προστίθενται - υπάρχει ήδη moh εισόδου στο σύστημα με αυτό το αναγνωριστικό\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music on Hold ΕΙΣΟΔΟΥ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
Music on Hold ΕΙΣΟΔΟΥ ADDED\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν προστίθενται - υπάρχει ήδη ένα φωνητικό κουτί στο σύστημα με αυτό το αναγνωριστικό\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν προστίθενται - υπάρχει ήδη ένα τηλέφωνο στο σύστημα με αυτό το μήνυμα ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX ADDED\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + ###################### # ADD=2111111111111 adds new conference to the system ###################### @@ -8185,9 +10211,9 @@ if ($ADD==2111111111111) {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτό το ID και διακομιστή\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + else { echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΠΡΟΣΤΕΘΗΚΕ\n"; @@ -8213,9 +10239,9 @@ if ($ADD==21111111111111) {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + else { echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΠΡΟΣΤΕΘΗΚΕ\n"; @@ -8248,17 +10274,17 @@ if ($ADD==221111111111111) {echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ - there is already a global-status in the system with this name\n";} else { - if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; - echo "
το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες\n"; + echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; + echo "
το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες\n"; } - else + else { echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ: $status_name - $status\n"; - $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category) values('$status','$status_name','$selectable','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -8289,13 +10315,13 @@ if ($ADD==231111111111111) {echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια κατηγορία θέσης στο σύστημα με αυτήν τηνταυτότητα: $row[0]\n";} else { - if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) { - echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Η ταυτότητα πρέπει να είναι μεταξύ 2 και 20 χαρακτήρων στο μήκος\n"; - echo "
το όνομα ονόματος πρέπει να είναι μεταξύ 2 και 50 χαρακτήρων στομήκος\n"; + echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Η ταυτότητα πρέπει να είναι μεταξύ 2 και 20 χαρακτήρων στο μήκος\n"; + echo "
το όνομα ονόματος πρέπει να είναι μεταξύ 2 και 50 χαρακτήρων στομήκος\n"; } - else + else { echo "
STATUS ΚΑΤΗΓΟΡΙΑ ADDED: $vsc_id - $vsc_name\n"; @@ -8339,13 +10365,13 @@ if ($ADD==241111111111111) {echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν προστίθενται- υπάρχει ήδη μια qc κωδικό στο σύστημα με αυτό το όνομα: $row[0]\n";} else { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) { - echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν προστίθενται- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
κωδικός πρέπει να είναι μεταξύ 1 και 8 χαρακτήρες\n"; - echo "
κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; + echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν προστίθενται- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
κωδικός πρέπει να είναι μεταξύ 1 και 8 χαρακτήρες\n"; + echo "
κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; } - else + else { echo "
QC Κατάσταση ΠΡΟΣΤΙΘΕΝΤΑΙ ΚΩΔΙΚΟΣ:$code_name - $code\n"; @@ -8379,232 +10405,232 @@ if ($ADD==241111111111111) ###################### if ($ADD=="4A") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; } - echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Ενεργό'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### @@ -8612,233 +10638,232 @@ $ADD=3; # go to user modification below ###################### if ($ADD=="4B") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; } - echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Ενεργό'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3; # go to user modification below } - else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; - } -$ADD=3; # go to user modification below -} - ###################### @@ -8846,233 +10871,233 @@ $ADD=3; # go to user modification below ###################### if ($ADD==4) -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; - } - else - { - echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $user\n"; + echo ""; - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) + else { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $user\n"; - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Ενεργό'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# - ### user doesn't exist in vtiger, insert it - else + if ($enable_vtiger_integration > 0) { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) - { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### # ADD=41 submit campaign modifications to the system - DETAIL ###################### if ($ADD==41) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9086,7 +11111,7 @@ if ($ADD==41) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9121,6 +11146,7 @@ if ($ADD==41) $survey_xfer_exten = '8300'; $voicemail_ext = ''; $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; } if (ereg('list_activation',$stage)) { @@ -9150,20 +11176,31 @@ if ($ADD==41) } else { - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες\n"; - echo "
|$campaign_name|$active|\n"; + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες\n"; + echo "
|$campaign_name|$active|\n"; } - else + else { echo "
ΕΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $campaign_id\n"; + if ( ($dial_method != 'MANUAL') and ($dial_method != 'Εισερχόμενα_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } if ($dial_method == 'MANUAL') { $auto_dial_level='0'; $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; } else { @@ -9192,7 +11229,7 @@ if ($ADD==41) if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) {$hopper_level='100';} - $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias' where campaign_id='$campaign_id';"; + $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -9221,124 +11258,127 @@ if ($ADD==41) } } } - else + else { echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; exit; } -$ADD=31; # go to campaign modification form below -} + $ADD=31; # go to campaign modification form below + } + ###################### # ADD=42 modify/delete campaign status in the system ###################### if ($ADD==42) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) - { - echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - echo "
η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας\n"; - } - else - { - if (ereg('delete',$stage)) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ΔΙΑΓΡΑΦΗΚΕ Η ΠΡΟΣΑΡΜΟΣΜΕΝΗ ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status\n"; - - $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); - - $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmtA, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας\n"; } - if (ereg('modify',$stage)) + else { - echo "
ΘΕΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΣΥΝΗΘΕΙΑΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ: $campaign_id - $status\n"; + if (ereg('delete',$stage)) + { + echo "
ΔΙΑΓΡΑΦΗΚΕ Η ΠΡΟΣΑΡΜΟΣΜΕΝΗ ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status\n"; - $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
ΘΕΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΣΥΝΗΘΕΙΑΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below } -$SUB=22; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=43 delete campaign hotkey in the system ###################### if ($ADD==43) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - echo "
η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας\n"; - echo "
the campaign hotkey needs to be at least 1 characters in length\n"; - } - else - { - echo "
ΔΙΑΦΡΑΦΗΚΕ ΤΟ ΠΡΟΣΑΡΜΟΣΜΕΝΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status - $hotkey\n"; + echo ""; - $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
ΔΙΑΦΡΑΦΗΚΕ ΤΟ ΠΡΟΣΑΡΜΟΣΜΕΝΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status - $hotkey\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status|HotKey: $hotkey';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below } -$SUB=23; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=44 submit campaign modifications to the system - Basic View ###################### if ($ADD==44) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9352,7 +11392,7 @@ if ($ADD==44) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9404,13 +11444,12 @@ if ($ADD==44) } else { - - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες\n"; + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες\n"; } - else + else { echo "
ΕΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $campaign_id\n"; @@ -9468,153 +11507,155 @@ if ($ADD==44) } } } - else + else { echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; exit; } -$ADD=34; # go to campaign modification form below -} + $ADD=34; # go to campaign modification form below + } + ###################### # ADD=45 modify campaign lead recycle in the system ###################### if ($ADD==45) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; - echo "
η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα και λιγότερο από 43.200 δευτερολέπτων ή 12 ωρών\n"; - echo "
οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10\n"; - } - else - { - echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + echo ""; - $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + echo "
η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα και λιγότερο από 43.200 δευτερολέπτων ή 12 ωρών\n"; + echo "
οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below } -$SUB=25; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=47 modify agent pause code in the system ###################### if ($ADD==47) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
pause_code must be between 1 and 6 characters in length\n"; - echo "
pause_κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; - } - else - { - echo "
ΧΕΙΡΙΣΤΗΣPAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + echo ""; - $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; + } + else + { + echo "
ΧΕΙΡΙΣΤΗΣPAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below } -$SUB=27; -$ADD=31; # go to campaign modification form below -} ###################### # ADD=48 modify campaign QC settings in the system ###################### if ($ADD==48) -{ + { if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
QC SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if (strlen($campaign_id) < 2) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
QC SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
QC SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
QC SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $campaign_id\n"; - - $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below } -$SUB=28; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9622,39 +11663,39 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD=='40A') -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
ΕΡΕΥΝΑ SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - } - else - { - echo "
ΕΡΕΥΝΑ SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $campaign_id\n"; + echo ""; - $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); + if (strlen($campaign_id) < 2) + { + echo "
ΕΡΕΥΝΑ SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + } + else + { + echo "
ΕΡΕΥΝΑ SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $campaign_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below } -$SUB='20A'; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9662,143 +11703,70 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==49) -{ - if ($LOGmodify_campaigns==1) { - ##### MODIFY a list mix container entry ##### + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### if ($stage=='MODIFY') - { - echo ""; - - $Flist_mix_container = "list_mix_container_$vcl_id"; - $Fmix_method = "mix_method_$vcl_id"; - $Fstatus = "status_$vcl_id"; - $Fvcl_name = "vcl_name_$vcl_id"; - - if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} - elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} - if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} - elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} - if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} - elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} - if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} - elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} - $list_mix_container = preg_replace("/:$/","",$list_mix_container); - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name name must be between 2 and 30 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $vcl_name\n"; - } - } + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); - ##### ADD a list mix container entry ##### - if ($stage=='ADD') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $OLDlist_mix_container = $row[0]; - $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; - - $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $list_id\n"; - } - } - - ##### REMOVE a list mix container entry ##### - if ($stage=='REMOVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $MIXentries = $MT; - $MIXentries = explode(":", $row[0]); - $Ms_to_print = (count($MIXentries) - 0); - - if ($Ms_to_print < 2) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: Δεν μπορείτε να διαγράψετε το τελευταίο λήμμα list_id από έναμίγμα καταλόγων\n"; + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); - $MIXpercentPCT = $MIXdetailsPCT[2]; - - $q=0; - while ($Ms_to_print > $q) - { - if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) - { - if ( ($q==0) and ($mix_container_item > 0) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - if ( ($q==1) and ($mix_container_item < 1) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - $NEWlist_mix_container .= "$MIXentries[$q]:"; - } - } - } - $q++; - } - $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; $rslt=mysql_query($stmt, $link); @@ -9811,114 +11779,187 @@ if ($ADD==49) if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $list_id\n"; } } - } - ##### ADD a NEW list mix ##### - if ($stage=='NEWMIX') - { - echo ""; + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) - { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ- Υπάρχει ήδη ένα μίγμα καταλόγων με αυτήν την ταυτότητα στοσύστημα\n"; + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: Δεν μπορείτε να διαγράψετε το τελευταίο λήμμα list_id από έναμίγμα καταλόγων\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ- Υπάρχει ήδη ένα μίγμα καταλόγων με αυτήν την ταυτότητα στοσύστημα\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ:$campaign_id - $vcl_id - $vcl_name\n"; + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ: $campaign_id - $vcl_id - $vcl_name\n"; } } } - - ##### DELETE an existing list mix ##### - if ($stage=='DELMIX') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ:$campaign_id - $vcl_id - $vcl_name\n"; - } - } - - ##### Set list mix entry to active ##### - if ($stage=='SETACTIVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ: $campaign_id - $vcl_id - $vcl_name\n"; - } - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below } -$SUB=29; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9926,60 +11967,62 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==411) -{ - if ($LOGmodify_lists==1) { - echo ""; - - if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + if ($LOGmodify_lists==1) { - echo "
Η ΛΙΣΤΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
η λίστα πρέπει να είναι τουλαχιστον 2 χαρακτήρες\n"; - } - else - { - echo "
ΛΙΣΤΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $list_id\n"; + echo ""; - $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate' where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - if ($reset_list == 'Y') + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) { - echo "
ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΛΙΣΤΑΣ\n"; - $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; - $rslt=mysql_query($stmtB, $link); + echo "
Η ΛΙΣΤΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
η λίστα πρέπει να είναι τουλαχιστον 2 χαρακτήρες\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
ΛΙΣΤΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } - if ($campaign_id != "$old_campaign_id") - { - echo "
ΑΠΟΜΑΚΡΥΝΣΗ ΚΑΘΟΔΗΓΗΤΩΝ ΛΙΣΤΑΣ HOPPER ΑΠΟ ΠΑΛΑΙΑ HOPPER ΕΚΣΤΡΑΤΕΙΑ ($old_campaign_id)\n"; - $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; - $rslt=mysql_query($stmtC, $link); + + if ($reset_list == 'Y') + { + echo "
ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΛΙΣΤΑΣ\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
ΑΠΟΜΑΚΡΥΝΣΗ ΚΑΘΟΔΗΓΗΤΩΝ ΛΙΣΤΑΣ HOPPER ΑΠΟ ΠΑΛΑΙΑ HOPPER ΕΚΣΤΡΑΤΕΙΑ ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311; # go to list modification form below } -$ADD=311; # go to list modification form below -} ###################### @@ -9987,58 +12030,88 @@ $ADD=311; # go to list modification form below ###################### if ($ADD==4111) -{ + { if ($LOGmodify_ingroups==1) - { - echo ""; - - if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - echo "
Η ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
Η ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
ΟΜΑΔΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $group_id\n"; + + $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
ΟΜΑΔΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $group_id\n"; - - $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias' where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111; # go to in-group modification form below } -$ADD=3111; # go to in-group modification form below -} - ###################### @@ -10046,81 +12119,222 @@ $ADD=3111; # go to in-group modification form below ###################### if ($ADD==4311) -{ + { if ($LOGmodify_dids==1) - { - echo ""; - - if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) { - echo "
Δέν ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
did_extension must be at least 1 character in length\n"; - } - else - { - echo "
DID ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $did_pattern\n"; + echo ""; - $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code' where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
Δέν ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $did_pattern\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3311; # go to did modification form below } -$ADD=3311; # go to did modification form below -} +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
ΠΡΟΣΚΛΗΣΗ μενού δεν MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU MODIFIED: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + ###################### # ADD=41111 modify remote agents info in the system ###################### if ($ADD==41111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo ""; - - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Το ID του χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else - { - $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ\n"; + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID του χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below } -$ADD=31111; # go to remote agents modification form below -} - ###################### @@ -10128,169 +12342,181 @@ $ADD=31111; # go to remote agents modification form below ###################### if ($ADD==411111) -{ + { if ($LOGmodify_usergroups==1) - { - echo ""; - - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
Η ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; - echo "
Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else - { - $p=0; - $GROUP_shifts=' '; - $group_shifts_ct = count($group_shifts); - while ($p <= $group_shifts_ct) + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - $GROUP_shifts .= "$group_shifts[$p] "; - $p++; + echo "
Η ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; } - $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement' where user_group='$OLDuser_group';"; - $rslt=mysql_query($stmt, $link); - - echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY ΟΜΑΔΑ ΧΡΗΣΤΩΝ', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY ΟΜΑΔΑ ΧΡΗΣΤΩΝ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $group_found_count = $row[0]; - $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### } - - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111; # go to user group modification form below } -$ADD=311111; # go to user group modification form below -} + ###################### # ADD=4111111 modify script in the system ###################### if ($ADD==4111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo ""; - - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος\n"; - } - else - { - $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='$script_text', active='$active' where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
Ο ΒΟΗΘΟΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος\n"; + } + else + { + $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='" . mysql_real_escape_string($script_text) . "', active='$active' where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΒΟΗΘΟΙ', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
Ο ΒΟΗΘΟΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΒΟΗΘΟΙ', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111111; # go to script modification form below } -$ADD=3111111; # go to script modification form below -} ###################### @@ -10298,39 +12524,41 @@ $ADD=3111111; # go to script modification form below ###################### if ($ADD==41111111) -{ + { if ($LOGmodify_filters==1) - { - echo ""; - - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
ID φίλτρου, όνομα και SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else - { - $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='$lead_filter_sql' where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
ΤΟ ΦΙΛΤΡΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID φίλτρου, όνομα και SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "' where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΦΙΛΤΡΑ', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
ΤΟ ΦΙΛΤΡΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΦΙΛΤΡΑ', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111111; # go to filter modification form below } -$ADD=31111111; # go to filter modification form below -} ###################### @@ -10338,55 +12566,55 @@ $ADD=31111111; # go to filter modification form below ###################### if ($ADD==411111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
ΧΟΝΟΣ ΚΛΗΣΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το ID Χρόνου Κλήσης και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
ΤΡΟΠΟΠΟΙΗΘΗΚΕ ΧΡΟΝΟΣ ΚΛΗΣΗΣ\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
ΧΟΝΟΣ ΚΛΗΣΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
ΤΡΟΠΟΠΟΙΗΘΗΚΕ ΧΡΟΝΟΣ ΚΛΗΣΗΣ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111111; # go to call time modification form below } -$ADD=311111111; # go to call time modification form below -} ###################### @@ -10394,55 +12622,55 @@ $ADD=311111111; # go to call time modification form below ###################### if ($ADD==4111111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες \n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
ΤΡΟΠΟΠΟΙΗΘΗΚΕ ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες \n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
ΤΡΟΠΟΠΟΙΗΘΗΚΕ ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below } -$ADD=3111111111; # go to state call time modification form below -} ###################### @@ -10450,50 +12678,50 @@ $ADD=3111111111; # go to state call time modification form below ###################### if ($ADD==431111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; + { + echo ""; - $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) - { - echo "
SHIFT DEFINITION NOT MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
ID Shift και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; - echo "
Shift ώρα έναρξης πρέπει να είναι 4 ψηφία στο μήκος και να είναι μια έγκυρη ώρα\n"; - echo "
Shift Μήκος 5 χαρακτήρες πρέπει να είναι σε μήκος και να είναι 24 ώρες ή λιγότερο\n"; - } - else - { - $p=0; - $shift_weekdays_ct = count($shift_weekdays); - while ($p <= $shift_weekdays_ct) + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - $SHIFT_weekdays .= "$shift_weekdays[$p]"; - $p++; + echo "
SHIFT DEFINITION NOT MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID Shift και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Shift ώρα έναρξης πρέπει να είναι 4 ψηφία στο μήκος και να είναι μια έγκυρη ώρα\n"; + echo "
Shift Μήκος 5 χαρακτήρες πρέπει να είναι σε μήκος και να είναι 24 ώρες ή λιγότερο\n"; } - $shift_start_time = preg_replace('/\D/', '', $shift_start_time); - $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); - echo "
SHIFT ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ\n"; + echo "
SHIFT ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=331111111; # go to shift modification form below } -$ADD=331111111; # go to shift modification form below -} ###################### @@ -10501,47 +12729,47 @@ $ADD=331111111; # go to shift modification form below ###################### if ($ADD==41111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) - {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή\n";} + else { - echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $extension\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $extension\n"; - $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override' where extension='$old_extension' and server_ip='$old_server_ip';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ', event_sql=\"$SQL_log\", event_notes='IP Διακομιστή: $server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ', event_sql=\"$SQL_log\", event_notes='IP Διακομιστή: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below } -$ADD=31111111111; # go to phone modification form below -} ###################### @@ -10549,39 +12777,39 @@ $ADD=31111111111; # go to phone modification form below ###################### if ($ADD==42111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) - {echo "
PHONE ALIAS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else { - echo "
PHONE ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $alias_id\n"; + echo ""; - $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
PHONE ALIAS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
PHONE ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below } -$ADD=32111111111; # go to phone alias modification form below -} ###################### @@ -10589,39 +12817,39 @@ $ADD=32111111111; # go to phone alias modification form below ###################### if ($ADD==43111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) - {echo "
ALIAS ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else { - echo "
ΟΜΑΔΑ ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $alias_id\n"; + echo ""; - $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
ΟΜΑΔΑ ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFY GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFY GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below } -$ADD=33111111111; # go to group alias modification form below -} ###################### @@ -10629,55 +12857,55 @@ $ADD=33111111111; # go to group alias modification form below ###################### if ($ADD==411111111111) -{ - if ($LOGmodify_servers==1) { - echo ""; - - $stmt="SELECT count(*) from servers where server_id='$server_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_id != $old_server_id) ) - {echo "
ΔΙΑΚΟΜΙΣΤΗΣ NOT MODIFIED - there is already a server in the system with this server_id\n";} - else + if ($LOGmodify_servers==1) { - $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) - {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το IP\n";} + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
ΔΙΑΚΟΜΙΣΤΗΣ NOT MODIFIED - there is already a server in the system with this server_id\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) - {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το IP\n";} + else { - echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $server_ip\n"; + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); - $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second' where server_id='$old_server_id';"; - $rslt=mysql_query($stmt, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $server_ip\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111111111; # go to server modification form below } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10685,57 +12913,57 @@ $ADD=311111111111; # go to server modification form below ###################### if ($ADD==421111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $MAXvicidial_trunks = $rowx[0]; - - $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); - - if ($SUMvicidial_trunks > $MAXvicidial_trunks) { - echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - ο αριθμός των κορμών είναι πολύ υψηλός: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - ο αριθμός των κορμών είναι πολύ υψηλός: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος\n"; + echo "
η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες\n"; + echo "
οι κορμοί πρέπει να είναι ένα ψηφίο από 0 έως 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERΜπαούλα', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ TRUNK', event_sql=\"$SQL_log\", event_notes='Εκστρατεία: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } } else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) - { - echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος\n"; - echo "
η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες\n"; - echo "
οι κορμοί πρέπει να είναι ένα ψηφίο από 0 έως 9999\n"; - } - else - { - echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; - - $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERΜπαούλα', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ TRUNK', event_sql=\"$SQL_log\", event_notes='Εκστρατεία: $campaign_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; } + $ADD=311111111111; # go to server modification form below } - else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; - } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10743,39 +12971,39 @@ $ADD=311111111111; # go to server modification form below ###################### '$template_id','$template_name','$template_contents' if ($ADD==431111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) - {echo "
ΠΙΣΤ TEMPLATE ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else { - echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + echo ""; - $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
ΠΙΣΤ TEMPLATE ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY ΠΙΣΤ TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY ΠΙΣΤ TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below } -$ADD=331111111111; # go to conf template modification form below -} ###################### @@ -10783,39 +13011,222 @@ $ADD=331111111111; # go to conf template modification form below ###################### if ($ADD==441111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) - {echo "
ΔΕΝ ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} - else { - echo "
ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $carrier_id\n"; + echo ""; - $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active' where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
ΔΕΝ ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY ΘΑΛΑΜΙΣΚΟ', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY ΘΑΛΑΜΙΣΚΟ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS ΕΙΣΟΔΟΥ μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS ΕΙΣΟΔΟΥ MODIFIED: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music on Hold ΕΙΣΟΔΟΥ μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music on Hold ΕΙΣΟΔΟΥ MODIFIED: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music on Hold ΕΙΣΟΔΟΥ μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music on Hold ΕΙΣΟΔΟΥ MODIFIED: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX MODIFIED: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below } -$ADD=341111111111; # go to carrier modification form below -} ###################### @@ -10823,36 +13234,36 @@ $ADD=341111111111; # go to carrier modification form below ###################### if ($ADD==4111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else - { - echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $conf_exten\n"; + echo ""; - $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below } -$ADD=3111111111111; # go to conference modification form below -} ###################### @@ -10860,38 +13271,37 @@ $ADD=3111111111111; # go to conference modification form below ###################### if ($ADD==41111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή\n";} + else { - echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $conf_exten\n"; + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $conf_exten\n"; - $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below } -$ADD=31111111111111; # go to vicidial conference modification form below -} - ###################### @@ -10906,7 +13316,7 @@ if ($ADD==411111111111111) echo "
VICIDIAL ΤΟΠΟΘΕΤΗΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΕΣ\n"; - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second';"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -10975,7 +13385,7 @@ if ($ADD==421111111111111) { echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΗ: $status\n"; - $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where status='$status';"; + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -11007,13 +13417,13 @@ if ($ADD==431111111111111) { echo ""; - if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) { echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; echo "
η κατηγορία θέσης δεν μπορεί να είναι μια διατηρημένη κατηγορία:UNDEFINED\n"; echo "
η κατηγορία θέσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες στομήκος\n"; } - else + else { if (ereg('delete',$stage)) { @@ -11070,67 +13480,67 @@ if ($ADD==431111111111111) ###################### if ($ADD==441111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) - { - echo ""; - - if (ereg('delete',$stage)) { - if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + echo ""; + + if (ereg('delete',$stage)) { - echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; - echo "
η qc κωδικός πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
η qc κωδικός πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; + } + else + { + echo "
QC Κατάσταση ΔΙΕΓΡΑΜΜΕΝΩΝ ΚΩΔΙΚΟΣ:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - else + if (ereg('modify',$stage)) { - echo "
QC Κατάσταση ΔΙΕΓΡΑΜΜΕΝΩΝ ΚΩΔΙΚΟΣ:$code\n"; + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC Κατάσταση ΚΩΔΙΚΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η qc κωδικός πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; + echo "
qc το κωδικό όνομα πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; + } + else + { + echo "
QC Κατάσταση ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΚΩΔΙΚΟΣ:$code\n"; - $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - if (ereg('modify',$stage)) - { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) - { - echo "
QC Κατάσταση ΚΩΔΙΚΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
η qc κωδικός πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; - echo "
qc το κωδικό όνομα πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; - } - else - { - echo "
QC Κατάσταση ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΚΩΔΙΚΟΣ:$code\n"; - - $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below } -$ADD=341111111111111; # go to qc status code modification form below -} @@ -11147,336 +13557,358 @@ $ADD=341111111111111; # go to qc status code modification form below ###################### if ($ADD==5) -{ + { echo ""; - if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) { - echo "
ΧΡΗΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Χρήστης be at least 2 characters in length\n"; + echo "
ΧΡΗΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Χρήστης be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΗΣΤΗ: $user\n"; echo "

Χτυπήστε εδώ για να διαγράψετε το χρήστη $user


\n"; } -$ADD='3'; # go to user modification below -} + $ADD='3'; # go to user modification below + } ###################### # ADD=51 confirmation before deletion of campaign ###################### if ($ADD==51) -{ + { echo ""; - if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) { - echo "
ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Εκστρατεία_id be at least 2 characters in length\n"; + echo "
ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id\n"; echo "

Χτυπήστε εδώ για να διαγράψετε την εκστρατεία $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=52 confirmation before logging all agents out of campaign of campaign ###################### if ($ADD==52) -{ + { echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
ΧΕΙΡΙΣΤΕΣ ΠΟΥ ΔΕΝ ΕΙΝΑΙ ΑΠΟΣΥΝΔΕΜΕΝΟΙ ΑΠΟ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Εκστρατεία_id be at least 2 characters in length\n"; + echo "
ΧΕΙΡΙΣΤΕΣ ΠΟΥ ΔΕΝ ΕΙΝΑΙ ΑΠΟΣΥΝΔΕΜΕΝΟΙ ΑΠΟ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΑΠΟΣΥΝΔΕΣΗΣ ΧΕΙΡΙΣΤΩΝ: $campaign_id\n"; - echo "

Επιλέξτε εδώ για να αποσυνδέσετε όλους τους χειριστές από $campaign_id


\n"; + echo "

Επιλέξτε εδώ για να αποσυνδέσετε όλους τους χειριστές από $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record ###################### if ($ADD==53) -{ + { if (eregi('IN',$stage)) {$group_id=$campaign_id;} echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
VDAC ΔΕΝ ΚΑΘΑΡΙΣΤΗΚΕ ΓΙΑ ΤΗΝ ΕΚΣΤΡΑΤΕΊΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Εκστρατεία_id be at least 2 characters in length\n"; + echo "
VDAC ΔΕΝ ΚΑΘΑΡΙΣΤΗΚΕ ΓΙΑ ΤΗΝ ΕΚΣΤΡΑΤΕΊΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΚΑΘΑΡΙΣΜΟΥ VDAC: $campaign_id\n"; echo "

Επιλέξτε εδώ για να διαγράψετε την παλαιότερη ΖΩΝΤΑΝΗ εγγραφή στο VDAC για $campaign_id


\n"; } -# go to campaign modification below -if (eregi('IN',$stage)) - {$ADD='3111';} -else - {$ADD='31';} -} + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } ###################### # ADD=511 confirmation before deletion of list ###################### if ($ADD==511) -{ + { echo ""; - if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) { - echo "
ΛΙΣΤΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
List_id be at least 2 characters in length\n"; + echo "
ΛΙΣΤΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
List_id be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΛΙΣΤΑΣ: $list_id\n"; echo "

Χτυπήστε εδώ για να διαγράψετε τον κατάλογο και όλους τους οδηγούς του $list_id


\n"; } -$ADD='311'; # go to campaign modification below -} + $ADD='311'; # go to campaign modification below + } ###################### # ADD=5111 confirmation before deletion of in-group ###################### if ($ADD==5111) -{ + { echo ""; - if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) { - echo "
ΕΙΣ-ΟΜΑΔΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Group_id be at least 2 characters in length\n"; + echo "
ΕΙΣ-ΟΜΑΔΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Group_id be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΕΙΣ-ΟΜΑΔΑΣ: $group_id\n"; echo "

Επιλέξτε εδώ για να διαγράψετε την-ΟΜΑΔΑ $group_id


\n"; } -$ADD='3111'; # go to in-group modification below -} + $ADD='3111'; # go to in-group modification below + } ###################### # ADD=5311 confirmation before deletion of did ###################### if ($ADD==5311) -{ + { echo ""; - if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) { - echo "
ΔΕΝ ΚΑΤΑΡΓΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
did_id be at least 1 characters in length\n"; + echo "
ΔΕΝ ΚΑΤΑΡΓΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
did_id be at least 1 characters in length\n"; } - else + else { - echo "
DID DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $group_id\n"; + echo "
DID DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $menu_id\n"; echo "

Κάντε κλικ εδώ για να διαγράψετεDID $did_id


\n"; } -$ADD='3311'; # go to did modification below -} + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $menu_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε ΠΡΟΣΚΛΗΣΗ MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } ###################### # ADD=51111 confirmation before deletion of remote agent record ###################### if ($ADD==51111) -{ + { echo ""; - if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) { - echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΧΕΙΡΙΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Remote_agent_id be at least 2 characters in length\n"; + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΧΕΙΡΙΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ : $remote_agent_id\n"; echo "

Επιλέξτε εδώ για να διαγράψετε τον απομακρυσμένο χειριστή $remote_agent_id


\n"; } -$ADD='31111'; # go to remote agent modification below -} + $ADD='31111'; # go to remote agent modification below + } ###################### # ADD=511111 confirmation before deletion of user group record ###################### if ($ADD==511111) -{ + { echo ""; - if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) { - echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Χρήστης_group be at least 2 characters in length\n"; + echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Χρήστης_group be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ: $user_group\n"; echo "

Επιλέξτε εδώ για να διαγράψετε την ομάδα χρηστών $user_group


\n"; } -$ADD='311111'; # go to user group modification below -} + $ADD='311111'; # go to user group modification below + } ###################### # ADD=5111111 confirmation before deletion of script record ###################### if ($ADD==5111111) -{ + { echo ""; - if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) { - echo "
ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ Ο ΒΟΗΘΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Script_id must be at least 2 characters in length\n"; + echo "
ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ Ο ΒΟΗΘΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Script_id must be at least 2 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΒΟΗΘΟΥ: $script_id\n"; echo "

επιλέξτε εδώ για να διαγράψετε τον βοηθό $script_id


\n"; } -$ADD='3111111'; # go to script modification below -} + $ADD='3111111'; # go to script modification below + } ###################### # ADD=51111111 confirmation before deletion of filter record ###################### if ($ADD==51111111) -{ + { echo ""; - if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) { - echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
To ID φίλτρου πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
To ID φίλτρου πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; } - else + else { echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; echo "

Πατήστε εδώ για διαγραφή του φίλτρου$lead_filter_id


\n"; } -$ADD='31111111'; # go to filter modification below -} + $ADD='31111111'; # go to filter modification below + } ###################### # ADD=511111111 confirmation before deletion of call time record ###################### if ($ADD==511111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ: $call_time_id\n"; echo "

Κάντε κλικ εδώ για να διαγράψετεcall time $call_time_id


\n"; } -$ADD='311111111'; # go to call time modification below -} + $ADD='311111111'; # go to call time modification below + } ###################### # ADD=5111111111 confirmation before deletion of state call time record ###################### if ($ADD==5111111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ: $call_time_id\n"; echo "

Κάντε κλικ εδώ για να διαγράψετεstate call time $call_time_id


\n"; } -$ADD='3111111111'; # go to state call time modification below -} + $ADD='3111111111'; # go to state call time modification below + } ###################### # ADD=531111111 confirmation before deletion of shift record ###################### if ($ADD==531111111) -{ + { echo ""; - if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
SHIFT δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Shift ID must be at least 2 characters in length\n"; + echo "
SHIFT δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Shift ID must be at least 2 characters in length\n"; } - else + else { echo "
SHIFT DELETION CONFIRMATION:$shift_id\n"; echo "

Κάντε κλικ εδώ για να διαγράψετε στροφή $shift_id


\n"; } -$ADD='331111111'; # go to call time modification below -} + $ADD='331111111'; # go to call time modification below + } ###################### # ADD=51111111111 confirmation before deletion of phone record ###################### if ($ADD==51111111111) -{ + { echo ""; - if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Extension be at least 2 characters in length\n"; - echo "
IP Διακομιστή be at least 7 characters in length\n"; + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; } - else + else { echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ: $extension - $server_ip\n"; echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $extension - $server_ip


\n"; } -$ADD='31111111111'; # go to phone modification below -} + $ADD='31111111111'; # go to phone modification below + } ###################### @@ -11484,21 +13916,21 @@ $ADD='31111111111'; # go to phone modification below ###################### if ($ADD==52111111111) -{ + { echo ""; - if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
PHONE ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Alias ID must be at least 2 characters in length\n"; + echo "
PHONE ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Alias ID must be at least 2 characters in length\n"; } - else + else { echo "
PHONE ALIAS DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $alias_id\n"; echo "

Κάντε κλικ εδώ για να διαγράψετε τηλέφωνο άλλως $alias_id


\n"; } -$ADD='32111111111'; # go to phone alias modification below -} + $ADD='32111111111'; # go to phone alias modification below + } ###################### @@ -11506,21 +13938,21 @@ $ADD='32111111111'; # go to phone alias modification below ###################### if ($ADD==53111111111) -{ + { echo ""; - if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
ΟΜΑΔΑ ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Ομάδα Γνωστός ID must be at least 2 characters in length\n"; + echo "
ΟΜΑΔΑ ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Ομάδα Γνωστός ID must be at least 2 characters in length\n"; } - else + else { echo "
ΟΜΑΔΑ ALIAS DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $group_alias_id\n"; echo "

Κάντε κλικ εδώ για να διαγράψετε ομάδα άλλως $group_alias_id


\n"; } -$ADD='33111111111'; # go to group alias modification below -} + $ADD='33111111111'; # go to group alias modification below + } ###################### @@ -11528,22 +13960,22 @@ $ADD='33111111111'; # go to group alias modification below ###################### if ($ADD==511111111111) -{ + { echo ""; - if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
ΔΙΑΚΟΜΙΣΤΗΣ NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
ID Διακομιστή be at least 2 characters in length\n"; - echo "
IP Διακομιστή be at least 7 characters in length\n"; + echo "
ΔΙΑΚΟΜΙΣΤΗΣ NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID Διακομιστή be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; } - else + else { echo "
ΔΙΑΚΟΜΙΣΤΗΣ DELETION CONFIRMATION: $server_id - $server_ip\n"; echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $server_id - $server_ip


\n"; } -$ADD='311111111111'; # go to server modification below -} + $ADD='311111111111'; # go to server modification below + } ###################### @@ -11551,21 +13983,21 @@ $ADD='311111111111'; # go to server modification below ###################### if ($ADD==531111111111) -{ + { echo ""; - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) { - echo "
ΠΙΣΤ TEMPLATE δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Πρότυπο ID να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
ΠΙΣΤ TEMPLATE δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Πρότυπο ID να είναι τουλάχιστον 2 χαρακτήρες\n"; } - else + else { echo "
ΠΙΣΤ TEMPLATE DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $template_id - $template_name\n"; echo "

Κάντε κλικ εδώ για να διαγράψετε το πρότυπο conf $template_id - $template_name


\n"; } -$ADD='331111111111'; # go to conf template modification below -} + $ADD='331111111111'; # go to conf template modification below + } ###################### @@ -11573,21 +14005,87 @@ $ADD='331111111111'; # go to conf template modification below ###################### if ($ADD==541111111111) -{ + { echo ""; - if (strlen($carrier_id) < 2) + if (strlen($carrier_id) < 2) { - echo "
ΘΑΛΑΜΙΣΚΟ δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Θαλαμίσκος ID να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
ΘΑΛΑΜΙΣΚΟ δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Θαλαμίσκος ID να είναι τουλάχιστον 2 χαρακτήρες\n"; } - else + else { echo "
ΘΑΛΑΜΙΣΚΟ DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $carrier_id - $carrier_name\n"; echo "

Κάντε κλικ εδώ για να διαγράψετε μεταφορέα $carrier_id - $carrier_name


\n"; } -$ADD='341111111111'; # go to carrier modification below -} + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ΕΙΣΟΔΟΥ ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $tts_id - $tts_name\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε TTS εισόδου $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
Music on Hold ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
Music on Hold ΕΙΣΟΔΟΥ ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $moh_id - $moh_name\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε μουσική σε αναμονή εισόδου $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID be at least 2 characters in length\n"; + } + else + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $voicemail_id - $fullname\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε τηλεφωνητή κουτί $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } ###################### @@ -11595,22 +14093,22 @@ $ADD='341111111111'; # go to carrier modification below ###################### if ($ADD==5111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP Διακομιστή be at least 7 characters in length\n"; + echo "
CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; } - else + else { echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $conf_exten - $server_ip


\n"; } -$ADD='3111111111111'; # go to conference modification below -} + $ADD='3111111111111'; # go to conference modification below + } ###################### @@ -11618,22 +14116,22 @@ $ADD='3111111111111'; # go to conference modification below ###################### if ($ADD==51111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
VICIDIAL CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP Διακομιστή be at least 7 characters in length\n"; + echo "
VICIDIAL CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; } - else + else { echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $conf_exten - $server_ip


\n"; } -$ADD='31111111111111'; # go to vicidial conference modification below -} + $ADD='31111111111111'; # go to vicidial conference modification below + } @@ -11654,8 +14152,8 @@ if ($ADD==6) if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) { - echo "
ΧΡΗΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Χρήστης be at least 2 characters in length\n"; + echo "
ΧΡΗΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Χρήστης be at least 2 characters in length\n"; } else { @@ -11693,8 +14191,8 @@ if ($ADD==61) if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) { - echo "
ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; - echo "
Εκστρατεία_id be at least 2 characters in length\n"; + echo "
ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; } else { @@ -11753,6 +14251,7 @@ if ($ADD==61) $ADD='10'; # go to campaigns list } + ###################### # ADD=62 Logout all agents from a campaign ###################### @@ -11770,8 +14269,174 @@ if ($ADD==62) } else { - $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -11837,7 +14502,7 @@ if ($ADD==63) if (eregi('IN',$stage)) {$ADD='3111';} else - {$ADD='31';} + {$ADD='31';} } @@ -11900,12 +14565,12 @@ if ($ADD==66) {echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - αυτή η αυτόματη θέση πινάκων ALT δεν είναι σε αυτήν τηνεκστρατεία\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; } - else + else { echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ: $campaign_id - $status\n"; @@ -11936,6 +14601,7 @@ if ($ADD==66) $ADD=31; # go to campaign modification form below } + ###################### # ADD=67 delete agent pause code in the system ###################### @@ -11946,12 +14612,12 @@ if ($ADD==67) { echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) { echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΕΚΣΤΡΑΤΕΙΑΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; echo "
pause code must be between 1 and 6 characters in length\n"; } - else + else { echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; @@ -11993,12 +14659,12 @@ if ($ADD==68) {echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ - αυτή η θέση πινάκων δεν επιλέγεται για αυτήν την εκστρατεία\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; } - else + else { echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ: $campaign_id - $status\n"; @@ -12112,6 +14778,7 @@ if ($ADD==6111) $ADD='1000'; # go to in-group list } + ###################### # ADD=6311 delete did record ###################### @@ -12145,6 +14812,42 @@ if ($ADD==6311) $ADD='1300'; # go to did list } +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + ###################### # ADD=61111 delete remote agent record ###################### @@ -12666,6 +15369,116 @@ if ($ADD==641111111111) } +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Music on Hold ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Music on Hold ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + ###################### # ADD=6111111111111 delete conference record ###################### @@ -12751,246 +15564,293 @@ if ($ADD==61111111111111) ###################### if ($ADD==3) -{ - if ($LOGmodify_users==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_level = $row[4]; - $user_group = $row[5]; - $phone_login = $row[6]; - $phone_pass = $row[7]; - $delete_users = $row[8]; - $delete_user_groups = $row[9]; - $delete_lists = $row[10]; - $delete_campaigns = $row[11]; - $delete_ingroups = $row[12]; - $delete_remote_agents = $row[13]; - $load_leads = $row[14]; - $campaign_detail = $row[15]; - $ast_admin_access = $row[16]; - $ast_delete_phones = $row[17]; - $delete_scripts = $row[18]; - $modify_leads = $row[19]; - $hotkeys_active = $row[20]; - $change_agent_campaign =$row[21]; - $agent_choose_ingroups =$row[22]; - $scheduled_callbacks = $row[24]; - $agentonly_callbacks = $row[25]; - $agentcall_manual = $row[26]; - $vicidial_recording = $row[27]; - $vicidial_transfers = $row[28]; - $delete_filters = $row[29]; - $alter_agent_interface_options =$row[30]; - $closer_default_blended = $row[31]; - $delete_call_times = $row[32]; - $modify_call_times = $row[33]; - $modify_users = $row[34]; - $modify_campaigns = $row[35]; - $modify_lists = $row[36]; - $modify_scripts = $row[37]; - $modify_filters = $row[38]; - $modify_ingroups = $row[39]; - $modify_usergroups = $row[40]; - $modify_remoteagents = $row[41]; - $modify_servers = $row[42]; - $view_reports = $row[43]; - $vicidial_recording_override = $row[44]; - $alter_custdata_override = $row[45]; - $qc_enabled = $row[46]; - $qc_user_level = $row[47]; - $qc_pass = $row[48]; - $qc_finish = $row[49]; - $qc_commit = $row[50]; - $add_timeclock_log = $row[51]; - $modify_timeclock_log = $row[52]; - $delete_timeclock_log = $row[53]; - $alter_custphone_override = $row[54]; - $vdc_agent_api_access = $row[55]; - $modify_inbound_dids = $row[56]; - $delete_inbound_dids = $row[57]; - $active = $row[58]; - $alert_enabled = $row[59]; - $download_lists = $row[60]; - $agent_shift_enforcement_override = $row[61]; - $manager_shift_enforcement_override = $row[62]; - $export_reports = $row[64]; - - if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + if ($LOGmodify_users==1) { - echo "
Δεν έχετε τις άδειες να τροποποιήσετε αυτόν τον χρήστη: $row[1]\n"; - } - else - { - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΧΡΗΣΤΩΝ: $row[1]\n"; - if ($LOGuser_level > 8) - {echo "\n";} + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -13375,7 +16275,7 @@ if ($ADD==31) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; @@ -13464,8 +16528,8 @@ if ($ADD==31) { $nabs = abs($n); $dtl = 'Balanced'; - if ($n<0) {$dtl = 'Agents Waiting for Calls';} - if ($n>0) {$dtl = 'Calls Waiting for Agents';} + if ($n<0) {$dtl = 'Πράκτορες Waiting for Calls';} + if ($n>0) {$dtl = 'Calls Waiting for Πράκτορες';} if ($n == $adaptive_dl_diff_target) {echo "\n";} else @@ -13474,7 +16538,7 @@ if ($ADD==31) } echo " $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE\n"; - echo "\n"; + echo "\n"; echo "\n"; + + + echo "\n"; + + + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; } echo "\n"; @@ -13528,17 +16641,34 @@ if ($ADD==31) echo "\n"; + echo "$NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; } echo "\n"; @@ -13548,6 +16678,22 @@ if ($ADD==31) echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($SSoutbound_autodial_active > 0) { echo "\n"; @@ -13556,42 +16702,69 @@ if ($ADD==31) if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; } - echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; echo "\n"; @@ -13599,9 +16772,9 @@ if ($ADD==31) { echo "\n"; } - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -13635,13 +16808,17 @@ if ($ADD==31) if ($SSenable_vtiger_integration > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; } else { @@ -13649,8 +16826,18 @@ if ($ADD==31) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($campaign_allow_inbound == 'Y') { echo "\n"; echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Δεν έχετε τις άδειες να τροποποιήσετε αυτόν τον χρήστη: $user\n"; + } else { - if ($LOGalter_agent_interface == "1") - {echo "\n";} + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΧΡΗΣΤΩΝ: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} else - {echo "\n";} - } - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - if ($LOGdelete_users > 0) - { - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΧΡΗΣΤΗ\n"; - } - echo "

Επιλέξτε εδώ για την σελίδα με τους χρόνους χρήσης\n"; - echo "

Επιλέξτε εδώ για τη κατάσταση του χρήστη\n"; - echo "

Πατήστε εδώ για στατιστικά χρήστη\n"; - echo "

Κάντε κλικ εδώ για το χρήστη πολλαπλών ημέρες καθεστώς λεπτομερώς την έκθεση\n"; - echo "

Επιλέξτε εδώ για τις Επανακλήσεις του χρήστη που κρατήθηκαν\n"; - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το αρχείο\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Αριθμός Χρήστη: $row[1]$NWB#vicidial_users-user$NWE
Κωδικός:$NWB#vicidial_users-pass$NWE
Πλήρες Ονομα: $NWB#vicidial_users-full_name$NWE
Επίπεδο Χρήστη: $NWB#vicidial_users-user_level$NWE
Ομάδα Χρήστη: \n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "\n"; } - echo "\n"; - echo "\n"; - echo "\n"; + echo "$Ugroups_list"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - if ($SSqc_features_active > 0) + if ($SSuser_territories_active > 0) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; } - } - if ($LOGuser_level > 8) - { - echo "\n"; -#9BB9FB -#B9CBFD - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - if ($SSoutbound_autodial_active > 0) + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) { - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if ($LOGuser_level > 8) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + #9BB9FB + #B9CBFD + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - } - echo "\n"; - echo "
Αριθμός Χρήστη: $user$NWB#vicidial_users-user$NWE
Κωδικός:$NWB#vicidial_users-pass$NWE
Πλήρες Ονομα: $NWB#vicidial_users-full_name$NWE
Επίπεδο Χρήστη: $NWB#vicidial_users-user_level$NWE
Ομάδα Χρήστη: $NWB#vicidial_users-user_group$NWE
Τηλέφωνο Σύνδεσης: $NWB#vicidial_users-phone_login$NWE
Κωδικός Πρόσβασης Τηλεφώνου: $NWB#vicidial_users-phone_pass$NWE
Ενεργή:$NWB#vicidial_users-active$NWE
ΕΠΙΛΟΓΕΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΧΕΙΡΙΣΤΩΝ:
Ο χειριστής επιλέγει Εισ.Ομάδες: $NWB#vicidial_users-agent_choose_ingroups$NWE
Ενεργά Κλειδιά: $NWB#vicidial_users-hotkeys_active$NWE
Προγραμματισμένες Επανακλήσεις: $NWB#vicidial_users-scheduled_callbacks$NWE
Μόνο του Χειριστή Επανακλήσεις: $NWB#vicidial_users-agentonly_callbacks$NWE
Εγχειρίδιο κλήσεων Χειριστή: $NWB#vicidial_users-agentcall_manual$NWE
Καταγραφή: $NWB#vicidial_users-vicidial_recording$NWE
Μεταφορές: $NWB#vicidial_users-vicidial_transfers$NWE
Η πιό στενή προεπιλογή συνδύασε: $NWB#vicidial_users-closer_default_blended$NWE
VICIDIAL συμπληρωματική προμήθεια καταγραφής: $NWB#vicidial_users-vicidial_recording_override$NWE
Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών: $NWB#vicidial_users-alter_custdata_override$NWE
Agent Alter Πελατών Παράκαμψη Τηλέφωνο:$NWB#vicidial_users-alter_custphone_override$NWE
Τηλέφωνο Σύνδεσης: $NWB#vicidial_users-phone_login$NWE
Κωδικός Πρόσβασης Τηλεφώνου: $NWB#vicidial_users-phone_pass$NWE
Ενεργή:$NWB#vicidial_users-active$NWE
Email:$NWB#vicidial_users-optional$NWE
Χρήστης Code: $NWB#vicidial_users-optional$NWE
Main Επικράτεια: $NWB#vicidial_users-optional$NWE
Agent Shift Επιβολή Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alert Enabled: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Τάξεις εκστρατείας:$NWB#vicidial_users-campaign_ranks$NWE
\n"; - echo "\n"; - echo "$RANKcampaigns_list"; - echo "
\n"; - echo "
Εισερχόμενες Ομάδες: $NWB#vicidial_users-closer_campaigns$NWE
\n"; - echo "\n"; - echo "$RANKgroups_list"; - echo "
\n"; - echo "
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC χρήστη Επίπεδο:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Τελείωμα:$NWB#vicidial_users-qc_finish$NWE
Αναλήψεις QC:$NWB#vicidial_users-qc_commit$NWE
Χρήστης Εδάφη: $Uterrs_list
ΕΠΙΛΟΓΈΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΔΙΑΧ:
Εκθέσεις άποψης: $NWB#vicidial_users-view_reports$NWE
Αλλάξτε τις επιλογές επιφάνειας εργασίας των χειριστών: $NWB#vicidial_users-alter_agent_interface_options$NWE
Τροποποιήστε τους χρήστες: $NWB#vicidial_users-modify_sections$NWE
Αλλαγή Εκστρατείας Χειριστή: $NWB#vicidial_users-change_agent_campaign$NWE
Διάγραψε τους χρήστες: $NWB#vicidial_users-delete_users$NWE
Τροποποιήστε τις ομάδες χρηστών: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις ομάδες χρηστών: $NWB#vicidial_users-delete_user_groups$NWE
Τροποποιήστε τους καταλόγους: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις Λίστες: $NWB#vicidial_users-delete_lists$NWE
Εισαγωγή Οδηγών: $NWB#vicidial_users-load_leads$NWE
Τροποποίηση Οδηγών: $NWB#vicidial_users-modify_leads$NWE
Κατεβάστε Λίστες: $NWB#vicidial_users-modify_leads$NWE
Εξαγωγή Εκθέσεις: $NWB#vicidial_users-export_reports$NWE
Τροποποιήστε τις εκστρατείες: $NWB#vicidial_users-modify_sections$NWE
Λεπτομέρειες εκστρατείας: $NWB#vicidial_users-campaign_detail$NWE
Διάγραψε τις εκστρατείες: $NWB#vicidial_users-delete_campaigns$NWE
Τροποποιήστε τις-ΟΜΑΔΕΣ: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις Εισ-ΟΜΑΔΕΣ: $NWB#vicidial_users-delete_ingroups$NWE
Τροποποιήστε DIDs:$NWB#vicidial_users-modify_sections$NWE
Διαγραφή DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Τροποποιήστε τους μακρινούς πράκτορες: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τους Απομακρυσμένους Χειριστές: $NWB#vicidial_users-delete_remote_agents$NWE
Τροποποιήστε τα χειρόγραφα: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τον Βοηθόs: $NWB#vicidial_users-delete_scripts$NWE
Τροποποιήστε τα φίλτρα: $NWB#vicidial_users-modify_sections$NWE
Διαγραφή Φίλτρουs: $NWB#vicidial_users-delete_filters$NWE
ΕΠΙΛΟΓΕΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΧΕΙΡΙΣΤΩΝ:
Ο χειριστής επιλέγει Εισ.Ομάδες: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agent Επιλέξτε Εδάφη: $NWB#vicidial_users-agent_choose_territories$NWE
Ενεργά Κλειδιά: $NWB#vicidial_users-hotkeys_active$NWE
Προγραμματισμένες Επανακλήσεις: $NWB#vicidial_users-scheduled_callbacks$NWE
Μόνο του Χειριστή Επανακλήσεις: $NWB#vicidial_users-agentonly_callbacks$NWE
Εγχειρίδιο κλήσεων Χειριστή: $NWB#vicidial_users-agentcall_manual$NWE
Καταγραφή: $NWB#vicidial_users-vicidial_recording$NWE
Μεταφορές: $NWB#vicidial_users-vicidial_transfers$NWE
Η πιό στενή προεπιλογή συνδύασε: $NWB#vicidial_users-closer_default_blended$NWE
VICIDIAL συμπληρωματική προμήθεια καταγραφής: $NWB#vicidial_users-vicidial_recording_override$NWE
Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών: $NWB#vicidial_users-alter_custdata_override$NWE
Agent Alter Πελατών Παράκαμψη Τηλέφωνο:$NWB#vicidial_users-alter_custphone_override$NWE
Agent Shift Επιβολή Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alert Enabled: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Επιτρέψτε Alerts: $NWB#vicidial_users-allow_alerts$NWE
Τάξεις εκστρατείας:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Εισερχόμενες Ομάδες: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC χρήστη Επίπεδο:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Τελείωμα:$NWB#vicidial_users-qc_finish$NWE
Αναλήψεις QC:$NWB#vicidial_users-qc_commit$NWE
Πρόσβαση AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
Το AGC διαγράφει τα τηλέφωνα: $NWB#vicidial_users-ast_delete_phones$NWE
Τροποποίηση Χρόνου Κλήσηςs: $NWB#vicidial_users-modify_call_times$NWE
Διαγραφή Χρόνου Κλήσηςs: $NWB#vicidial_users-delete_call_times$NWE
Τροποποιήστε τους κεντρικούς υπολογιστές: $NWB#vicidial_users-modify_sections$NWE
Agent API Πρόσβαση:$NWB#vicidial_users-vdc_agent_api_access$NWE
ΕΠΙΛΟΓΈΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΔΙΑΧ:
ΠροσθήκηΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-add_timeclock_log$NWE
ΤροποποιήστεΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-modify_timeclock_log$NWE
ΔιαγραφήΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-delete_timeclock_log$NWE
Εκθέσεις άποψης: $NWB#vicidial_users-view_reports$NWE
Manager Shift Επιβολή Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
Αλλάξτε τις επιλογές επιφάνειας εργασίας των χειριστών: $NWB#vicidial_users-alter_agent_interface_options$NWE
Τροποποιήστε τους χρήστες: $NWB#vicidial_users-modify_sections$NWE
Αλλαγή Εκστρατείας Χειριστή: $NWB#vicidial_users-change_agent_campaign$NWE
Διάγραψε τους χρήστες: $NWB#vicidial_users-delete_users$NWE
\n"; + echo "
Τροποποιήστε τις ομάδες χρηστών: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις ομάδες χρηστών: $NWB#vicidial_users-delete_user_groups$NWE
Τροποποιήστε τους καταλόγους: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις Λίστες: $NWB#vicidial_users-delete_lists$NWE
Εισαγωγή Οδηγών: $NWB#vicidial_users-load_leads$NWE
Τροποποίηση Οδηγών: $NWB#vicidial_users-modify_leads$NWE
Κατεβάστε Λίστες: $NWB#vicidial_users-modify_leads$NWE
Εξαγωγή Εκθέσεις: $NWB#vicidial_users-export_reports$NWE
Διαγραφή DNC Από Λίστες: $NWB#vicidial_users-delete_from_dnc$NWE
Τροποποιήστε τις εκστρατείες: $NWB#vicidial_users-modify_sections$NWE
Λεπτομέρειες εκστρατείας: $NWB#vicidial_users-campaign_detail$NWE
Διάγραψε τις εκστρατείες: $NWB#vicidial_users-delete_campaigns$NWE
Τροποποιήστε τις-ΟΜΑΔΕΣ: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις Εισ-ΟΜΑΔΕΣ: $NWB#vicidial_users-delete_ingroups$NWE
Τροποποιήστε DIDs:$NWB#vicidial_users-modify_sections$NWE
Διαγραφή DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Τροποποιήστε τους μακρινούς πράκτορες: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τους Απομακρυσμένους Χειριστές: $NWB#vicidial_users-delete_remote_agents$NWE
Τροποποιήστε τα χειρόγραφα: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τον Βοηθόs: $NWB#vicidial_users-delete_scripts$NWE
Τροποποιήστε τα φίλτρα: $NWB#vicidial_users-modify_sections$NWE
Διαγραφή Φίλτρουs: $NWB#vicidial_users-delete_filters$NWE
Πρόσβαση AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
Το AGC διαγράφει τα τηλέφωνα: $NWB#vicidial_users-ast_delete_phones$NWE
Τροποποίηση Χρόνου Κλήσηςs: $NWB#vicidial_users-modify_call_times$NWE
Διαγραφή Χρόνου Κλήσηςs: $NWB#vicidial_users-delete_call_times$NWE
Τροποποιήστε τους κεντρικούς υπολογιστές: $NWB#vicidial_users-modify_sections$NWE
Agent API Πρόσβαση:$NWB#vicidial_users-vdc_agent_api_access$NWE
ΠροσθήκηΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-add_timeclock_log$NWE
ΤροποποιήστεΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-modify_timeclock_log$NWE
ΔιαγραφήΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-delete_timeclock_log$NWE
Manager Shift Επιβολή Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΧΡΗΣΤΗ\n"; + } + echo "

Επιλέξτε εδώ για την σελίδα με τους χρόνους χρήσης\n"; + echo "

Επιλέξτε εδώ για τη κατάσταση του χρήστη\n"; + echo "

Πατήστε εδώ για στατιστικά χρήστη\n"; + echo "

Κάντε κλικ εδώ για το χρήστη πολλαπλών ημέρες καθεστώς λεπτομερώς την έκθεση\n"; + echo "

Επιλέξτε εδώ για τις Επανακλήσεις του χρήστη που κρατήθηκαν\n"; + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το αρχείο
\n"; + } } } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -13003,19 +15863,19 @@ if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==31) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; $rslt=mysql_query($stmt, $link); @@ -13023,7 +15883,7 @@ if ($ADD==31) $enable_vtiger_integration_LU = $row[0]; $vtiger_url_LU = $row[1]; - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $campaign_name = $row[1]; @@ -13128,6 +15988,42 @@ if ($ADD==31) $cpd_amd_action = $row[103]; $agent_allow_group_alias = $row[104]; $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -13173,14 +16069,13 @@ if ($ADD==31) $QCL_to_print = (count($QClists) -0); ##### get status listings for dynamic pulldown - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; $dial_statuses_list=''; $qc_statuses_list=''; $survey_ni_status_list=''; - $o=0; while ($statuses_to_print > $o) { @@ -13218,7 +16113,7 @@ if ($ADD==31) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -13359,9 +16254,14 @@ if ($ADD==31) echo "
Περιγραφή εκστρατείας: $NWB#vicidial_campaigns-campaign_description$NWE
Εκστρατεία Αλλαγή Ημερομηνία: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Εκστρατεία Σύνδεση Ημερομηνία: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Εκστρατεία Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Τηλ.σύνδ. Στάθμευσης: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Ιστο-σελίδα: $NWB#vicidial_campaigns-web_form_address$NWE
Ιστο-σελίδα: $NWB#vicidial_campaigns-web_form_address$NWE
Ιστο-σελίδα Two: $NWB#vicidial_campaigns-web_form_address$NWE
Web Μορφή Target: $NWB#vicidial_campaigns-web_form_target$NWE
Επιτρέπω τους Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Θέση πινάκων$o: \n"; + echo "
Θέση πινάκων$o: \n"; if ($DEFstatusDISABLED > 0) { @@ -13389,14 +16289,118 @@ if ($ADD==31) } } - echo "
Add A Dial Κατάσταση:
Add A Dial Κατάσταση:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Σειρά Λίστας: $NWB#vicidial_campaigns-lead_order$NWE
Σειρά Λίστας: $NWB#vicidial_campaigns-lead_order$NWE
Κατάλογος Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Drop Lockout Ώρα: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Αναγκαστική Επαναφορά του Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Μέθοδος Κλήσης : $NWB#vicidial_campaigns-dial_method$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ΠΡΟΣΑΡΜΟΣΤΕ ΤΗ ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ΠΡΟΣΑΡΜΟΣΤΕ ΤΗ ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ
Διαθέσιμα μόνο ετικέτες : $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Ποσοστό Ορίου Εγκατ.Κλήσεων : % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Ταυτόχρονες μεταφορές: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Ταυτόχρονες μεταφορές: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Κοτσίδας Προτεραιότητα: $NWB#vicidial_campaigns-queue_priority$NWE
Πολλαπλές Καμπάνια Drop Rate Ομάδα: $NWB#vicidial_campaigns-drop_rate_group$NWE
Αυτόματος σχηματισμός ALT-ARJCMOY: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_campaigns-next_agent_call$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_campaigns-next_agent_call$NWE
Χρόνος Τοπικής Κλήσης:
Κλήση εκτός χρόνου: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Κλήση εκτός χρόνου: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Πρόθεμα Κλήσης: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Παράλειψη Κωδικού Τηλεφώνου : $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID Εκστρατείας: $NWB#vicidial_campaigns-campaign_cid$NWE
CallerID Εκστρατείας: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Εκστρατείας VDAD εσωτ.σύνδεση: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Εκστρατείας VDAD εσωτ.σύνδεση: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Επέκταση εκστρατείας Ηχογρ: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_campaigns-get_call_launch$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_campaigns-get_call_launch$NWE
Μήνυμα Αυτόματου Τηλεφωνητή: $NWB#vicidial_campaigns-am_message_exten$NWE
Μήνυμα Αυτόματου Τηλεφωνητή: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Επιλογές: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD στέλνει στο VM: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
AMD στέλνει στο VM: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD δράσης: $NWB#vicidial_campaigns-cpd_amd_action$NWE
CPD AMD δράσης: $NWB#vicidial_campaigns-cpd_amd_action$NWE
DTMF Μεταφοράς-Συνδ 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Γρήγορη Μεταφορά Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Μεταφορά PrePopulate Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Timer Δράση: $NWB#vicidial_campaigns-timer_action$NWE
Timer Δράση Μήνυμα: $NWB#vicidial_campaigns-timer_action_message$NWE
Timer Δευτερόλεπτα Δράση: $NWB#vicidial_campaigns-timer_action_seconds$NWE
Κλήση Εναλ Αριθμού: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Δευτερ. Εγκαταλ. Κλήσης: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Δευτερ. Εγκαταλ. Κλήσης: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop δράσης:$NWB#vicidial_campaigns-drop_action$NWE
Drop δράσης:$NWB#vicidial_campaigns-drop_action$NWE
Εσωτ.Σύνδεση Ασφαλούς Φιλοξενίας: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Εσωτ.Σύνδεση Ασφαλούς Φιλοξενίας: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: $NWB#vicidial_campaigns-voicemail_ext$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Drop Μεταφορά Ομάδα:
Drop Μεταφορά Ομάδα:$NWB#vicidial_campaigns-drop_inbound_group$NWE
Δευτερ Τυλίγματος: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Μήνυμα Τυλίγματος: $NWB#vicidial_campaigns-wrapup_message$NWE
Εσωτερικός κατάλογος DNC χρήσης: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Εσωτερικός κατάλογος DNC χρήσης: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Χρησιμοποίησε Καμπάνια DNC Κατάλογος: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
Χρησιμοποίησε Καμπάνια DNC Κατάλογος: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentΚώδικες μικρής διακοπήςΕνεργή:$NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Εκστρατεία Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Απενεργοποίηση Alter Πελατών Τηλέφωνο:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Απενεργοποίηση Alter Πελατών Τηλέφωνο:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Επιτρέψτε τους κανένας-χοάνη-μολύβδους Logins: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
Δεν Hopper Κλήση: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Ιδιοκτήτης Μόνο Κλήση: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agent Επιλέξτε Εδάφη: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent Εμφάνιση Dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Εμφάνιση Agent Queue Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Χειρωνακτικός κατάλογος ταυτότητα πινάκων:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Εμφάνιση Agent Queue Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Εγχειρίδιο Dial Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent κλήσεων στην ουρά: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Δείτε καλεί στην ουρά Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agent καλεί Πιάσε στην ουρά: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Agent Call Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agent Παύση Μετά από κάθε πρόσκληση: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Χειρωνακτικός κατάλογος ταυτότητα πινάκων:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Εγχειρίδιο Dial Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent Screen Clipboard Αντιγραφή: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agent Screen Εκτεταμένη Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Way Outbound Call CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Outbound Call CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Call Πρόθεμα Κλήσης: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
3-Way Call Πρόθεμα Κλήσης: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Ομάδα Γνωστός Επιτρέπεται: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Αναζήτηση Vtiger Κατηγορία: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Αναζήτηση Vtiger Κατηγορία: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Δημιουργία Vtiger Call Record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Αναζήτηση Dead Λογαριασμών: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Δημιουργία Vtiger Μόλυβδος Εγγραφή: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Δημιουργία Vtiger Call Record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Screen Είσοδος: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
Δημιουργία Vtiger Μόλυβδος Εγγραφή: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Κατάσταση Call: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Screen Είσοδος: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Σύνδεση: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup Διεύθυνση: $NWB#vicidial_campaigns-crm_login_address$NWE
Ξεκινήστε Call URL: $NWB#vicidial_campaigns-start_call_url$NWE
Καλέστε dispo URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Εισερχόμενες ομάδες:
"; @@ -13674,37 +16861,37 @@ if ($ADD==31) echo "
\n"; - echo "
\n"; + echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "
ΛΙΣΤΕΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_campaign_lists$NWE\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "
ΛΙΣΤΕΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_campaign_lists$NWE\n"; - echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14424,7 +17639,7 @@ if ($ADD==34) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; - - echo "
\n"; - echo ""; + echo "\n"; echo "
\n"; + echo ""; - $LISTlink='stage=LISTIDDOWN'; - $TALLYlink='stage=TALLYDOWN'; - $ACTIVElink='stage=ACTIVEDOWN'; - $CAMPAIGNlink='stage=CAMPAIGNDOWN'; - $CALLDATElink='stage=CALLDATEDOWN'; - $SQLorder='order by list_id'; - if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} - if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} - if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} - if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} - if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} - if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} - if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} - if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} - if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} - if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -13757,47 +16944,48 @@ if ($ADD==31) echo "

\n"; - echo "
\n"; + echo "
\n"; - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} - else - {$fSQL = '';} + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Αυτή η εκστρατεία έχει$active_lists ενεργές λίστες και$inactive_lists Μη ενεργές λίστες

\n"; + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Αυτή η εκστρατεία έχει$active_lists ενεργές λίστες και$inactive_lists Μη ενεργές λίστες

\n"; - if ($display_dialable_count == 'Y') - { - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - echo " - ΑΠΟΚΡΥΨΗ

"; + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - ΑΠΟΚΡΥΨΗ

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - ΕΜΦΑΝΙΣΗ

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Αυτή η εκστρατεία έχει$hopper_leads >οδηγοί στον hopper κλήσεων<

\n"; + echo "Πατήστε εδώ για να δείτε ποιοι οδηγοί είναι στον hopper τώρα

\n"; + echo "Κάντε κλικ εδώ για να δείτε μια VDAD έκθεση για αυτή την καμπάνια

\n"; } - else + echo "Επιλέξτε εδώ για να δείτε τις κρατειμένες Επανακλήσεις σε αυτήν την εκστρατεία

\n"; + if ($LOGuser_level >= 9) { - echo "Popup Dialable Leads Count"; - echo " - ΕΜΦΑΝΙΣΗ

"; + echo "

Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την εκστρατεία
\n"; } - - $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $hopper_leads = "$rowx[0]"; - - echo "Αυτή η εκστρατεία έχει$hopper_leads >οδηγοί στον hopper κλήσεων<

\n"; - echo "Πατήστε εδώ για να δείτε ποιοι οδηγοί είναι στον hopper τώρα

\n"; - echo "Κάντε κλικ εδώ για να δείτε μια VDAD έκθεση για αυτή την καμπάνια

\n"; + echo "
\n"; } - echo "Επιλέξτε εδώ για να δείτε τις κρατειμένες Επανακλήσεις σε αυτήν την εκστρατεία

\n"; - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την εκστρατεία\n"; - } - echo "
\n"; - } ##### CAMPAIGN CUSTOM STATUSES ##### @@ -13823,9 +17011,9 @@ if ($ADD==31) echo "
\n"; echo "
ΠΡΟΣΑΡΜΟΣΜΕΝΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_campaign_statuses$NWE
\n"; echo "\n"; - echo "\n"; + echo "\n"; - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -13858,6 +17046,14 @@ if ($ADD==31) echo "\n"; } @@ -13868,8 +17064,13 @@ if ($ADD==31) echo "\n"; echo "Κατάσταση:   \n"; echo "Περιγραφή:   \n"; - echo "Επιλέξιμο:   \n"; - echo "Ανθρώπινα Απάντηση:   \n"; + echo "Επιλέξιμο:  
\n"; + echo "Ανθρώπινα Απάντηση:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; echo "Κατηγορία:\n"; echo "
ΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗΕΠΙΛΕΞΙΜΟΑΝΘΡΩΠΙΝΗ ΑΠΑΝΤΗΣΗΔΙΑΓΡΑΦΗ
ΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗΕΠΙΛΕΞΙΜΟΑΝΘΡΩΠΙΝΗ ΑΠΑΝΤΗΣΗΚΑΤΗΓΟΡΙΑMODIFY-DELETE
        \n"; echo "   \n"; echo "ΔΙΑΓΡΑΦΗ\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT * from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -13947,7 +17149,7 @@ if ($ADD==31) } $camp_lists = eregi_replace(".$","",$camp_lists); - $stmt="SELECT * from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; @@ -14073,13 +17275,14 @@ if ($ADD==31) echo "
ΚΛΕΙΔΙΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗΔΙΑΓΡΑΦΗ
\n"; echo "\n"; - $stmt="SELECT * from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; - $rslt=mysql_query($stmt, $link); - $pause_codes_to_print = mysql_num_rows($rslt); - $o=0; - while ($pause_codes_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -14195,22 +17398,33 @@ if ($ADD==31) { echo "

ΕΡΕΥΝΑ SETTINGS για αυτήν την καμπάνια:
\n"; - echo "
ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣΧΡΕΩΤΕΟΣΤΡΟΠΟΠΟΙΗΣΗΔΙΑΓΡΑΦΗ
\n"; + echo "
\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "
\n"; echo "\n"; - echo "
Έρευνα Πρώτο αρχείο ήχου: $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Έρευνα Πρώτο αρχείο ήχου: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Έρευνα DTMF Digits: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Έρευνα δεν ενδιαφέρεται Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Έρευνα Opt-σε αρχείο ήχου: $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Έρευνα δεν ενδιαφέρεται αρχείο ήχου: $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Έρευνα Opt-σε αρχείο ήχου: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Έρευνα δεν ενδιαφέρεται αρχείο ήχου: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Έρευνα Μέθοδος: $NWB#vicidial_campaigns-survey_method$NWE
Έρευνα της μη αντίδρασης δράσης: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Έρευνα δεν ενδιαφέρεται Κατάσταση: $NWB#vicidial_campaigns-survey_ni_status$NWE
Έρευνα τρίτο ψηφίο: $NWB#vicidial_campaigns-survey_third_digit$NWE
Έρευνα Τρίτη Audio File: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Έρευνα Τρίτη Κατάσταση: $NWB#vicidial_campaigns-survey_third_status$NWE
Έρευνα Τρίτη Παράταση: $NWB#vicidial_campaigns-survey_third_exten$NWE
Έρευνα τέταρτο ψηφίο: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Έρευνα Τέταρτη Audio File: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Έρευνα Τέταρτη Κατάσταση: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Έρευνα Τέταρτη Παράταση: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Έρευνα Απάντηση Digit Χάρτης: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Έρευνα Έρευνα Xfer Παράταση: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Έρευνα Καμπάνια Καταγραφή Directory: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: $NWB#vicidial_campaigns-voicemail_ext$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; @@ -14221,8 +17435,8 @@ if ($ADD==31) if ($SUB < 1) { echo "

\n"; - echo "
ΑΠΟΣΥΝΔΕΣΗ ΟΛΩΝ ΤΩΝ ΧΕΙΡΙΣΤΩΝ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ

\n"; - echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + echo "ΑΠΟΣΥΝΔΕΣΗ ΟΛΩΝ ΤΩΝ ΧΕΙΡΙΣΤΩΝ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; if ($LOGdelete_campaigns > 0) { @@ -14246,21 +17460,21 @@ if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==34) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dial_status_a = $row[3]; @@ -14294,13 +17508,14 @@ if ($ADD==34) $default_xfer_group = $row[67]; $campaign_allow_inbound = $row[65]; $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} else {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; @@ -14318,7 +17533,7 @@ if ($ADD==34) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -14409,7 +17624,7 @@ if ($ADD==34) echo "
Εκστρατεία Αλλαγή Ημερομηνία: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Εκστρατεία Σύνδεση Ημερομηνία: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Τηλ.σύνδ. Στάθμευσης: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Ιστο-σελίδα: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Επιτρέπω τους Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Θέση πινάκων$o: \n"; + echo "
Θέση πινάκων$o: \n"; if ($DEFstatusDISABLED > 0) { echo "$Dstatus - $statname_list[$Dstatus]         \n"; @@ -14437,14 +17652,118 @@ if ($ADD==34) } } - echo "
Add A Dial Κατάσταση:
Add A Dial Κατάσταση:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Σειρά Λίστας: $NWB#vicidial_campaigns-lead_order$NWE
Σειρά Λίστας: $NWB#vicidial_campaigns-lead_order$NWE
Κατάλογος Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Αναγκαστική Επαναφορά του Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Μέθοδος Κλήσης : $NWB#vicidial_campaigns-dial_method$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Ενταση Τροποποίησης Προσαρμογής : \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT user,campaign_rank,calls_today from vicidial_campaign_agents where campaign_id='$campaign_id'"; + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); @@ -14639,13 +18014,13 @@ if ($ADD==34) else {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; } echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; - echo "ΑΠΟΣΥΝΔΕΣΗ ΟΛΩΝ ΤΩΝ ΧΕΙΡΙΣΤΩΝ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ

\n"; + echo "ΑΠΟΣΥΝΔΕΣΗ ΟΛΩΝ ΤΩΝ ΧΕΙΡΙΣΤΩΝ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ

\n"; if ($LOGdelete_campaigns > 0) @@ -14693,10 +18068,18 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

ΜΙΓΜΑΤΑ ΚΑΤΑΛΟΓΩΝ ΓΙΑ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; - echo "

Experimental Feature in development!!! NON-FUNCTIONAL
\n"; + echo "
ΠΡΟΕΙΔΟΠΟΙΗΣΗ, προτείνουμε μόνο Κατάλογος Mix για προχωρημένους χρήστες, Παρακαλώ διαβάστε το ViciDial Manager εγχειριδίου
\n"; + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } - $stmt="SELECT * from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; $rslt=mysql_query($stmt, $link); $listmixes = mysql_num_rows($rslt); $o=0; @@ -14715,11 +18098,11 @@ if ( ($ADD==34) or ($ADD==31) ) else {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} } - echo "
\n"; + echo "

\n"; echo ""; echo "\n"; echo "\n"; + echo "List: $MIXdetailsLIST   ΑΦΑΙΡΕΣΤΕ\n"; echo "\n"; @@ -14825,8 +18208,8 @@ if ( ($ADD==34) or ($ADD==31) ) echo "\n"; - echo "\n"; + echo "\n"; - if ($q > 9) {$AE_disabled = 'DISABLED';} + if ($q > 39) {$AE_disabled = 'DISABLED';} else {$AE_disabled = '';} - echo "\n"; + + $X='X'; + echo "\n"; echo "
\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14770,10 +18153,10 @@ if ( ($ADD==34) or ($ADD==31) ) echo "
\n"; echo "\n"; - echo "List: $MIXdetailsLIST   ΑΦΑΙΡΕΣΤΕ
\n"; - echo "
\n"; + echo "
\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14835,11 +18218,27 @@ if ( ($ADD==34) or ($ADD==31) ) echo "List: \n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "ΑΦΑΙΡΕΣΤΕ\n"; echo "
\n"; } @@ -14847,7 +18246,7 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΛΙΣΤΑΣ MIX
\n"; echo "\n"; - echo "
\n"; + echo "
\n"; echo "\n"; echo "\n"; echo "\n"; @@ -15266,356 +18665,565 @@ echo "
\n"; ###################### if ($ADD==311) -{ + { if ($LOGmodify_lists==1) - { - echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_lists where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $campaign_id = $row[2]; - $active = $row[3]; - $list_description = $row[4]; - $list_changedate = $row[5]; - $list_lastcalldate = $row[6]; - - # grab names of global statuses and statuses in the selected campaign - $stmt="SELECT * from vicidial_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($Cstatuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - # end grab status names - - - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΛΙΣΤΑΣ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
ID Λίστας: $row[0]$NWB#vicidial_lists-list_id$NWE
Ονομα Λίστας: $NWB#vicidial_lists-list_name$NWE
Περιγραφή καταλόγων: $NWB#vicidial_lists-list_description$NWE
Εκστρατεία: $NWB#vicidial_lists-campaign_id$NWE
Ενεργή:$NWB#vicidial_lists-active$NWE
ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΟΔΗΓΟΥ ΓΙΑ ΤΗΝ ΛΙΣΤΑ: $NWB#vicidial_lists-reset_list$NWE
Ημερομηνία αλλαγής καταλόγων: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Κατάλογος Last Call Ημερομηνία: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
\n"; - - echo "
\n"; - echo "
ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΛΙΣΤΑ:
\n"; - echo "\n"; - echo "\n"; - - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } - - $o=0; - if ($lead_list['count'] > 0) - { - while (list($dispo,) = each($lead_list[$since_reset])) { + echo "
ΚΑΤΑΣΤΑΣΗΟΝΟΜΑ ΚΑΤΑΣΤΑΣΗΣΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
\n"; - $o++; - } - } + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); - echo "\n"; - echo "\n"; + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names - echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; - if ($dispo == 'CBHOLD') + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) { - $CLB=""; - $CLE=""; - } - else - { - $CLB=''; - $CLE=''; + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; } - echo "
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; - unset($lead_list); + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} - echo "
\n"; - echo "
ΖΩΝΕΣ ΩΡΑΣ ΣΤΗΝ ΛΙΣΤΑ:
\n"; - echo "\n"; - echo "\n"; + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΛΙΣΤΑΣ: $list_id\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
GMT OFFSET (τοπικός χρόνος)ΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $o=0; - $plus='+'; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } + echo "\n"; - if ($lead_list['count'] > 0) - { - while (list($tzone,) = each($lead_list[$since_reset])) - { - $LOCALzone=3600 * $tzone; - $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + echo "\n"; - if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} - else {$DISPtzone = "$tzone";} - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + echo "\n"; - echo "\n"; - } - } + echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - echo "
ID Λίστας: $list_id$NWB#vicidial_lists-list_id$NWE
Ονομα Λίστας: $NWB#vicidial_lists-list_name$NWE
Περιγραφή καταλόγων: $NWB#vicidial_lists-list_description$NWE
Εκστρατεία: $NWB#vicidial_lists-campaign_id$NWE
Ενεργή:$NWB#vicidial_lists-active$NWE
ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΟΔΗΓΟΥ ΓΙΑ ΤΗΝ ΛΙΣΤΑ: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Ημερομηνία αλλαγής καταλόγων: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Κατάλογος Last Call Ημερομηνία: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Σενάριο Παράκαμψη: $NWB#vicidial_lists-agent_script_override$NWE
Καμπάνια CID Παράκαμψη: $NWB#vicidial_lists-campaign_cid_override$NWE
Τηλεφωνητής Μήνυμα Παράκαμψη: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
Drop Inbound Ομάδα Παράκαμψη: $NWB#vicidial_lists-drop_inbound_group_override$NWE
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]
Αριθμός Μεταφοράς-Συνδ 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE

\n"; - unset($lead_list); + echo "
Αριθμός Μεταφοράς-Συνδ 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_count,count(*) from vicidial_list where list_id='$list_id' group by status,called_count order by status,called_count"; - $rslt=mysql_query($stmt, $link); - $status_called_to_print = mysql_num_rows($rslt); + echo "
\n"; + echo "
ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΛΙΣΤΑ:
\n"; + echo "\n"; + echo "\n"; - $o=0; - $sts=0; - $first_row=1; - $all_called_first=1000; - $all_called_last=0; - while ($status_called_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $leads_in_list = ($leads_in_list + $rowx[2]); - $count_statuses[$o] = "$rowx[0]"; - $count_called[$o] = "$rowx[1]"; - $count_count[$o] = "$rowx[2]"; - $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); - if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) - { - if ($first_row) {$first_row=0;} - else {$sts++;} - $status[$sts] = "$rowx[0]"; - $status_called_first[$sts] = "$rowx[1]"; - if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} - } - $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); - $status_called_last[$sts] = "$rowx[1]"; - if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - $o++; - } + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ΚΑΤΑΣΤΑΣΗΟΝΟΜΑ ΚΑΤΑΣΤΑΣΗΣΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); + echo "
\n"; + echo "
ΖΩΝΕΣ ΩΡΑΣ ΣΤΗΝ ΛΙΣΤΑ:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
GMT OFFSET (τοπικός χρόνος)ΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); - echo "
\n"; - echo "
ΜΕΤΡΗΣΗ ΚΛΗΣΕΩΝ ΣΤΗΝ ΛΙΣΤΑ:
\n"; - echo "\n"; - echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; + echo "
\n"; + echo "
ΙΔΙΟΚΤΗΤΕΣ Στον κατάλογο:
\n"; + echo "
ΚΑΤΑΣΤΑΣΗΟΝΟΜΑ ΚΑΤΑΣΤΑΣΗΣ$firstΥΠΟΣΥΝΟΛΟ
\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
Βαθμοί Στον κατάλογο:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
ΜΕΤΡΗΣΗ ΚΛΗΣΕΩΝ ΣΤΗΝ ΛΙΣΤΑ:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; $sts=0; $statuses_called_to_print = count($status); while ($statuses_called_to_print > $sts) - { - $Pstatus = $status[$sts]; - if (eregi("1$|3$|5$|7$|9$", $sts)) - {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} - else - {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} - # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; - # echo "$status[$sts]|"; - echo ""; + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; $first = $all_called_first; while ($first <= $all_called_last) { - if (eregi("1$|3$|5$|7$|9$", $sts)) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - else - { - if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - - $called_printed=0; - $o=0; - while ($status_called_to_print > $o) - { - if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) - { - $called_printed++; - echo ""; - } - - - $o++; - } - if (!$called_printed) - {echo "";} + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; $first++; } - echo "\n\n"; + echo "\n"; - $sts++; + echo "
ΚΑΤΑΣΤΑΣΗΟΝΟΜΑ ΚΑΤΑΣΤΑΣΗΣ$first$FplusΥΠΟΣΥΝΟΛΟ
$Pstatus$statuses_list[$Pstatus]
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
ΣΥΝΟΛΙΚΑ $count_count[$o]  $all_called_count[$first]$leads_in_sts[$sts]
$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος στον κατάλογο αυτό

\n"; + echo "

Κάντε κλικ εδώ για να κατεβάσετε τον κατάλογο αυτό

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗ ΤΗΝ ΛΙΣΤΑ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την λίστα\n"; + } } - - echo "
ΣΥΝΟΛΙΚΑ$all_called_count[$first]$leads_in_list

\n"; - - - - - - echo "
\n"; - - echo "

Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος στον κατάλογο αυτό

\n"; - echo "

Κάντε κλικ εδώ για να κατεβάσετε τον κατάλογο αυτό

\n"; - - if ($LOGdelete_lists > 0) - { - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗ ΤΗΝ ΛΙΣΤΑ\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την λίστα
\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} @@ -15624,345 +19232,429 @@ if ($ADD==311) ###################### if ($ADD==3111) -{ - if ($LOGmodify_ingroups==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_groups where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $group_name = $row[1]; - $group_color = $row[2]; - $active = $row[3]; - $web_form_address = stripslashes($row[4]); - $voicemail_ext = $row[5]; - $next_agent_call = $row[6]; - $fronter_display = $row[7]; - $script_id = $row[8]; - $get_call_launch = $row[9]; - $xferconf_a_dtmf = $row[10]; - $xferconf_a_number = $row[11]; - $xferconf_b_dtmf = $row[12]; - $xferconf_b_number = $row[13]; - $drop_call_seconds = $row[14]; - $drop_action = $row[15]; - $drop_exten = $row[16]; - $call_time_id = $row[17]; - $after_hours_action = $row[18]; - $after_hours_message_filename = $row[19]; - $after_hours_exten = $row[20]; - $after_hours_voicemail = $row[21]; - $welcome_message_filename = $row[22]; - $moh_context = $row[23]; - $onhold_prompt_filename = $row[24]; - $prompt_interval = $row[25]; - $agent_alert_exten = $row[26]; - $agent_alert_delay = $row[27]; - $default_xfer_group = $row[28]; - $queue_priority = $row[29]; - $drop_inbound_group = $row[30]; - $ingroup_recording_override = $row[31]; - $ingroup_rec_filename = $row[32]; - $afterhours_xfer_group = $row[33]; - $qc_enabled = $row[34]; - $qc_statuses = $row[35]; - $qc_shift_id = $row[36]; - $qc_get_record_launch = $row[37]; - $qc_show_recording = $row[38]; - $qc_web_form_address = stripslashes($row[39]); - $qc_script = $row[40]; - $play_place_in_line = $row[41]; - $play_estimate_hold_time = $row[42]; - $hold_time_option = $row[43]; - $hold_time_option_seconds = $row[44]; - $hold_time_option_exten = $row[45]; - $hold_time_option_voicemail = $row[46]; - $hold_time_option_xfer_group = $row[47]; - $hold_time_option_callback_filename = $row[48]; - $hold_time_option_callback_list_id = $row[49]; - $hold_recall_xfer_group = $row[50]; - $no_delay_call_route = $row[51]; - $play_welcome_message = $row[52]; - $answer_sec_pct_rt_stat_one = $row[53]; - $answer_sec_pct_rt_stat_two = $row[54]; - $default_group_alias = $row[55]; - - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $Dgroups_menu=''; - $Dgroups_selected=0; - $Agroups_menu=''; - $Agroups_selected=0; - $Hgroups_menu=''; - $Hgroups_selected=0; - $Tgroups_menu=''; - $Tgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) + if ($LOGmodify_ingroups==1) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "\n"; - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - if ($group_id!=$rowx[0]) - { - $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - } - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - if ($Agroups_selected < 1) - {$Agroups_menu .= "\n";} - else - {$Agroups_menu .= "\n";} - if ($Tgroups_selected < 1) - {$Tgroups_menu .= "\n";} - else - {$Tgroups_menu .= "\n";} - if ($Hgroups_selected < 1) - {$Hgroups_menu .= "\n";} - else - {$Hgroups_menu .= "\n";} + echo "
\n"; + echo ""; - - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΟΜΑΔΩΝ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - ##### get groups_alias listings for dynamic default group alias pulldown list menu - $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; - $rslt=mysql_query($stmt, $link); - $group_alias_to_print = mysql_num_rows($rslt); - $group_alias_menu=''; - $group_alias_selected=0; - $o=0; - while ($group_alias_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $group_alias_menu .= "\n"; - $o++; - } - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - - ##### get status listings for dynamic pulldown - $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); - $QCstatuses = explode(" ", $qc_statuses); - $QCs_to_print = (count($QCstatuses) -0); - $stmt="SELECT * from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $qc_statuses_list=''; + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; $o=0; - while ($statuses_to_print > $o) + while ($Xgroups_to_print > $o) { $rowx=mysql_fetch_row($rslt); - $qc_statuses_list .= "$rowx[0] - $rowx[1]\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΟΜΑΔΩΝ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
ID Ομάδας: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Ονομα Ομάδας: $NWB#vicidial_inbound_groups-group_name$NWE
Χρώμα Ομάδας: $NWB#vicidial_inbound_groups-group_color$NWE
Ενεργή:$NWB#vicidial_inbound_groups-active$NWE
Ιστο-σελίδα: $NWB#vicidial_inbound_groups-web_form_address$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Κοτσίδας Προτεραιότητα: $NWB#vicidial_inbound_groups-queue_priority$NWE
Μπροστινή Οθόνη: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_inbound_groups-get_call_launch$NWE
DTMF Μεταφοράς-Συνδ 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
DTMF Μεταφοράς-Συνδ 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Δευτερ. Εγκαταλ. Κλήσης: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop δράσης:$NWB#vicidial_inbound_groups-drop_action$NWE
Εσωτ. Σύνδεση Εγκατάλειψης: $NWB#vicidial_inbound_groups-drop_exten$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop Μεταφορά Ομάδα:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Χρόνος κλήσης:$NWB#vicidial_inbound_groups-call_time_id$NWE
Μετά από τη δράση ωρών:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Μετά από το όνομα αρχείου μηνυμάτων ωρών:$NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Μετά από την παράταση ωρών:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Μετά από το φωνητικό ταχυδρομείο ωρών:$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Μετά από ώρες Μεταφορά Ομάδα:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Ευπρόσδεκτο όνομα αρχείου μηνυμάτων:$NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Παίξτε Καλωσόρισμα:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Μουσική στο πλαίσιο λαβής:$NWB#vicidial_inbound_groups-moh_context$NWE
Στο γρήγορο όνομα αρχείου λαβής:$NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Στο γρήγορο διάστημα λαβής:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Παίξτε στο Line Τόπος:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Παίξτε Κρατήστε Εκτιμώμενη Ώρα:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Κρατήστε την επιλογή Ώρα:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Κρατήστε την επιλογή Δευτερόλεπτα Ώρα:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Κρατήστε Ώρα Επιλογή Παράταση:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Κρατήστε Ώρα Επιλογή Τηλεφωνητής:$NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Κρατήστε Ώρα Επιλογή Callback αρχείου:$NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Αγρυπνη επέκταση πρακτόρων:$NWB#vicidial_inbound_groups-agent_alert_exten$NWE
Αγρυπνη καθυστέρηση πρακτόρων:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Ομάδα μεταφοράς προεπιλογής:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Προεπιλεγμένη ομάδα Γνωστός: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Κρατήστε Ανάκληση Μεταφορά σε ομάδα:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Δεν Υστέρηση Call Διαδρομή:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
-Στην ομάδα Καταγραφή Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
-Στην ομάδα Καταγραφή αρχείου:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Στατιστικά Ποσοστό ζητεί απάντηση εντός δευτερολέπτων X 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Στατιστικά Ποσοστό ζητεί απάντηση εντός δευτερολέπτων X 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
 
Inbound Ομάδα QC Ρυθμίσεις:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; $o++; } - $stmt="SELECT distinct(status),status_name from vicidial_campaign_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); + echo "\n"; - $o=0; - while ($Cstatuses_to_print > $o) + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) { - $rowx=mysql_fetch_row($rslt); - if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) { + $rowx=mysql_fetch_row($rslt); $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; } - ##### get scripts listings for pulldown - $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; - $rslt=mysql_query($stmt, $link); - $scripts_to_print = mysql_num_rows($rslt); - $QCscripts_list=""; - $o=0; - while ($scripts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCscripts_list .= "\n"; - $scriptname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - ##### get shifts listings for pulldown - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $QCshifts_list=""; - $o=0; - while ($shifts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCshifts_list .= "\n"; - $shiftname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - } - - echo "
ID Ομάδας: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Ονομα Ομάδας: $NWB#vicidial_inbound_groups-group_name$NWE
Χρώμα Ομάδας: $NWB#vicidial_inbound_groups-group_color$NWE
Ενεργή:$NWB#vicidial_inbound_groups-active$NWE
Ιστο-σελίδα: $NWB#vicidial_inbound_groups-web_form_address$NWE
Ιστο-σελίδα Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Κοτσίδας Προτεραιότητα: $NWB#vicidial_inbound_groups-queue_priority$NWE
Μπροστινή Οθόνη: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_inbound_groups-get_call_launch$NWE
DTMF Μεταφοράς-Συνδ 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
DTMF Μεταφοράς-Συνδ 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Timer Δράση: $NWB#vicidial_inbound_groups-timer_action$NWE
Timer Δράση Μήνυμα: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Timer Δευτερόλεπτα Δράση: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Δευτερ. Εγκαταλ. Κλήσης: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop δράσης:$NWB#vicidial_inbound_groups-drop_action$NWE
Εσωτ. Σύνδεση Εγκατάλειψης: $NWB#vicidial_inbound_groups-drop_exten$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop Μεταφορά Ομάδα:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Χρόνος κλήσης:$NWB#vicidial_inbound_groups-call_time_id$NWE
Μετά από τη δράση ωρών:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Μετά από το όνομα αρχείου μηνυμάτων ωρών: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Μετά από την παράταση ωρών:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Μετά από το φωνητικό ταχυδρομείο ωρών: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Μετά από ώρες Μεταφορά Ομάδα:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Δεν Πράκτορες Δεν Αναμονής: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Δεν Agent Δεν Queue δράσης: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Καλέστε Μενού:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Λίστας: "; + echo "
ID Εκστρατείας: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Παράταση:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Τηλεφωνητής Box: voicemail chooser\n"; + } + + echo "
+
 
Ευπρόσδεκτο όνομα αρχείου μηνυμάτων: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Παίξτε Καλωσόρισμα:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Μουσική στο πλαίσιο λαβής: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
Στο γρήγορο όνομα αρχείου λαβής: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Στο γρήγορο διάστημα λαβής:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Παίξτε στο Line Τόπος:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Παίξτε Κρατήστε Εκτιμώμενη Ώρα:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Κρατήστε την επιλογή Ώρα:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Κρατήστε την επιλογή Δευτερόλεπτα Ώρα:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Κρατήστε Ώρα Επιλογή Παράταση:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Κρατήστε Ώρα Επιλογή Τηλεφωνητής: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Κρατήστε Ώρα Επιλογή Callback αρχείου: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agent Alert Filename: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
Αγρυπνη καθυστέρηση πρακτόρων:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Ομάδα μεταφοράς προεπιλογής:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Προεπιλεγμένη ομάδα Γνωστός: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Κρατήστε Ανάκληση Μεταφορά σε ομάδα:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Δεν Υστέρηση Call Διαδρομή:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
-Στην ομάδα Καταγραφή Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
-Στην ομάδα Καταγραφή αρχείου:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Στατιστικά Ποσοστό ζητεί απάντηση εντός δευτερολέπτων X 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Στατιστικά Ποσοστό ζητεί απάντηση εντός δευτερολέπτων X 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Ξεκινήστε Call URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Καλέστε dispo URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound Ομάδα QC Ρυθμίσεις:
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC καθεστώτα:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Δείτε Καταγραφή: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC καθεστώτα:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Δείτε Καταγραφή: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; - echo "

\n"; + echo "
\n"; + echo "

\n"; - ### list of agent rank or skill-level for this inbound group - echo "
\n"; - echo "
ΧΕΙΡΙΣΤΗΣRANKS FOR THIS Εισερχόμενα GROUP:
\n"; - echo "\n"; - echo "\n"; + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
ΧΕΙΡΙΣΤΗΣRANKS FOR THIS Εισερχόμενα GROUP:
\n"; + echo "
USER     RANK     CALLS TODAY
\n"; + echo "\n"; - $stmt="SELECT user,group_rank,calls_today from vicidial_inbound_group_agents where group_id='$group_id'"; + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); $o=0; - while ($users_to_print > $o) { + while ($users_to_print > $o) + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Κάντε κλικ εδώ για να δείτε μια έκθεση για αυτό το εισερχόμενο ομάδα

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "ΕΚΣΤΡΑΤΕΙΕΣ οποίες καθιστούν δυνατή την ομάδα της:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΕΙΣ-ΟΜΑΔΑ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages In-Group\n"; + } } - - echo "

\n"; - - echo "

\n"; - - echo "Κάντε κλικ εδώ για να δείτε μια έκθεση για αυτό το εισερχόμενο ομάδα

\n"; - - echo "
\n"; - - if ($LOGdelete_ingroups > 0) - { - echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΕΙΣ-ΟΜΑΔΑ\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages In-Group
\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} @@ -16083,151 +19847,478 @@ if ($ADD==3111) ###################### if ($ADD==3311) -{ + { if ($LOGmodify_dids==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_dids where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $did_id = $row[0]; - $did_pattern = $row[1]; - $did_description = $row[2]; - $did_active = $row[3]; - $did_route = $row[4]; - $extension = $row[5]; - $exten_context = $row[6]; - $voicemail_ext = $row[7]; - $phone = $row[8]; - $server_ip = $row[9]; - $user = $row[10]; - $user_unavailable_action = $row[11]; - $user_route_settings_ingroup = $row[12]; - $group_id = $row[13]; - $call_handle_method = $row[14]; - $agent_search_method = $row[15]; - $list_id = $row[16]; - $campaign_id = $row[17]; - $phone_code = $row[18]; - - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; - $rslt=mysql_query($stmt, $link); - $campaigns_to_print = mysql_num_rows($rslt); - $campaigns_list=''; - $o=0; - while ($campaigns_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $campaigns_list .= "\n"; - $o++; - } - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) { - $Xgroups_menu .= "SELECTED "; - $Xgroups_selected++; + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; } - $Xgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Dgroups_to_print = mysql_num_rows($rslt); - $Dgroups_menu=''; - $Dgroups_selected=0; - $o=0; - while ($Dgroups_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $Dgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFY A DID RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID Επέκταση:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Περιγραφή:$NWB#vicidial_inbound_dids-did_description$NWE
Ενεργή:$NWB#vicidial_inbound_dids-did_active$NWE
DID Οδός:$NWB#vicidial_inbound_dids-did_route$NWE
Παράταση:$NWB#vicidial_inbound_dids-extension$NWE
Παράταση Πλαίσιο:$NWB#vicidial_inbound_dids-exten_context$NWE
Τηλεφωνητής Box: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Παράταση Τηλέφωνο:$NWB#vicidial_inbound_dids-phone$NWE
IP Διακομιστή: $NWB#vicidial_inbound_dids-server_ip$NWE
Καλέστε Μενού: $NWB#vicidial_inbound_dids-menu_id$NWE
Χρήστης Agent:$NWB#vicidial_inbound_dids-user$NWE
Χρήστης Unavailable δράσης:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Ρυθμίσεις χρήστη Οδός-Στην ομάδα:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID Ομάδας: $NWB#vicidial_inbound_dids-group_id$NWE
Στην Ομάδα-Call Χειροκίνητος Τρόπος:$NWB#vicidial_inbound_dids-call_handle_method$NWE
Στην Ομάδα-Agent Search Μέθοδος:$NWB#vicidial_inbound_dids-agent_search_method$NWE
Στην ομάδα Κατάλογος-ID:$NWB#vicidial_inbound_dids-list_id$NWE
Στην ομάδα της εκστρατείας-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
Στην Ομάδα-τηλέφωνο Κωδικός:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Κάντε κλικ εδώ για να δείτε μια έκθεση για την κίνηση αυτή DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

Διαγραφή αυτής της DID\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages DID\n"; } - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; } - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - - - echo "
MODIFY A DID RECORD:$row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "
DID Επέκταση:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Περιγραφή:$NWB#vicidial_inbound_dids-did_description$NWE
Ενεργή:$NWB#vicidial_inbound_dids-did_active$NWE
DID Οδός:$NWB#vicidial_inbound_dids-did_route$NWE
Παράταση:$NWB#vicidial_inbound_dids-extension$NWE
Παράταση Πλαίσιο:$NWB#vicidial_inbound_dids-exten_context$NWE
Τηλεφωνητής Box:$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Παράταση Τηλέφωνο:$NWB#vicidial_inbound_dids-phone$NWE
IP Διακομιστή: $NWB#vicidial_inbound_dids-server_ip$NWE
Χρήστης Agent:$NWB#vicidial_inbound_dids-user$NWE
Χρήστης Unavailable δράσης:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Ρυθμίσεις χρήστη Οδός-Στην ομάδα:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID Ομάδας: $NWB#vicidial_inbound_dids-group_id$NWE
Στην Ομάδα-Call Χειροκίνητος Τρόπος:$NWB#vicidial_inbound_dids-call_handle_method$NWE
Στην Ομάδα-Agent Search Μέθοδος:$NWB#vicidial_inbound_dids-agent_search_method$NWE
Στην ομάδα Κατάλογος-ID:$NWB#vicidial_inbound_dids-list_id$NWE
Στην ομάδα της εκστρατείας-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
Στην Ομάδα-τηλέφωνο Κωδικός:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; - echo "

\n"; - - - - if ($LOGdelete_dids > 0) - { - echo "

Διαγραφή αυτής της DID\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages DID\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "\n"; -echo "\n"; - -echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
Τροποποίηση μιας ΠΡΟΣΚΛΗΣΗ MENU RECORD: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Μενού ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Όνομα μενού: $NWB#vicidial_call_menu-menu_name$NWE
Μενού Προτροπή: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Μενού Timeout: $NWB#vicidial_call_menu-menu_timeout$NWE
Μενού Timeout Προτροπή: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Μενού Άκυρα Προτροπή: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Επαναλάβετε μενού: $NWB#vicidial_call_menu-menu_repeat$NWE
Μενού Ώρα Check: $NWB#vicidial_call_menu-menu_time_check$NWE
Χρόνος κλήσης:$NWB#vicidial_call_menu-call_time_id$NWE
Track καλεί σε πραγματικό χρόνο έκθεση: $NWB#vicidial_call_menu-track_in_vdac$NWE
Tracking Ομάδα:$NWB#vicidial_call_menu-tracking_group$NWE
Καλέστε Μενού Επιλογές:
+ Επιλογή: $dtmf_list   + Περιγραφή: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Καλέστε Μενού:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Λίστας: "; + echo "
ID Εκστρατείας: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Παράταση:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Τηλεφωνητής Box: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Επιλογή: $dtmf_list   + Περιγραφή: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Είσοδος:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Είσοδος: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

DELETE THIS CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages με την παρούσα πρόσκληση MENU
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} @@ -16236,62 +20327,62 @@ if ($ADD==3311) ###################### if ($ADD==31111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $remote_agent_id = $row[0]; - $user_start = $row[1]; - $number_of_lines = $row[2]; - $server_ip = $row[3]; - $conf_exten = $row[4]; - $status = $row[5]; - $campaign_id = $row[6]; - - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
ID Χρήστη Ξεκινά: (μόνο αριθμοί, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Αριθμός Γραμμών: (μόνο αριθμοί)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Διακομιστή: $NWB#vicidial_remote_agents-server_ip$NWE
Εξωτερική Τηλ. Σύνδεση: (ο αριθμός που κλήθηκε από το πλάνο κλήσεων για να καλέσει τους χειριστές)$NWB#vicidial_remote_agents-conf_exten$NWE
Κατάσταση:$NWB#vicidial_remote_agents-status$NWE
Εκστρατεία: $NWB#vicidial_remote_agents-campaign_id$NWE
Εισερχόμενες Ομάδες: \n"; - echo "$groups_list"; - echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; - echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; - - - if ($LOGdelete_remote_agents > 0) { - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΧΕΙΡΙΣΤΗ\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρήστη Ξεκινά: (μόνο αριθμοί, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Αριθμός Γραμμών: (μόνο αριθμοί)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Διακομιστή: $NWB#vicidial_remote_agents-server_ip$NWE
Εξωτερική Τηλ. Σύνδεση: (ο αριθμός που κλήθηκε από το πλάνο κλήσεων για να καλέσει τους χειριστές)$NWB#vicidial_remote_agents-conf_exten$NWE
Κατάσταση:$NWB#vicidial_remote_agents-status$NWE
Εκστρατεία: $NWB#vicidial_remote_agents-campaign_id$NWE
Εισερχόμενες Ομάδες: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΧΕΙΡΙΣΤΗ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το απομακρυσμένο πράκτορα
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το απομακρυσμένο πράκτορα\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -16299,79 +20390,118 @@ if ($ADD==31111) ###################### if ($ADD==311111) -{ - if ($LOGmodify_usergroups==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_user_groups where user_group='$user_group';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_group = $row[0]; - $group_name = $row[1]; - $GROUP_shifts = $row[5]; - $forced_timeclock_login = $row[6]; - $shift_enforcement = $row[7]; - - echo ""; - - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - - echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Ομάδα: (όχι κενά ή στίξη)$NWB#vicidial_user_groups-user_group$NWE
Περιγραφή: (περιγραφή ομάδας)$NWB#vicidial_user_groups-group_name$NWE
ΔύναμηΏρα ρολόι Σύνδεση: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift εκτέλεση: $NWB#vicidial_user_groups-shift_enforcement$NWE
Επιτρεπόμενες Εκστρατείες:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; - echo "$campaigns_list
 "; - echo "
Ομάδα Βάρδιες:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $o=0; - while ($shifts_to_print > $o) + if ($LOGmodify_usergroups==1) { - $rowx=mysql_fetch_row($rslt); - $shift_id_value = $rowx[0]; - $shift_name_value = $rowx[1]; - echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - } - echo "\n"; - echo "
Ομάδα: (όχι κενά ή στίξη)$NWB#vicidial_user_groups-user_group$NWE
Περιγραφή: (περιγραφή ομάδας)$NWB#vicidial_user_groups-group_name$NWE
ΔύναμηΏρα ρολόι Σύνδεση: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift εκτέλεση: $NWB#vicidial_user_groups-shift_enforcement$NWE
Επιτρεπόμενες Εκστρατείες:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Ομάδα Βάρδιες:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) { - if (ereg(" $shift_id_value ", $GROUP_shifts)) + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; } - echo "> $shift_id_value - $shift_name_value
\n"; - $o++; - } - echo "
 
QC Επιτρέπονται Καμπάνιες:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; - echo "$qc_campaigns_list"; echo "
 
QC Επιτρέπονται Εισερχόμενες Ομάδες:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; - echo "$qc_groups_list"; + + + echo "
Agent Κατάσταση θέασης Ομάδες:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } echo "
 
\n"; + echo "
Agent Κατάσταση Προβολή Ώρα: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC Επιτρέπονται Καμπάνιες:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC Επιτρέπονται Εισερχόμενες Ομάδες:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; - ### list of users in this user group + ### list of users in this user group $active_confs = 0; $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; @@ -16385,45 +20515,44 @@ if ($ADD==311111) $o=0; while ($users_to_print > $o) - { + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "
$rowx[0]$rowx[1]$rowx[2]$rowx[3]
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος σε αυτή την ομάδα χρηστών

\n"; + echo "

Κάντε κλικ εδώ για να δείτε την κατάστασηΏρα ρολόι ομάδα για αυτόν τον χρήστη

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΟΜΑΔΑ ΧΡΗΣΤΩΝ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages ομάδα χρηστών\n"; + } } - - echo "

\n"; - - - - echo "

Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος σε αυτή την ομάδα χρηστών

\n"; - echo "

Κάντε κλικ εδώ για να δείτε την κατάστασηΏρα ρολόι ομάδα για αυτόν τον χρήστη

\n"; - - if ($LOGdelete_user_groups > 0) - { - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΟΜΑΔΑ ΧΡΗΣΤΩΝ\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages ομάδα χρηστών
\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -16431,90 +20560,151 @@ if ($ADD==311111) ###################### if ($ADD==3111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $script_name = $row[1]; - $script_comments = $row[2]; - $script_text = $row[3]; - $active = $row[4]; - echo ""; - - echo "
ΤΡΟΠΟΠΟΙΗΣΤΕ ΕΝΑΝ ΒΟΗΘΟ\n"; - echo "\n"; - echo "\n"; - echo "
Ταυτότητα χειρογράφων:: $script_id$NWB#vicidial_scripts-script_name$NWE
Όνομα χειρογράφων: (τίτλος του βοηθού)$NWB#vicidial_scripts-script_name$NWE
Σχόλια χειρόγραφου: $NWB#vicidial_scripts-script_comments$NWE
Ενεργή:$NWB#vicidial_scripts-active$NWE
Κείμενο χειρόγραφου:

Προεπισκόπιση Βοηθού
"; - # BEGIN Insert Field - echo ""; - echo "
"; - # END Insert Field - echo " $NWB#vicidial_scripts-script_text$NWE
\n"; - - if ($LOGdelete_scripts > 0) { - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΒΟΗΘΟ\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΤΕ ΕΝΑΝ ΒΟΗΘΟ\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ταυτότητα χειρογράφων:: $script_id$NWB#vicidial_scripts-script_name$NWE
Όνομα χειρογράφων: (τίτλος του βοηθού)$NWB#vicidial_scripts-script_name$NWE
Σχόλια χειρόγραφου: $NWB#vicidial_scripts-script_comments$NWE
Ενεργή:$NWB#vicidial_scripts-active$NWE
Κείμενο χειρόγραφου:

Προεπισκόπιση Βοηθού
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " ΕΚΣΤΡΑΤΕΙΕΣ USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " ΕΙΣΕΡΧΟΜΕΝΕΣ ΟΜΑΔΕΣ USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΒΟΗΘΟ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το σενάριο\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το σενάριο\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -16522,29 +20712,30 @@ if ($ADD==3111111) ###################### if ($ADD==31111111) -{ - if ($LOGmodify_filters==1) { - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_filters==1) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; - $stmt="SELECT * from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $lead_filter_name = $row[1]; - $lead_filter_comments = $row[2]; - $lead_filter_sql = $row[3]; - echo ""; + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΝΟΣ ΦΙΛΤΡΟΥ\n"; - echo "\n"; - echo "\n"; - echo "
ID Φίλτρου: $lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Όνομα Φίλτρου: (σύντομη περιγραφή του φίλτρου)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Σχόλια Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
SQL Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΝΟΣ ΦΙΛΤΡΟΥ
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Φίλτρου: $lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Όνομα Φίλτρου: (σύντομη περιγραφή του φίλτρου)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Σχόλια Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
SQL Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; ##### get campaigns listing for dynamic pulldown $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; @@ -16560,31 +20751,31 @@ if ($ADD==31111111) $o++; } - echo "

"; - echo "
ΕΛΕΓΧΟΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "

"; + echo "
ΕΛΕΓΧΟΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ: \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($LOGdelete_filters > 0) - { - echo "

ΔΙΑΓΡΑΦΗ ΤΟΥ ΦΙΛΤΡΟΥ\n"; + if ($LOGdelete_filters > 0) + { + echo "

ΔΙΑΓΡΑΦΗ ΤΟΥ ΦΙΛΤΡΟΥ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages για αυτό το φίλτρο\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages για αυτό το φίλτρο\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -16592,46 +20783,44 @@ if ($ADD==31111111) ###################### if ($ADD==321111111) -{ -if ($LOGmodify_call_times==1) -{ - -if ( ($stage=="ADD") and (strlen($state_rule)>0) ) { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; - if (eregi("\|$",$ct_state_call_times)) - {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Προσθήκη Κανόνα Κατάστασης: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Απομάκρυνση Κανόνα Κατάστασης: $state_rule
\n"; + } + + $ADD=311111111; + } else - {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Προσθήκη Κανόνα Κατάστασης: $state_rule
\n"; + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } } -if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) - { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; - - $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Απομάκρυνση Κανόνα Κατάστασης: $state_rule
\n"; - } - -$ADD=311111111; -} -else -{ -echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; -} - -} ###################### @@ -16639,151 +20828,154 @@ echo "Δεν έχετε το δικαίωμα για να δείτε την σε ###################### if ($ADD==311111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -$ct_srs=1; -$b=0; -$srs_SQL =''; -if (strlen($ct_state_call_times)>2) { - $state_rules = explode('|',$ct_state_call_times); - $ct_srs = ((count($state_rules)) - 1); - } -echo "\n"; -echo "\n"; -while($ct_srs >= $b) - { - if (strlen($state_rules[$b])>0) + if ($LOGmodify_call_times==1) { - $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $call_time_name = $row[1]; - $call_time_comments = $row[2]; - $ct_default_start = $row[3]; - $ct_default_stop = $row[4]; - $ct_sunday_start = $row[5]; - $ct_sunday_stop = $row[6]; - $ct_monday_start = $row[7]; - $ct_monday_stop = $row[8]; - $ct_tuesday_start = $row[9]; - $ct_tuesday_stop = $row[10]; - $ct_wednesday_start = $row[11]; - $ct_wednesday_stop = $row[12]; - $ct_thursday_start = $row[13]; - $ct_thursday_stop = $row[14]; - $ct_friday_start = $row[15]; - $ct_friday_stop = $row[16]; - $ct_saturday_start = $row[17]; - $ct_saturday_stop = $row[18]; - $ct_state_call_times = $row[19]; - -echo ""; - -echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ\n"; -echo "\n"; -echo "\n"; -echo "
ID Χρόνου Κλήσης: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Ονομα Χρόνου Κλήσης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης: $NWB#vicidial_call_times-call_time_comments$NWE
Προκαθορσμένη Εκκίνηση Προκαθορσμένη Παύση: $NWB#vicidial_call_times-ct_default_start$NWE
Κυριακή Εκκίνηση: Κυριακή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Δευτέρα Εκκίνηση: Δευτέρα Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τρίτη Εκκίνηση: Τρίτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τετάρτη Start: Τετάρτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Πέμπτη Εκκίνηση: Πέμπτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Παρασκευή Εκκίνηση: Παρασκευή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Σάββατο Εκκίνηση: Σάββατο Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Ενεργοί Ορισμοί Χρόνου Κλήσης Κατάστασης για αυτή την Εγγραφή:  
\n"; - $srs_SQL .= "'$state_rules[$b]',"; - $srs_state_SQL .= "'$row[0]',"; + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "
$state_rules[$b] - REMOVE $row[0] - $row[1]
ID Χρόνου Κλήσης: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Ονομα Χρόνου Κλήσης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης: $NWB#vicidial_call_times-call_time_comments$NWE
Προκαθορσμένη Εκκίνηση Προκαθορσμένη Παύση: $NWB#vicidial_call_times-ct_default_start$NWE
Κυριακή Εκκίνηση: Κυριακή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Δευτέρα Εκκίνηση: Δευτέρα Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τρίτη Εκκίνηση: Τρίτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τετάρτη Start: Τετάρτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Πέμπτη Εκκίνηση: Πέμπτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Παρασκευή Εκκίνηση: Παρασκευή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Σάββατο Εκκίνηση: Σάββατο Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Ενεργοί Ορισμοί Χρόνου Κλήσης Κατάστασης για αυτή την Εγγραφή:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "ΕΚΣΤΑΤΕΙΕΣ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟ ΤΟΝ ΧΡΟΝΟ ΚΛΗΣΗΣ:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "Εισερχόμενα GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ΔΙΑΓΡΑΦΗ ΟΡΙΣΜΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages φορά σε αυτή την έκκληση
\n"; + } } - $b++; + else + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } + } -if (strlen($srs_SQL)>2) - { - $srs_SQL = "$srs_SQL''"; - $srs_state_SQL = "$srs_state_SQL''"; - $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; - } -else - {$srs_SQL='';} -$stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; -$rslt=mysql_query($stmt, $link); -$sct_to_print = mysql_num_rows($rslt); -$sct_list=''; - -$o=0; -while ($sct_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $sct_list .= "\n"; - $o++; -} -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "Add state call time rule:


\n"; -echo "ΕΚΣΤΑΤΕΙΕΣ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟ ΤΟΝ ΧΡΟΝΟ ΚΛΗΣΗΣ:
\n"; -echo "\n"; - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "Εισερχόμενα GROUPS USING THIS CALL TIME:
\n"; -echo "\n"; - - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

ΔΙΑΓΡΑΦΗ ΟΡΙΣΜΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages φορά σε αυτή την έκκληση\n"; - } -} -else -{ -echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; -} - -} ###################### @@ -16791,327 +20983,328 @@ echo "Δεν έχετε το δικαίωμα για να δείτε την σε ###################### if ($ADD==3111111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -echo "\n"; -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $state_call_time_state =$row[1]; - $call_time_name = $row[2]; - $call_time_comments = $row[3]; - $ct_default_start = $row[4]; - $ct_default_stop = $row[5]; - $ct_sunday_start = $row[6]; - $ct_sunday_stop = $row[7]; - $ct_monday_start = $row[8]; - $ct_monday_stop = $row[9]; - $ct_tuesday_start = $row[10]; - $ct_tuesday_stop = $row[11]; - $ct_wednesday_start = $row[12]; - $ct_wednesday_stop = $row[13]; - $ct_thursday_start = $row[14]; - $ct_thursday_stop = $row[15]; - $ct_friday_start = $row[16]; - $ct_friday_stop = $row[17]; - $ct_saturday_start = $row[18]; - $ct_saturday_stop = $row[19]; - -echo ""; - -echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ
\n"; -echo "\n"; -echo "\n"; -echo "
ID Χρόνου Κλήσης: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Ονομα Χρόνου Κλήσης Κατάτασης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης Κατάστασης: $NWB#vicidial_call_times-call_time_comments$NWE
Προκαθορσμένη Εκκίνηση Προκαθορσμένη Παύση: $NWB#vicidial_call_times-ct_default_start$NWE
Κυριακή Εκκίνηση: Κυριακή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Δευτέρα Εκκίνηση: Δευτέρα Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τρίτη Εκκίνηση: Τρίτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τετάρτη Start: Τετάρτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Πέμπτη Εκκίνηση: Πέμπτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Παρασκευή Εκκίνηση: Παρασκευή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Σάββατο Εκκίνηση: Σάββατο Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; -echo "ΧΡΟΝΟΙ ΚΛΗΣΕΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟ ΤΟΝ ΧΡΟΝΟ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ:
\n"; -echo "\n"; - - $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) { - echo "

ΔΙΑΓΡΑΦΗ ΟΡΙΣΜΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρόνου Κλήσης: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Ονομα Χρόνου Κλήσης Κατάτασης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης Κατάστασης: $NWB#vicidial_call_times-call_time_comments$NWE
Προκαθορσμένη Εκκίνηση Προκαθορσμένη Παύση: $NWB#vicidial_call_times-ct_default_start$NWE
Κυριακή Εκκίνηση: Κυριακή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Δευτέρα Εκκίνηση: Δευτέρα Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τρίτη Εκκίνηση: Τρίτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τετάρτη Start: Τετάρτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Πέμπτη Εκκίνηση: Πέμπτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Παρασκευή Εκκίνηση: Παρασκευή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Σάββατο Εκκίνηση: Σάββατο Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "ΧΡΟΝΟΙ ΚΛΗΣΕΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟ ΤΟΝ ΧΡΟΝΟ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ΔΙΑΓΡΑΦΗ ΟΡΙΣΜΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + } + } + else + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } } -} -else -{ -echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; -} - -} - - ###################### # ADD=331111111 modify shift definition info in the system ###################### if ($ADD==331111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_shifts where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $shift_name = $row[1]; - $shift_start_time = $row[2]; - $shift_length = $row[3]; - $shift_weekdays = $row[4]; - - $shift_start_hour = substr($shift_start_time,0,2); - $shift_start_min = substr($shift_start_time,2,2); - $shift_length_hour = substr($shift_length,0,2); - $shift_length_min = substr($shift_length,3,2); - $shift_end_hour = ($shift_start_hour + $shift_length_hour); - $shift_end_min = ($shift_start_min + $shift_length_min); - if ($shift_end_min >=60) + { + if ($LOGmodify_call_times==1) { - $shift_end_min = ($shift_end_min - 60); - $shift_end_hour++; - } - if ($shift_end_hour >=24) - { - $shift_end_hour = ($shift_end_hour - 24); - } - $shift_end_hour = sprintf("%02s", $shift_end_hour); - $shift_end_min = sprintf("%02s", $shift_end_min); - $shift_end = "$shift_end_hour$shift_end_min"; + echo "
\n"; + echo ""; -echo ""; - -echo "
MODIFY της στροφής\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Shift ID:$shift_id
Shift Όνομα: (σύντομη περιγραφή της μετατόπισης)$NWB#vicidial_shifts-shift_name$NWE
Shift Ώρα έναρξης:\n"; -echo "   Shift End Time:\n"; -echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Μήκος: $NWB#vicidial_shifts-shift_length$NWE
Shift Καθημερινά:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; -echo "Κυριακή
\n"; -echo "Δευτέρα
\n"; -echo "Τρίτη
\n"; -echo "Τετάρτη
\n"; -echo "Πέμπτη
\n"; -echo "Παρασκευή
\n"; -echo "Σάββατο
\n"; -echo "
\n"; - -echo "


\n"; -echo "ΟΜΑΔΕΣ ΧΡΗΣΤΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ SHIFT:
\n"; -echo "\n"; - - - $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFY της στροφής\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
$row[0] $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift ID:$shift_id
Shift Όνομα: (σύντομη περιγραφή της μετατόπισης)$NWB#vicidial_shifts-shift_name$NWE
Shift Ώρα έναρξης:\n"; + echo "   Shift End Time:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Μήκος: $NWB#vicidial_shifts-shift_length$NWE
Shift Καθημερινά:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Κυριακή
\n"; + echo "Δευτέρα
\n"; + echo "Τρίτη
\n"; + echo "Τετάρτη
\n"; + echo "Πέμπτη
\n"; + echo "Παρασκευή
\n"; + echo "Σάββατο
\n"; + echo "
\n"; + + echo "


\n"; + echo "ΟΜΑΔΕΣ ΧΡΗΣΤΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ SHIFT:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Διαγραφή αυτής της SHIFT ΟΡΙΣΜΟΣ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages την εξέλιξη αυτή\n"; + } + } + else + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } + } -echo "
\n"; -echo "


\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

Διαγραφή αυτής της SHIFT ΟΡΙΣΜΟΣ\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages την εξέλιξη αυτή\n"; - } -} -else -{ -echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; -} - -} - - ###################### # ADD=31111111111 modify phone record in the system ###################### if ($ADD==31111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ: $row[1]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Τηλ.σύνδεσης τηλεφώνου: $NWB#phones-extension$NWE
Αριθμός Σχεδίου Κλήσεων: (μόνο αριθμοί)$NWB#phones-dialplan_number$NWE
Τηλεφωνητής Box: (μόνο αριθμοί)$NWB#phones-voicemail_id$NWE
Εξερχόμενο CallerID: (μόνο αριθμοί)$NWB#phones-outbound_cid$NWE
Δνση IP Τηλεφώνου: (optional)$NWB#phones-phone_ip$NWE
Δνση IP Υπολογιστή: (optional)$NWB#phones-computer_ip$NWE
IP Διακομιστή: $NWB#phones-server_ip$NWE
Σύνδεση:$NWB#phones-login$NWE
Κωδικός:$NWB#phones-pass$NWE
Κατάσταση:$NWB#phones-status$NWE
Ενεργός Λογαριασμός: $NWB#phones-active$NWE
Τύπος τηλεφώνου: $NWB#phones-phone_type$NWE
Πλήρες Ονομα: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Εταιρία:$NWB#phones-company$NWE
Εικόνα:$NWB#phones-picture$NWE
Νέα Μηνύματα: $row[14]$NWB#phones-messages$NWE
Παλαιά Μηνύματα: $row[15]$NWB#phones-old_messages$NWE
Προτόκολο Πελάτη: $NWB#phones-protocol$NWE
Τοπικό GMT: (Μην ρυθμίσεις για DST)$NWB#phones-local_gmt$NWE
Διαχειριστή Σύνδεση: $NWB#phones-ASTmgrUSERNAME$NWE
Κωδικός Διαχειριστή: $NWB#phones-ASTmgrSECRET$NWE
VICIDIAL Προκαθορισμένος Χρήστης: $NWB#phones-login_user$NWE
VICIDIAL Προκαθορισμένος Κωδικός: $NWB#phones-login_pass$NWE
VICIDIAL Προκαθορισμένη εκστρατεία: $NWB#phones-login_campaign$NWE
Τηλ.σύνδ. Στάθμευσης: $NWB#phones-park_on_extension$NWE
Τηλ.σύνδ. Συνδ.: $NWB#phones-conf_on_extension$NWE
VICIDIAL Τηλ.σύνδ. Στάθμευσης: $NWB#phones-VICIDIAL_park_on_extension$NWE
VICIDIAL Αρχείο Στάθμευσης: $NWB#phones-VICIDIAL_park_on_filename$NWE
Πρόθεμα Παρακολούθησης: $NWB#phones-monitor_prefix$NWE
Ηχογράφηση εσωτ.σύνδ.: $NWB#phones-recording_exten$NWE
VMailMain Τηλ.σύνδ.: $NWB#phones-voicemail_exten$NWE
VMailDump Τηλ.σύνδ.: $NWB#phones-voicemail_dump_exten$NWE
Περιεχόμενο Τηλ.σύνδ: $NWB#phones-ext_context$NWE
DTMFSend Κανάλι: $NWB#phones-dtmf_send_extension$NWE
Ομάδα Εξερχομένων Κλήσεων: $NWB#phones-call_out_number_group$NWE
Θέση Φυλλομετρητή: $NWB#phones-client_browser$NWE
Κατάλογος εγκατάστασης: $NWB#phones-install_directory$NWE
CallerID URL: $NWB#phones-local_web_callerID_URL$NWE
VICIDIAL Προκαθορισμένο URL: $NWB#phones-VICIDIAL_web_URL$NWE
Καταγραφή Γεγονότος Κλήσης: $NWB#phones-AGI_call_logging_enabled$NWE
Μεταγωγή Χρήστη: $NWB#phones-user_switching_enabled$NWE
Σε συνδιαλέξη: $NWB#phones-conferencing_enabled$NWE
Διαχειριστού Κλείσιμο: $NWB#phones-admin_hangup_enabled$NWE
Διαχειριστού Κλέψιμο: $NWB#phones-admin_hijack_enabled$NWE
Διαχειριστού Παρακολούθηση: $NWB#phones-admin_monitor_enabled$NWE
Στάθμευση Κλήσης: $NWB#phones-call_parking_enabled$NWE
Ελεγχος ενημερωτή: $NWB#phones-updater_check_enabled$NWE
AF Καταγραφή Γεγονότος: $NWB#phones-AFLogging_enabled$NWE
Ενεργή Ουρά: $NWB#phones-QUEUE_ACTION_enabled$NWE
Υπερεμφανιζόμενο παραθύρο CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Πλήκτρο VMail: $NWB#phones-voicemail_button_enabled$NWE
Ταχύτητα Ανανέωσης: $NWB#phones-enable_fast_refresh$NWE
Ρυθμός Ανανέωσης Ταχύτητας: (in ms)$NWB#phones-fast_refresh_rate$NWE
Συνεχής MySQL: $NWB#phones-enable_persistant_mysql$NWE
Αυτόματη Κλήση Επόμενου Αριθμού: $NWB#phones-auto_dial_next_number$NWE
Σταμάτα την ηχογράφηση μετά από κάθε κλήση: $NWB#phones-VDstop_rec_after_each_call$NWE
Επιτρέψτε τα μηνύματα SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
DBX Διακομιστής: (Πρωταρχικό DB Server)$NWB#phones-DBX_server$NWE
DBX Βάση Δεδομένων: (Πρωταρχικό Server Database)$NWB#phones-DBX_database$NWE
DBX Χρήστης: (Πρωταρχικό DB Login)$NWB#phones-DBX_user$NWE
DBX Κωδικός: (Πρωταρχικό DB Secret)$NWB#phones-DBX_pass$NWE
DBX Πόρτα: (Πρωταρχικό DB Port)$NWB#phones-DBX_port$NWE
DBY Διακομιστής: (ΔευτερεύονDB Server)$NWB#phones-DBY_server$NWE
DBY Βάση Δεδομένων: (ΔευτερεύονServer Database)$NWB#phones-DBY_database$NWE
DBY Χρήστης: (ΔευτερεύονDB Login)$NWB#phones-DBY_user$NWE
DBY Κωδικός: (ΔευτερεύονDB Secret)$NWB#phones-DBY_pass$NWE
DBY Πόρτα: (ΔευτερεύονDB Port)$NWB#phones-DBY_port$NWE
Πρότυπο ID: \n"; - - echo "\n"; - - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Τηλ.σύνδεσης τηλεφώνου: $NWB#phones-extension$NWE (Agent Screen Τηλέφωνο Σύνδεσης)
Αριθμός Σχεδίου Κλήσεων: (μόνο αριθμοί)$NWB#phones-dialplan_number$NWE
Τηλεφωνητής Box: (μόνο αριθμοί)$NWB#phones-voicemail_id$NWE
Εξερχόμενο CallerID: (μόνο αριθμοί)$NWB#phones-outbound_cid$NWE
Δνση IP Τηλεφώνου: (optional)$NWB#phones-phone_ip$NWE
Δνση IP Υπολογιστή: (optional)$NWB#phones-computer_ip$NWE
IP Διακομιστή: $NWB#phones-server_ip$NWE
Σύνδεση:$NWB#phones-login$NWE
Κωδικός:$NWB#phones-pass$NWE
Κατάσταση:$NWB#phones-status$NWE
Ενεργός Λογαριασμός: $NWB#phones-active$NWE
Τύπος τηλεφώνου: $NWB#phones-phone_type$NWE
Πλήρες Ονομα: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email:$NWB#phones-delete_vm_after_email$NWE
Εταιρία:$NWB#phones-company$NWE
Εικόνα:$NWB#phones-picture$NWE
Νέα Μηνύματα: $row[14]$NWB#phones-messages$NWE
Παλαιά Μηνύματα: $row[15]$NWB#phones-old_messages$NWE
Προτόκολο Πελάτη: $NWB#phones-protocol$NWE
Τοπικό GMT: (Μην ρυθμίσεις για DST)$NWB#phones-local_gmt$NWE
Τηλέφωνο Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Διαχειριστή Σύνδεση: $NWB#phones-ASTmgrUSERNAME$NWE
Κωδικός Διαχειριστή: $NWB#phones-ASTmgrSECRET$NWE
VICIDIAL Προκαθορισμένος Χρήστης: $NWB#phones-login_user$NWE
VICIDIAL Προκαθορισμένος Κωδικός: $NWB#phones-login_pass$NWE
VICIDIAL Προκαθορισμένη εκστρατεία: $NWB#phones-login_campaign$NWE
Τηλ.σύνδ. Στάθμευσης: $NWB#phones-park_on_extension$NWE
Τηλ.σύνδ. Συνδ.: $NWB#phones-conf_on_extension$NWE
VICIDIAL Τηλ.σύνδ. Στάθμευσης: $NWB#phones-VICIDIAL_park_on_extension$NWE
VICIDIAL Αρχείο Στάθμευσης: $NWB#phones-VICIDIAL_park_on_filename$NWE
Πρόθεμα Παρακολούθησης: $NWB#phones-monitor_prefix$NWE
Ηχογράφηση εσωτ.σύνδ.: $NWB#phones-recording_exten$NWE
VMailMain Τηλ.σύνδ.: $NWB#phones-voicemail_exten$NWE
VMailDump Τηλ.σύνδ.: $NWB#phones-voicemail_dump_exten$NWE
Περιεχόμενο Τηλ.σύνδ: $NWB#phones-ext_context$NWE
Τηλέφωνο Πλαίσιο: $NWB#phones-phone_context$NWE
Conf Φάκελος Secret: $NWB#phones-conf_secret$NWE
DTMFSend Κανάλι: $NWB#phones-dtmf_send_extension$NWE
Ομάδα Εξερχομένων Κλήσεων: $NWB#phones-call_out_number_group$NWE
Θέση Φυλλομετρητή: $NWB#phones-client_browser$NWE
Κατάλογος εγκατάστασης: $NWB#phones-install_directory$NWE
CallerID URL: $NWB#phones-local_web_callerID_URL$NWE
VICIDIAL Προκαθορισμένο URL: $NWB#phones-VICIDIAL_web_URL$NWE
Καταγραφή Γεγονότος Κλήσης: $NWB#phones-AGI_call_logging_enabled$NWE
Μεταγωγή Χρήστη: $NWB#phones-user_switching_enabled$NWE
Σε συνδιαλέξη: $NWB#phones-conferencing_enabled$NWE
Διαχειριστού Κλείσιμο: $NWB#phones-admin_hangup_enabled$NWE
Διαχειριστού Κλέψιμο: $NWB#phones-admin_hijack_enabled$NWE
Διαχειριστού Παρακολούθηση: $NWB#phones-admin_monitor_enabled$NWE
Στάθμευση Κλήσης: $NWB#phones-call_parking_enabled$NWE
Ελεγχος ενημερωτή: $NWB#phones-updater_check_enabled$NWE
AF Καταγραφή Γεγονότος: $NWB#phones-AFLogging_enabled$NWE
Ενεργή Ουρά: $NWB#phones-QUEUE_ACTION_enabled$NWE
Υπερεμφανιζόμενο παραθύρο CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Πλήκτρο VMail: $NWB#phones-voicemail_button_enabled$NWE
Ταχύτητα Ανανέωσης: $NWB#phones-enable_fast_refresh$NWE
Ρυθμός Ανανέωσης Ταχύτητας: (in ms)$NWB#phones-fast_refresh_rate$NWE
Συνεχής MySQL: $NWB#phones-enable_persistant_mysql$NWE
Αυτόματη Κλήση Επόμενου Αριθμού: $NWB#phones-auto_dial_next_number$NWE
Σταμάτα την ηχογράφηση μετά από κάθε κλήση: $NWB#phones-VDstop_rec_after_each_call$NWE
Επιτρέψτε τα μηνύματα SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
DBX Διακομιστής: (Πρωταρχικό DB Server)$NWB#phones-DBX_server$NWE
DBX Βάση Δεδομένων: (Πρωταρχικό Server Database)$NWB#phones-DBX_database$NWE
DBX Χρήστης: (Πρωταρχικό DB Login)$NWB#phones-DBX_user$NWE
DBX Κωδικός: (Πρωταρχικό DB Secret)$NWB#phones-DBX_pass$NWE
DBX Πόρτα: (Πρωταρχικό DB Port)$NWB#phones-DBX_port$NWE
DBY Διακομιστής: (ΔευτερεύονDB Server)$NWB#phones-DBY_server$NWE
DBY Βάση Δεδομένων: (ΔευτερεύονServer Database)$NWB#phones-DBY_database$NWE
DBY Χρήστης: (ΔευτερεύονDB Login)$NWB#phones-DBY_user$NWE
DBY Κωδικός: (ΔευτερεύονDB Secret)$NWB#phones-DBY_pass$NWE
DBY Πόρτα: (ΔευτερεύονDB Port)$NWB#phones-DBY_port$NWE
Πρότυπο ID: $NWB#phones-template_id$NWE
Επιβ Override: $NWB#phones-conf_override$NWE
\n"; + + echo "

Επιλέξτε εδώ για στατιστικά τηλεφώνου\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#phones-template_id$NWE
Επιβ Override: $NWB#phones-conf_override$NWE
\n"; - - echo "

Επιλέξτε εδώ για στατιστικά τηλεφώνου\n"; - - if ($LOGast_delete_phones > 0) - { - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -17119,70 +21312,70 @@ if ($ADD==31111111111) ###################### if ($ADD==32111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFY τηλεφώνου ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Γνωστός ID:$row[0] $NWB#phones-alias_id$NWE
Ψευδώνυμο: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; - - - ### list of phones in this phones alias - $phone_alias_SQL = ereg_replace(',',"','",$row[2]); - - echo "
\n"; - echo "
Στο πλαίσιο του παρόντος PHONES ΤΗΛΕΦΩΝΑ ALIAS:
\n"; - echo "\n"; - echo "\n"; - - $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; - if ($DB) {echo "|$stmt|";} - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
LOGINΤΗΛ.ΣΥΝΔΕΣΗSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; - - if ($LOGast_delete_phones > 0) { - echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY τηλεφώνου ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Γνωστός ID:$row[0] $NWB#phones-alias_id$NWE
Ψευδώνυμο: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
Στο πλαίσιο του παρόντος PHONES ΤΗΛΕΦΩΝΑ ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINΤΗΛ.ΣΥΝΔΕΣΗSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages να άλλως αυτό το τηλέφωνο
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages να άλλως αυτό το τηλέφωνο\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -17190,44 +21383,44 @@ if ($ADD==32111111111) ###################### if ($ADD==33111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFY Α ΟΜΙΛΟΣ ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Ομάδα Γνωστός ID: $row[0] $NWB#phones-group_alias_id$NWE
Ομάδα ψευδώνυμο: $NWB#phones-group_alias_name$NWE
CallerID Αριθμός: $NWB#phones-caller_id_number$NWE
CallerID Όνομα: $NWB#phones-caller_id_name$NWE
Ενεργή:
\n"; - - - if ($LOGast_delete_phones > 0) { - echo "

Διαγράψετε αυτή την ομάδα ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY Α ΟΜΙΛΟΣ ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ομάδα Γνωστός ID: $row[0] $NWB#phones-group_alias_id$NWE
Ομάδα ψευδώνυμο: $NWB#phones-group_alias_name$NWE
CallerID Αριθμός: $NWB#phones-caller_id_number$NWE
CallerID Όνομα: $NWB#phones-caller_id_name$NWE
Ενεργή:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

Διαγράψετε αυτή την ομάδα ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages άλλως σε αυτή την ομάδα
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages άλλως σε αυτή την ομάδα\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -17235,289 +21428,304 @@ if ($ADD==33111111111) ###################### if ($ADD==311111111111) -{ - if ($LOGmodify_servers==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "Μπαούλα:
\n"; + echo "ΕΚΣΤΡΑΤΕΙΑ:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "
\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
ΜΕΤΑΦΟΡΕΙΣ WITHIN THIS SERVER:
\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage from servers where server_id='$server_id' or server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $server_id = $row[0]; - $server_description = $row[1]; - $server_ip = $row[2]; - $active = $row[3]; - $asterisk_version = $row[4]; - $max_vicidial_trunks = $row[5]; - $telnet_host = $row[6]; - $telnet_port = $row[7]; - $ASTmgrUSERNAME = $row[8]; - $ASTmgrSECRET = $row[9]; - $ASTmgrUSERNAMEupdate = $row[10]; - $ASTmgrUSERNAMElisten = $row[11]; - $ASTmgrUSERNAMEsend = $row[12]; - $local_gmt = $row[13]; - $voicemail_dump_exten = $row[14]; - $answer_transfer_agent = $row[15]; - $ext_context = $row[16]; - $sys_perf_log = $row[17]; - $vd_server_logs = $row[18]; - $agi_output = $row[19]; - $vicidial_balance_active = $row[20]; - $balance_trunks_offlimits = $row[21]; - $recording_web_link = $row[22]; - $alt_server_ip = $row[23]; - $active_asterisk_server = $row[24]; - $generate_vicidial_conf = $row[25]; - $rebuild_conf_files = $row[26]; - $outbound_calls_per_second = $row[27]; - $sysload = $row[28]; - $channels_total = $row[29]; - $cpu_idle_percent = $row[30]; - $disk_usage = $row[31]; + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; - $cpu = (100 - $cpu_idle_percent); - $disk_usage = preg_replace("/ /"," - ",$disk_usage); - $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΔΙΑΚΟΜΙΣΤΗ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΔΙΑΚΟΜΙΣΤΗ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Διακομιστή: $NWB#servers-server_id$NWE
Περιγραφή Διακομιστή: $NWB#servers-server_description$NWE
Δνση IP Διακομιστή: $NWB#servers-server_ip$NWE
Ενεργή:$NWB#servers-active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "
ID Διακομιστή: $NWB#servers-server_id$NWE
Περιγραφή Διακομιστή: $NWB#servers-server_description$NWE
Δνση IP Διακομιστή: $NWB#servers-server_ip$NWE
Ενεργή:$NWB#servers-active$NWE
System Load: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Channels: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
System Load: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Channels: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
Εκδοση Asterisk: $NWB#servers-asterisk_version$NWE
Μέγιστος Αριθμός Trunk: $NWB#servers-max_vicidial_trunks$NWE
Max ζητεί ανά Δεύτερη: $NWB#servers-outbound_calls_per_second$NWE
Διακύμανση Τηλεφωνικής Κλήσης: $NWB#servers-vicidial_balance_active$NWE
Διακύμανση εκτός ορίων: $NWB#servers-balance_trunks_offlimits$NWE
Λήπτης Telnet: $NWB#servers-telnet_host$NWE
Πόρτα Telnet: $NWB#servers-telnet_port$NWE
Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAME$NWE
Κωδικός Διαχειριστή: $NWB#servers-ASTmgrSECRET$NWE
Ενημέρωση Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Παρακολούθηση Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Αποστολή Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Τοπικό GMT: (Μην ρυθμίσεις για DST)$NWB#servers-local_gmt$NWE
VMail εσωτ.σύνδεση απόρριψης: $NWB#servers-voicemail_dump_exten$NWE
AD εσωτ.σύνδεση: $NWB#servers-answer_transfer_agent$NWE
Προκαθορισμένο Περιεχόμενο: $NWB#servers-ext_context$NWE
Επίδοση Συστήματος + echo "
Εκδοση Asterisk: $NWB#servers-asterisk_version$NWE
Μέγιστος Αριθμός Trunk: $NWB#servers-max_vicidial_trunks$NWE
Max ζητεί ανά Δεύτερη: $NWB#servers-outbound_calls_per_second$NWE
Διακύμανση Τηλεφωνικής Κλήσης: $NWB#servers-vicidial_balance_active$NWE
Υπόλοιπο VICIDIAL Rank:$NWB#servers-vicidial_balance_rank$NWE
Διακύμανση εκτός ορίων: $NWB#servers-balance_trunks_offlimits$NWE
Λήπτης Telnet: $NWB#servers-telnet_host$NWE
Πόρτα Telnet: $NWB#servers-telnet_port$NWE
Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAME$NWE
Κωδικός Διαχειριστή: $NWB#servers-ASTmgrSECRET$NWE
Ενημέρωση Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Παρακολούθηση Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Αποστολή Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf Φάκελος Secret: $NWB#servers-conf_secret$NWE
Τοπικό GMT: (Μην ρυθμίσεις για DST)$NWB#servers-local_gmt$NWE
VMail εσωτ.σύνδεση απόρριψης: $NWB#servers-voicemail_dump_exten$NWE
AD εσωτ.σύνδεση: $NWB#servers-answer_transfer_agent$NWE
Προκαθορισμένο Περιεχόμενο: $NWB#servers-ext_context$NWE
Επίδοση Συστήματος : $NWB#servers-sys_perf_log$NWE
Γεγονότα Διακομιστή + echo "
Γεγονότα Διακομιστή : $NWB#servers-vd_server_logs$NWE
Εξοδος AGI + echo "
Εξοδος AGI : $NWB#servers-agi_output$NWE
Καταγραφή Σύνδεσμος: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Διακομιστή: $NWB#servers-alt_server_ip$NWE
Asterisk Ενεργό Server: $NWB#servers-active_asterisk_server$NWE
Δημιουργήστε conf αρχεία: $NWB#servers-generate_vicidial_conf$NWE
Αναδημιουργία conf αρχεία: $NWB#servers-rebuild_conf_files$NWE
Carrier Logging Ενεργή:$NWB#servers-carrier_logging_active$NWE
Καταγραφή Σύνδεσμος: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Διακομιστή: $NWB#servers-alt_server_ip$NWE
Asterisk Ενεργό Server: $NWB#servers-active_asterisk_server$NWE
Ενεργή Server Agent: $NWB#servers-active_agent_login_server$NWE
Δημιουργήστε conf αρχεία: $NWB#servers-generate_vicidial_conf$NWE
Αναδημιουργία conf αρχεία: $NWB#servers-rebuild_conf_files$NWE
Rebuild Music On Hold: $NWB#servers-rebuild_music_on_hold$NWE
Ήχοι Ενημέρωση: $NWB#servers-sounds_update$NWE
ViciDial Καταγραφή Όριο: $NWB#servers-vicidial_recording_limit$NWE
\n"; + echo "
\n"; - ### vicidial server trunk records for this server - echo "

ΚΟΡΜΟΙ ΓΙΑ ΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ:   $NWB#vicidial_server_trunks$NWE
\n"; - echo "\n"; - echo "\n"; + ### vicidial server trunk records for this server + echo "

ΚΟΡΜΟΙ ΓΙΑ ΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "
ΕΚΣΤΡΑΤΕΙΑ ΚΟΡΜΟΙ ΠΕΡΙΟΡΙΣΜΟΣ DELETE
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; - while ($recycle_to_print > $o) { + while ($recycle_to_print > $o) + { $rowx=mysql_fetch_row($rslt); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ΕΚΣΤΡΑΤΕΙΑ ΚΟΡΜΟΙ ΠΕΡΙΟΡΙΣΜΟΣ DELETE
$rowx[1]
\n"; + echo "
$rowx[1]\n"; + echo "\n"; + echo "\n"; + echo "ΔΙΑΓΡΑΦΗ
\n"; + + echo "
ΠΡΟΣΘΗΚΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΣΡΜΟΥ
\n"; + echo "\n"; echo "\n"; - echo "\n"; - echo "
ΔΙΑΓΡΑΦΗ
\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDΟΝΟΜΑREGISTRATIONΕΝΕΡΓΟ
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
ΤΗΛΕΦΩΝΑ ΣΤΟΝ ΔΙΑΚΟΜΙΣΤΗ:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
ΤΗΛ.ΣΥΝΔΕΣΗΟΝΟΜΑΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEΤΗΛ.ΣΥΝΔΕΣΗ
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEΤΗΛ.ΣΥΝΔΕΣΗ
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Αυτός ο διακομιστής έχει $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Αυτός ο διακομιστής έχει $active_phones ενεργά τηλέφωνα και $inactive_phones μη ενεργά τηλέφωνα

\n"; + echo "Αυτός ο διακομιστής έχει $active_confs active conferences

\n"; + echo "Αυτός ο διακομιστής έχει $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS SERVER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτόν τον διακομιστή\n"; + } } - - echo "
\n"; - - echo "
ΠΡΟΣΘΗΚΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΣΡΜΟΥ
\n"; - echo "\n"; - echo "\n"; - echo "Μπαούλα:
\n"; - echo "ΕΚΣΤΡΑΤΕΙΑ:
\n"; - echo "RESTRICTION:
\n"; - echo "
\n"; - - echo "

\n"; - - - ### list of carriers on this server - echo "
\n"; - echo "
ΜΕΤΑΦΟΡΕΙΣ WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_carriers = 0; - $inactive_carriers = 0; - $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $carriers_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($carriers_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[3])) {$active_carriers++;} - if (ereg("N", $rowx[3])) {$inactive_carriers++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIER IDΟΝΟΜΑREGISTRATIONΕΝΕΡΓΟ
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; - - - ### list of phones on this server - echo "
\n"; - echo "
ΤΗΛΕΦΩΝΑ ΣΤΟΝ ΔΙΑΚΟΜΙΣΤΗ:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
ΤΗΛ.ΣΥΝΔΕΣΗΟΝΟΜΑΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[1]

\n"; - - - ### list of conferences on this server - echo "
\n"; - echo "
CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_confs = 0; - $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_confs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CONFERENCEΤΗΛ.ΣΥΝΔΕΣΗ
$rowx[0]$rowx[2]

\n"; - - - ### list of vicidial conferences on this server - echo "
\n"; - echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_vdconfs = 0; - $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_vdconfs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
VD CONFERENCEΤΗΛ.ΣΥΝΔΕΣΗ
$rowx[0]$rowx[2]

\n"; - - - echo "
\n"; - - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Αυτός ο διακομιστής έχει $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; - echo "Αυτός ο διακομιστής έχει $active_phones ενεργά τηλέφωνα και $inactive_phones μη ενεργά τηλέφωνα

\n"; - echo "Αυτός ο διακομιστής έχει $active_confs active conferences

\n"; - echo "Αυτός ο διακομιστής έχει $active_vdconfs active vicidial conferences

\n"; - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

DELETE THIS SERVER\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτόν τον διακομιστή
\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -17525,111 +21733,111 @@ if ($ADD==311111111111) ###################### if ($ADD==331111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $template_id = $row[0]; - $template_name = $row[1]; - $template_contents = $row[2]; - - echo "
MODIFY Α ΠΙΣΤ TEMPLATE RECORD: $row[0]
\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Αναγνωριστικό: $template_id
Όνομα: $NWB#vicidial_conf_templates-template_name$NWE
Template Περιεχόμενα: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; - - echo "
\n"; - - ### list of phones using this conf template - echo "
\n"; - echo "
PHONES ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ ΠΙΣΤ TEMPLATE:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} + echo "
ΤΗΛ.ΣΥΝΔΕΣΗΟΝΟΜΑSERVERΕΝΕΡΓΟ
\n"; + echo "
MODIFY Α ΠΙΣΤ TEMPLATE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; - echo "
$rowx[0]$rowx[2]$rowx[3]$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Αναγνωριστικό: $template_id
Όνομα: $NWB#vicidial_conf_templates-template_name$NWE
Template Περιεχόμενα: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ ΠΙΣΤ TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
ΤΗΛ.ΣΥΝΔΕΣΗΟΝΟΜΑSERVERΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
Που χρησιμοποιούν ΠΑΡΟΝΤΑ ΠΙΣΤ TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERΟΝΟΜΑSERVERΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της ΠΙΣΤ TEMPLATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages conf σε αυτό το πρότυπο
\n"; + } } - - echo "

\n"; - - ### list of carriers using this conf template - echo "
\n"; - echo "
Που χρησιμοποιούν ΠΑΡΟΝΤΑ ΠΙΣΤ TEMPLATE:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIERΟΝΟΜΑSERVERΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; - - - - if ($LOGast_delete_phones > 0) - { - echo "

Διαγραφή αυτής της ΠΙΣΤ TEMPLATE\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages conf σε αυτό το πρότυπο\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -17637,95 +21845,284 @@ if ($ADD==331111111111) ###################### if ($ADD==341111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active from vicidial_server_carriers where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $carrier_id = $row[0]; - $carrier_name = $row[1]; - $registration_string = $row[2]; - $template_id = $row[3]; - $account_entry = $row[4]; - $protocol = $row[5]; - $globals_string = $row[6]; - $dialplan_entry = $row[7]; - $server_ip = $row[8]; - $active = $row[9]; - - echo "
MODIFY Α ΘΑΛΑΜΙΣΚΟ RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Θαλαμίσκος ID: $carrier_id
Φέρον Όνομα: $NWB#vicidial_server_carriers-carrier_name$NWE
Εγγραφή String: $NWB#vicidial_server_carriers-registration_string$NWE
Πρότυπο ID: \n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFY Α ΘΑΛΑΜΙΣΚΟ RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Θαλαμίσκος ID: $carrier_id
Φέρον Όνομα: $NWB#vicidial_server_carriers-carrier_name$NWE
Περιγραφή Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Εγγραφή String: $NWB#vicidial_server_carriers-registration_string$NWE
Πρότυπο ID: $NWB#vicidial_server_carriers-template_id$NWE
Λογαριασμός Είσοδος: $NWB#vicidial_server_carriers-account_entry$NWE
Πρωτόκολλο: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Είσοδος: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Διακομιστή: $NWB#vicidial_server_carriers-server_ip$NWE
Ενεργή:$NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της CARRIER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages για τον εν λόγω αερομεταφορέα
\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#vicidial_server_carriers-template_id$NWE
Λογαριασμός Είσοδος: $NWB#vicidial_server_carriers-account_entry$NWE
Πρωτόκολλο: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Είσοδος: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Διακομιστή: $NWB#vicidial_server_carriers-server_ip$NWE
Ενεργή:$NWB#vicidial_server_carriers-active$NWE
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

Διαγραφή αυτής της CARRIER\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages για τον εν λόγω αερομεταφορέα\n"; - } - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
Τροποποίηση μιας TTS RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
TTS Όνομα: $NWB#vicidial_tts_prompts-tts_name$NWE
Ενεργή:$NWB#vicidial_tts_prompts-active$NWE
TTS Κείμενο: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS TTS ΕΙΣΟΔΟΥ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτή την καταχώρηση TTS
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $moh_id
Music Hold On Όνομα: $NWB#vicidial_music_on_hold-moh_name$NWE
Ενεργή:$NWB#vicidial_music_on_hold-active$NWE
Τυχαία σειρά: $NWB#vicidial_music_on_hold-random$NWE
Αρχεία ήχου: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rank:\n"; + + echo "   $rowx[0] - ΔΙΑΓΡΑΦΗ
\n"; + $o++; + } + + echo "
Προσθέσετε ένα αρχείο ήχου: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Music on Hold ΕΙΣΟΔΟΥ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το Music On Hold εισόδου
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
Τροποποίηση μιας ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID: $voicemail_id
Κωδικός:$NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Email:$NWB#vicidial_voicemail-email$NWE
Ενεργή:$NWB#vicidial_voicemail-active$NWE
Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email:$NWB#vicidial_voicemail-delete_vm_after_email$NWE
Νέα Μηνύματα: $messages
Παλαιά Μηνύματα: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE αυτό το μήνυμα BOX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτή τη θέση τηλεφωνητή
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} ###################### @@ -17733,45 +22130,45 @@ if ($ADD==341111111111) ###################### if ($ADD==3111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΣΥΝΔΙΑΛΕΞΗΣ: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Συνδιάλεξη:$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
Ισχύουσα εσωτ.σύνδεση:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

Διαγραφή αυτής της ΣΥΝΕΔΡΙΟ\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΣΥΝΔΙΑΛΕΞΗΣ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Συνδιάλεξη:$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
Ισχύουσα εσωτ.σύνδεση:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της ΣΥΝΕΔΡΙΟ\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; } } - else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; - } -} ###################### @@ -17779,45 +22176,45 @@ if ($ADD==3111111111111) ###################### if ($ADD==31111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Συνδιάλεξη:$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
Ισχύουσα εσωτ.σύνδεση:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

Διαγραφή αυτής της VICIDIAL ΣΥΝΕΔΡΙΟ\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Συνδιάλεξη:$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
Ισχύουσα εσωτ.σύνδεση:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της VICIDIAL ΣΥΝΕΔΡΙΟ\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; } } - else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; - } -} @@ -17826,153 +22223,251 @@ if ($ADD==31111111111111) ###################### if ($ADD==311111111111111) -{ + { if ($LOGmodify_servers==1) - { - echo "
\n"; - echo ""; + { + echo "\n"; - } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second from system_settings;"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $version = $row[0]; - $install_date = $row[1]; - $use_non_latin = $row[2]; - $webroot_writable = $row[3]; - $enable_queuemetrics_logging = $row[4]; - $queuemetrics_server_ip = $row[5]; - $queuemetrics_dbname = $row[6]; - $queuemetrics_login = $row[7]; - $queuemetrics_pass = $row[8]; - $queuemetrics_url = $row[9]; - $queuemetrics_log_id = $row[10]; - $queuemetrics_eq_prepend = $row[11]; - $vicidial_agent_disable = $row[12]; - $allow_sipsak_messages = $row[13]; - $admin_home_url = $row[14]; - $enable_agc_xfer_log = $row[15]; - $db_schema_version = $row[16]; - $auto_user_add_value = $row[17]; - $timeclock_end_of_day = $row[18]; - $timeclock_last_reset_date = $row[19]; - $vdc_header_date_format = $row[20]; - $vdc_customer_date_format = $row[21]; - $vdc_header_phone_format = $row[22]; - $vdc_agent_api_active = $row[23]; - $qc_last_pull_time = $row[24]; - $enable_vtiger_integration = $row[25]; - $vtiger_server_ip = $row[26]; - $vtiger_dbname = $row[27]; - $vtiger_login = $row[28]; - $vtiger_pass = $row[29]; - $vtiger_url = $row[30]; - $qc_features_active = $row[31]; - $outbound_autodial_active = $row[32]; - $outbound_calls_per_second = $row[33]; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; - echo "
ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL\n"; + echo "\n"; + echo "\n"; + echo "
Έκδοση: $version
DB Schema Έκδοση: $db_schema_version
Auto Χρήστης-add Value: $auto_user_add_value
Εγκαταστήστε Ημερομηνία: $install_date
Μη-λατινικά χρήσης: $NWB#settings-use_non_latin$NWE
Webroot writable: $NWB#settings-webroot_writable$NWE
VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη: $NWB#settings-vicidial_agent_disable$NWE
Επιτρέψτε τα μηνύματα SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
Σπίτι URL Admin:$NWB#settings-admin_home_url$NWE
Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων: $NWB#settings-enable_agc_xfer_log$NWE
Ώρα ρολόι Τέλος της ημέρας:$NWB#settings-timeclock_end_of_day$NWE
ΤελευταίαΏρα ρολόι Αυτόματη Αποσύνδεση: $timeclock_last_reset_date
QC Τελευταία Τραβήξτε Ώρα: $qc_last_pull_time
Agent Screen Επικεφαλίδας Μορφή Ημερομηνίας: $NWB#settings-vdc_header_date_format$NWE
Agent Screen Πελατών Μορφή Ημερομηνίας: $NWB#settings-vdc_customer_date_format$NWE
Agent Screen Πελατών τηλέφωνο Μορφοποίηση: $NWB#settings-vdc_header_phone_format$NWE
Agent API Ενεργό:$NWB#settings-vdc_agent_api_active$NWE
QC Χαρακτηριστικά Ενεργή:$NWB#settings-qc_features_active$NWE
Εξερχόμενο Auto-Dial Ενεργή:$NWB#settings-outbound_autodial_active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "\n"; + $o++; + } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "$servers_list"; + echo "\n"; + echo "$NWB#settings-active_voicemail_server$NWE\n"; - echo "\n"; - echo "
Έκδοση: $version
DB Schema Έκδοση: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Χρήστης-add Value: $auto_user_add_value
Εγκαταστήστε Ημερομηνία: $install_date
Μη-λατινικά χρήσης: $NWB#settings-use_non_latin$NWE
Webroot writable: $NWB#settings-webroot_writable$NWE
VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη: $NWB#settings-vicidial_agent_disable$NWE
Επιτρέψτε τα μηνύματα SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
Σπίτι URL Admin:$NWB#settings-admin_home_url$NWE
Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων: $NWB#settings-enable_agc_xfer_log$NWE
Ώρα ρολόι Τέλος της ημέρας:$NWB#settings-timeclock_end_of_day$NWE
ΤελευταίαΏρα ρολόι Αυτόματη Αποσύνδεση: $timeclock_last_reset_date
Agent Screen Επικεφαλίδας Μορφή Ημερομηνίας: $NWB#settings-vdc_header_date_format$NWE
Agent Screen Πελατών Μορφή Ημερομηνίας: $NWB#settings-vdc_customer_date_format$NWE
Agent Screen Πελατών τηλέφωνο Μορφοποίηση: $NWB#settings-vdc_header_phone_format$NWE
Agent API Ενεργό:$NWB#settings-vdc_agent_api_active$NWE
Agent Μόνο Callback Καμπάνια Lock: $NWB#settings-agentonly_callback_campaign_lock$NWE
Max ΣΥΜΠΛΗΡΩΣΤΕ ζητεί ανά Δεύτερη: $NWB#settings-outbound_calls_per_second$NWE
Κεντρική Sound Control Ενεργό: $NWB#settings-sounds_central_control_active$NWE
Ήχοι Web Server: $NWB#settings-sounds_web_server$NWE
Ήχοι Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Επιτρέψτε την αναγραφή QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics κεντρικός υπολογιστής IP: $NWB#settings-queuemetrics_server_ip$NWE
QueueMetrics όνομα DB: $NWB#settings-queuemetrics_dbname$NWE
QueueMetrics σύνδεση DB: $NWB#settings-queuemetrics_login$NWE
QueueMetrics κωδικός πρόσβασης DB: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
QueueMetrics καταγράψτε την ταυτότητα: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend:$NWB#settings-queuemetrics_eq_prepend$NWE
Ενεργή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Server:
Ενεργοποίηση Vtiger Ένταξη: $NWB#settings-enable_vtiger_integration$NWE\n"; - echo "   Κάντε κλικ εδώ για να Συγχρονίστε χρήστες με Vtiger\n"; - echo "
Vtiger ΣΠ IP Διακομιστή: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Σύνδεση:$NWB#settings-vtiger_login$NWE
Vtiger DB Κωδικός:$NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; - echo "\n"; - if ($LOGuser_level >= 9) - { - echo "

Κάντε κλικ εδώ για να δείτε Admin chages για τις ρυθμίσεις του συστήματος
\n"; - } + echo "
Auto Dial Όριο: $NWB#settings-auto_dial_limit$NWE
Εξερχόμενο Auto-Dial Ενεργή:$NWB#settings-outbound_autodial_active$NWE
Max ΣΥΜΠΛΗΡΩΣΤΕ ζητεί ανά Δεύτερη: $NWB#settings-outbound_calls_per_second$NWE
Επιτρέψτε Custom dialplan Καταχωρήσεις: $NWB#settings-allow_custom_dialplan$NWE
Χρήστης Εδάφη Ενεργή:$NWB#settings-user_territories_active$NWE
Ενεργοποίηση Δεύτερη Webform: $NWB#settings-enable_second_webform$NWE
Ενεργοποίηση TTS Ολοκλήρωσης: $NWB#settings-enable_tts_integration$NWE
QC Χαρακτηριστικά Ενεργή:$NWB#settings-qc_features_active$NWE
QC Τελευταία Τραβήξτε Ώρα: $qc_last_pull_time
Επιτρέψτε την αναγραφή QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics κεντρικός υπολογιστής IP: $NWB#settings-queuemetrics_server_ip$NWE
QueueMetrics όνομα DB: $NWB#settings-queuemetrics_dbname$NWE
QueueMetrics σύνδεση DB: $NWB#settings-queuemetrics_login$NWE
QueueMetrics κωδικός πρόσβασης DB: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
QueueMetrics καταγράψτε την ταυτότητα: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend:$NWB#settings-queuemetrics_eq_prepend$NWE
Ενεργοποίηση Vtiger Ένταξη: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Κάντε κλικ εδώ για να Συγχρονίστε χρήστες με Vtiger\n"; + echo "
Vtiger ΣΠ IP Διακομιστή: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Σύνδεση:$NWB#settings-vtiger_login$NWE
Vtiger DB Κωδικός:$NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages για τις ρυθμίσεις του συστήματος
\n"; + } + } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} @@ -17984,100 +22479,114 @@ if ($ADD==311111111111111) ###################### if ($ADD==321111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; - - echo "
\n"; - echo "VICIDIAL ΘΕΣΕΙΣ ΜΕΣΑ ΣΕ ΑΥΤΟ ΤΟ ΣΥΣΤΗΜΑ:  $NWB#vicidial_statuses$NWE
\n"; - echo "\n"; - echo "\n"; - - ##### get status category listings for dynamic pulldown - $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; - $rslt=mysql_query($stmt, $link); - $cats_to_print = mysql_num_rows($rslt); - $cats_list=""; - - $o=0; - while ($cats_to_print > $o) + if ($LOGmodify_servers==1) { - $rowx=mysql_fetch_row($rslt); - $cats_list .= "\n"; - $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); - $o++; - } + echo "
ΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗSELECT-
ABLE
ΑΝΘΡΩΠΙΝΗ
ΑΠΑΝΤΗΣΗ
ΚΑΤΗΓΟΡΙΑMODIFY/DELETE
\n"; - echo "\n"; + echo "  
\n"; + echo "
\n"; + + echo "
\n"; + } - - echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL ΘΕΣΕΙΣ ΜΕΣΑ ΣΕ ΑΥΤΟ ΤΟ ΣΥΣΤΗΜΑ:  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } - $stmt="SELECT * from vicidial_statuses order by status;"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $AScategory = $rowx[4]; - $o++; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗSELECT-
ABLE
ΑΝΘΡΩΠΙΝΗ
ΑΠΑΝΤΗΣΗ
ΚΑΤΗΓΟΡΙΑMODIFY/DELETE
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + else + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ
\n"; + echo "\n"; + echo "Κατάσταση:   \n"; + echo "Περιγραφή:
\n"; + echo "Επιλέξιμο:   \n"; + echo "Ανθρώπινα Απάντηση:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Κατηγορία:\n"; echo "\n"; - echo "
        \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "ΔΙΑΓΡΑΦΗ\n"; - } - else - { - echo "ΔΙΑΓΡΑΦΗ\n"; - } - echo "
\n"; - - echo "
ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ
\n"; - echo "\n"; - echo "Κατάσταση:   \n"; - echo "Περιγραφή:
\n"; - echo "Επιλέξιμο:   \n"; - echo "Ανθρώπινα Απάντηση:   \n"; - echo "Κατηγορία:\n"; - echo "  
\n"; - echo "
\n"; - - echo "

\n"; - - } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} @@ -18088,18 +22597,18 @@ if ($ADD==321111111111111) ###################### if ($ADD==331111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; - echo "
\n"; - echo "VICIDIAL Κατάσταση ΚΑΤΗΓΟΡΙΕΣ:   $NWB#vicidial_status_categories$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
\n"; + echo "VICIDIAL Κατάσταση ΚΑΤΗΓΟΡΙΕΣ:   $NWB#vicidial_status_categories$NWE
\n"; + echo "
ΚΑΤΗΓΟΡΙΑΟΝΟΜΑΚαθεστώτων σε αυτήν την κατηγορία
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_status_categories order by vsc_id;"; + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -18162,28 +22671,28 @@ if ($ADD==331111111111111) $p++; } + + echo "
ΚΑΤΗΓΟΡΙΑΟΝΟΜΑΚαθεστώτων σε αυτήν την κατηγορία
\n"; - echo "
\n"; + echo "
ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Εμφάνιση:   \n"; + echo "Πώληση Κατηγορία:   \n"; + echo "Νεκρά Μόλυβδος Κατηγορία:  
\n"; + echo "Περιγραφή:   \n"; + echo "
\n"; - echo "
ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ
\n"; - echo "\n"; - echo "Category ID:   \n"; - echo "Name:  
\n"; - echo "TimeOnVDAD Εμφάνιση:   \n"; - echo "Πώληση Κατηγορία:   \n"; - echo "Νεκρά Μόλυβδος Κατηγορία:  
\n"; - echo "Περιγραφή:   \n"; - echo "
\n"; + echo "

\n"; - echo "
\n"; - - } + } else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } } -} @@ -18194,121 +22703,121 @@ if ($ADD==331111111111111) ###################### if ($ADD==341111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "QC VICIDIAL κωδικοί στα πλαίσια αυτού του συστήματος:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEΠΕΡΙΓΡΑΦΗMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + else + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + echo "
\n"; + + echo "
Προσθήκη νέου QC Κατάσταση ΚΩΔΙΚΟΣ
\n"; + echo "\n"; + echo "Κατάσταση:   \n"; + echo "Περιγραφή:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) { echo "
\n"; echo ""; - echo "
\n"; - echo "QC VICIDIAL κωδικοί στα πλαίσια αυτού του συστήματος:  $NWB#vicidial_qc_status_codes$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΗ\n"; + echo "\n"; + echo "
STATUS CODEΠΕΡΙΓΡΑΦΗMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - } - } - echo "
Αριθμός Χρήστη:
Πλήρες Ονομα:
Επίπεδο Χρήστη:
Ομάδα Χρήστη:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]         \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "ΔΙΑΓΡΑΦΗ\n"; - } - else - { - echo "ΔΙΑΓΡΑΦΗ\n"; - } - echo "
\n"; - - echo "
Προσθήκη νέου QC Κατάσταση ΚΩΔΙΚΟΣ
\n"; - echo "\n"; - echo "Κατάσταση:   \n"; - echo "Περιγραφή:
\n"; - echo "
\n"; - - echo "

\n"; - - } - else - { - echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; - exit; - } -} - - - - - - -###################### -# ADD=550 search form -###################### - -if ($ADD==550) -{ -echo "\n"; - -echo "\n"; -echo "
\n"; -echo ""; - -echo "
ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΗ
\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + + echo "\n"; + echo "
Αριθμός Χρήστη:
Πλήρες Ονομα:
Επίπεδο Χρήστη:
Ομάδα Χρήστη:
\n"; } -echo "$groups_list
\n"; - -} ###################### # ADD=660 user search results ###################### if ($ADD==660) -{ -echo "
\n"; + { + echo "
\n"; echo ""; $SQL = ''; @@ -18317,18 +22826,19 @@ echo "
\n"; if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} if ($user_group) {$SQL .= " user_group = '$user_group' and";} $SQL = eregi_replace(" and$", "", $SQL); - if (strlen($SQL)>5) {$SQL = "where $SQL";} + if (strlen($SQL)>5) {$SQL = "and $SQL";} - $stmt="SELECT * from vicidial_users $SQL order by full_name desc;"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; # echo "\n|$stmt|\n"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); -echo "
ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ:\n"; -echo "
\n"; + echo "
ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ:\n"; + echo "
\n"; $o=0; - while ($people_to_print > $o) { + while ($people_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18337,12 +22847,12 @@ echo "
\n"; echo ""; echo "\n"; $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]ΤΡΟΠΟΠΟΙΗΣΗ | ΣΤΑΤΙΣΤΙΚΑ | ΚΑΤΑΣΤΑΣΗ | TIME
\n"; + } -echo "
\n"; - -} - ###################################################################################################### ###################################################################################################### @@ -18354,158 +22864,158 @@ echo "
\n"; # ADD=8 find all callbacks on hold by a User ###################### if ($ADD==8) -{ - if ($LOGmodify_users==1) { + if ($LOGmodify_users==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Χρήστης($user) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Χρήστης($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Χρήστης($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Χρήστης($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; -echo ""; + echo ""; $CBquerySQLwhere = "and user='$user'"; -echo "
USER CALLBACK HOLD LISTINGS: $user\n"; -$oldADD = "ADD=8&user=$user"; -$ADD='82'; -} + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } ###################### # ADD=81 find all callbacks on hold within a Campaign ###################### if ($ADD==81) -{ - if ($LOGmodify_campaigns==1) { + if ($LOGmodify_campaigns==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; -echo ""; + echo ""; $CBquerySQLwhere = "and campaign_id='$campaign_id'"; -echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; -$oldADD = "ADD=81&campaign_id=$campaign_id"; -$ADD='82'; -} + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } ###################### # ADD=811 find all callbacks on hold within a List ###################### if ($ADD==811) -{ - if ($LOGmodify_lists==1) { + if ($LOGmodify_lists==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; -echo ""; + echo ""; $CBquerySQLwhere = "and list_id='$list_id'"; -echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=811&list_id=$list_id"; -$ADD='82'; -} + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } ###################### # ADD=8111 find all callbacks on hold within a user group ###################### if ($ADD==8111) -{ - if ($LOGmodify_usergroups==1) { + if ($LOGmodify_usergroups==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; echo ""; $CBquerySQLwhere = "and user_group='$user_group'"; -echo "
ΟΜΑΔΑ ΧΡΗΣΤΩΝ CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=8111&user_group=$user_group"; -$ADD='82'; -} + echo "
ΟΜΑΔΑ ΧΡΗΣΤΩΝ CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } ###################### # ADD=82 display all callbacks on hold ###################### if ($ADD==82) -{ + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $ΕΠΙΠΕΔΟlink='stage=ΕΠΙΠΕΔΟUP';} -$USERlink='stage=USERIDDOWN'; -$GROUPlink='stage=GROUPDOWN'; -$ENDATElink='stage=ENDATEDOWN'; -$SQLorder='order by '; -if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} -if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} -if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $ΕΠΙΠΕΔΟlink='stage=ΕΠΙΠΕΔΟUP';} - - $stmt="SELECT * from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; $rslt=mysql_query($stmt, $link); $cb_to_print = mysql_num_rows($rslt); -echo ""; echo ""; echo "\n"; + echo "\n"; echo "\n"; echo ""; echo ""; @@ -18709,6 +23220,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18718,7 +23230,7 @@ if ($ADD==100) $o++; } - $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id from vicidial_lists where list_id NOT IN($lists_printed'');"; + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); $o=0; @@ -18732,6 +23244,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18835,6 +23348,65 @@ if ($ADD==1300) } +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + echo "
LEADLISTΕΚΣΤΡΑΤΕΙΑENTRY ΗΜΕΡΑCALLBACK ΗΜΕΡΑUSERRECIPIENTΚΑΤΑΣΤΑΣΗGROUP
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; $o=0; - while ($cb_to_print > $o) { + while ($cb_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18523,13 +23033,13 @@ echo ""; echo "\n"; $o++; + } + + echo "
LEADLISTΕΚΣΤΡΑΤΕΙΑENTRY ΗΜΕΡΑCALLBACK ΗΜΕΡΑUSERRECIPIENTΚΑΤΑΣΤΑΣΗGROUP
G echo "$row[11]
\n"; + + echo "$CBinactiveLINK"; } -echo "
\n"; - -echo "$CBinactiveLINK"; -} - ###################################################################################################### @@ -18553,7 +23063,7 @@ if ($ADD==0) } else { - $SQLstatus = "where active='Y'"; + $SQLstatus = "and active='Y'"; echo "   δείτε όλους τους χρήστες\n"; } @@ -18570,7 +23080,7 @@ if ($ADD==0) if (eregi("ΕΠΙΠΕΔΟDOWN",$stage)) {$SQLorder='order by user_level desc'; $ΕΠΙΠΕΔΟlink='stage=ΕΠΙΠΕΔΟUP';} if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} - $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users $SQLstatus $SQLorder"; + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); @@ -18680,7 +23190,7 @@ if ($ADD==100) if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} - $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -18690,6 +23200,7 @@ if ($ADD==100) echo "
ID ΛΙΣΤΑΣΟΝΟΜΑ ΛΙΣΤΑΣΠΕΡΙΓΡΑΦΗRTIMELEADS COUNTΕΝΕΡΓΟΤΕΛΕΥΤΑΙΑ ΗΜΕΡΟΜΗΝΙΑ ΥΠΟΒΟΛΗΣ
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
"; echo "\n"; - $o=0; while ($statecalltimes_to_print > $o) { @@ -19387,6 +23958,143 @@ if ($ADD==140000000000) echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDΟΝΟΜΑPROMPTTIMEOUTOPTIONSΤΡΟΠΟΠΟΙΗΣΗ
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + ###################### # ADD=10000 display all remote agents ###################### @@ -19057,7 +23629,6 @@ if ($ADD==1000000000) echo "
DEFAULT STOPΤΡΟΠΟΠΟΙΗΣΗ
\n"; } + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDTTS ΌνομαΕνεργόTTS ΚείμενοΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameΕνεργόΤυχαία σειράΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ΚΟΥΤΙΑ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameΕνεργόΝέα ΜηνύματαΠαλαιά ΜηνύματαDeleteΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + ###################### # ADD=1000000000000 display all conferences ###################### @@ -19781,7 +24489,7 @@ if ($ADD==999999) echo "\n";echo "\n"; -$stmt="SELECT admin_home_url from system_settings;"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; ?>
-
\n"; echo ""; - $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers;"; + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $servers_to_print = mysql_num_rows($rslt); @@ -19806,52 +24514,97 @@ if ($ADD==999999) $queuemetrics_url_LU = $row[0]; $vtiger_url_LU = $row[1]; + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; ?> - VICIDIAL: Στατιστικά Server και Εκθέσεις - VICIDIAL: Στατιστικά Server και Εκθέσεις

+ Στατιστικά Server και Εκθέσεις + Στατιστικά Server και Εκθέσεις

+
+       + + Real-Time Εκθέσεις

+ Inbound and Outbound Calling Εκθέσεις
+ + +
+       + + Agent Εκθέσεις
+
+ Time Clock Εκθέσεις
+
+ Other Εκθέσεις and Links
+ +
+ +

-		 $o)
@@ -19873,7 +24626,7 @@ if ($ADD==999999)
 				}
 			$disk = "$disk%";
 			echo "\n";
-			echo "\n";
+			echo "\n";
 			echo "\n";
 			echo "\n";
 			echo "\n";
@@ -19916,7 +24669,7 @@ echo "ΔΗΜΙΟΥΡΓΙΑ: $build\n";
 
 
-1)
 					{
-					$stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
+					$stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
 					$rslt=mysql_query($stmt, $link);
 					$row=mysql_fetch_row($rslt);
 					$Gstate_call_time_id =		"$row[0]";
@@ -20225,7 +24978,6 @@ if (isset($camp_lists))
 			$default_gmt = "$default_gmt'99'";
 			$all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL";
 
-
 			$dial_statuses = preg_replace("/ -$/","",$dial_statuses);
 			$Dstatuses = explode(" ", $dial_statuses);
 			$Ds_to_print = (count($Dstatuses) - 0);
@@ -20239,7 +24991,16 @@ if (isset($camp_lists))
 			$Dsql = preg_replace("/,$/","",$Dsql);
 			if (strlen($Dsql) < 2) {$Dsql = "''";}
 
-			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $fSQL";
+			$DLTsql='';
+			if ($drop_lockout_time > 0)
+				{
+				$DLseconds = ($drop_lockout_time * 3600);
+				$DLseconds = floor($DLseconds);
+				$DLseconds = intval("$DLseconds");
+				$DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )";
+				}
+
+			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL";
 			#$DB=1;
 			if ($DB) {echo "$stmt\n";}
 			$rslt=mysql_query($stmt, $link);
diff --git a/LANG_www/vicidial_el/admin_header.php b/LANG_www/vicidial_el/admin_header.php
index 3988f456..fbebee79 100644
--- a/LANG_www/vicidial_el/admin_header.php
+++ b/LANG_www/vicidial_el/admin_header.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -6,6 +6,19 @@
 
 # CHANGES
 # 90310-0709 - First Build
+# 90508-0542 - Added Call Menu option, changed script to use long PHP tags
+# 90514-0605 - Added audio prompt selection functions
+# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option
+# 90531-2339 - Added Dynamic options for Call Menu
+# 90612-0852 - Changed relative links
+# 90635-0943 - Added javascript for dynamic menus in In-Groups
+# 90627-0548 - Added no-agent-no-queue options
+# 90628-1016 - Added Text-to-speech options
+# 90830-2213 - Added Music On Hold options
+# 90904-1534 - Added launch_moh_chooser
+# 90916-2334 - Added Voicemail options
+# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus
+#
 
 
 ######################### SMALL HTML HEADER BEGIN #######################################
@@ -26,7 +39,7 @@ if($short_header)
 	
SERVERΠΕΡΙΓΡΑΦΗIPACTLOADCHANDISKΕΞΕΡΧΟΜΕΝΟΕισερχόμενα
$server_id[$o]$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]   Εκθέσεις  
- \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
English Ελληνικά
-VICIDIAL logo +VICIDIAL logo ADMINISTRATION
- - 1) { + 1) { ?> - >>>>>>> - >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + - - 1) { if ($sh=='basic') {$sh='list';} @@ -657,201 +968,241 @@ if (strlen($reports_hh) > 1) { else {$listmix_sh=''; $listmix_fc='BLACK';} ?> - > - - > - - > - - > + + > + + > + + 0) { ?> - > - - > - - > - - > + + > + + > + + - > - - > + + - 0) { ?> - - + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Προσθήκη-Διαγραφή Αριθμός Από DNC';} + else {$DNClink = 'Add Number To DNC';} ?> - >>>>>>>>>> - - - 1) { ?> - >>>> - - 0) { ?> - - + 1) { ?> - >>>> - - - 1) { ?> - >>>>>>>>>>>>>>> - - - 1) { ?> - >>>>>>>> - - - 1) { ?> - >>>> - - - 1) { - if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} # pink + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} else {$times_sh=''; $times_fc='BLACK';} - if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} # pink + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} else {$shifts_sh=''; $shifts_fc='BLACK';} - if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} # pink + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} else {$templates_sh=''; $templates_fc='BLACK';} - if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} # pink + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} else {$carriers_sh=''; $carriers_fc='BLACK';} - if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} # pink + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} else {$phones_sh=''; $phones_fc='BLACK';} - if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} # pink + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} else {$server_sh=''; $server_fc='BLACK';} - if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} # pink + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} else {$conference_sh=''; $conference_fc='BLACK';} - if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} # pink + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} else {$settings_sh=''; $settings_fc='BLACK';} - if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} # pink + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} ?> - > - - > - > - > - > - > - > - > - > + > + + > + > + > + > + > + > + > + > + > - 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + - +
WIDTH=160> - SIZE=>Χρήστες +
WIDTH=160> + SIZE=>Χρήστες
-   >Δείτε Χρήστες -
-   >Προσθήκη νέου χρήστη -
-   >Χρήστης αντιγράφων -
-   >Αναζήτηση ενός χρήστη -
-   >Στατιστικά Χρήστη -
-   >Κατάσταση χρήστη -
-   >Ώρα Φύλλο
+   >Δείτε Χρήστες +
+   >Προσθήκη νέου χρήστη +
+   >Χρήστης αντιγράφων +
+   >Αναζήτηση ενός χρήστη +
+   >Στατιστικά Χρήστη +
+   >Κατάσταση χρήστη +
+   >Ώρα Φύλλο
+   >Χρήστης Εδάφη
> - SIZE=>Εκστρατείες +
> + SIZE=>Εκστρατείες
>   SIZE=>Κύρια Καμπάνιες
>   SIZE=>Καθεστώτων
>   SIZE=>HotKeys>   SIZE=>Κύρια Καμπάνιες
>   SIZE=>Καθεστώτων
>   SIZE=>HotKeys
>   SIZE=>Μόλυβδος Ανακύκλωσης
>   SIZE=>Auto-Alt Dial
>   SIZE=>Κατάλογος Mix
>   SIZE=>Μόλυβδος Ανακύκλωσης
>   SIZE=>Auto-Alt Dial
>   SIZE=>Κατάλογος Mix
>   SIZE=>Παύση Κώδικες
>   SIZE=>Παύση Κώδικες
> SIZE=>Λίστες
> SIZE=>Λίστες
  - > Παρουσιάστε καταλόγους -
  - > Προσθέστε έναν νέο κατάλογο -
  - > Αναζήτηση ενός μολύβδου -
  - > Προσθέστε τον αριθμό σε DNC -
  - > Νέοι μόλυβδοι φορτίων +
  + > Παρουσιάστε καταλόγους +
  + > Προσθέστε έναν νέο κατάλογο +
  + > Αναζήτηση ενός μολύβδου +
  + > +
  + > Νέοι μόλυβδοι φορτίων
> - SIZE=> Χειρόγραφα +
> + SIZE=> Χειρόγραφα
  - > Παρουσιάστε χειρόγραφα -
  - > Προσθέστε ένα νέο χειρόγραφο +
  + > Παρουσιάστε χειρόγραφα +
  + > Προσθέστε ένα νέο χειρόγραφο
> SIZE=> Φίλτρα
> SIZE=> Φίλτρα
  - > Παρουσιάστε φίλτρα -
  - > Προσθέστε ένα νέο φίλτρο +
  + > Παρουσιάστε φίλτρα +
  + > Προσθέστε ένα νέο φίλτρο
> - SIZE=> $$$-ΟΜΑΔΕΣ +
> + SIZE=> $$$-ΟΜΑΔΕΣ
  - > Παρουσιάστε-ΟΜΑΔΕΣ -
  - > Προσθέστε μια νέα-ΟΜΑΔΑ -
  - > $$$-ΟΜΑΔΑ αντιγράφων -
  - > Δείτε DIDs -
  - > Προστίθεται ένα νέο DID -
  - > ΑντιγραφήDID +
  + > Παρουσιάστε-ΟΜΑΔΕΣ +
  + > Προσθέστε μια νέα-ΟΜΑΔΑ +
  + > $$$-ΟΜΑΔΑ αντιγράφων
+
  + > Δείτε DIDs +
  + > Προστίθεται ένα νέο DID +
  + > ΑντιγραφήDID
+
  + > Δείτε Καλέστε Menus +
  + > Προσθέστε μια νέα κλήση Μενού +
  + > Αντιγραφή Call Μενού
> - SIZE=> Ομάδες χρηστών +
> + SIZE=> Ομάδες χρηστών
  - > Παρουσιάστε ομάδες χρηστών -
  - > Προσθέστε μια νέα ομάδα χρηστών -
  - > Ωριαία έκθεση ομάδας -
  - > Μαζική Αλλαγή ομάδας +
  + > Παρουσιάστε ομάδες χρηστών +
  + > Προσθέστε μια νέα ομάδα χρηστών +
  + > Ωριαία έκθεση ομάδας +
  + > Μαζική Αλλαγή ομάδας
> - SIZE=> Μακρινοί πράκτορες +
> + SIZE=> Μακρινοί πράκτορες
  - > Παρουσιάστε μακρινούς πράκτορες -
  - > Προσθέστε τους νέους μακρινούς πράκτορες +
  + > Παρουσιάστε μακρινούς πράκτορες +
  + > Προσθέστε τους νέους μακρινούς πράκτορες
> - SIZE=> Admin +
> + SIZE=> Admin
COLSPAN=2>   - SIZE=> Χρόνοι κλήσης
>   - SIZE=> Βάρδιες
>   - SIZE=> Τηλέφωνα
>   - SIZE=> Πρότυπα
>   - SIZE=> Carriers
>   - SIZE=> Κεντρικοί υπολογιστές
>   - SIZE=> Διασκέψεις
>   - SIZE=> Τοποθετήσεις συστημάτων
>   - SIZE=>Θέσεις συστημάτων
COLSPAN=2>   + SIZE=> Χρόνοι κλήσης
>   + SIZE=> Βάρδιες
>   + SIZE=> Τηλέφωνα
>   + SIZE=> Πρότυπα
>   + SIZE=> Carriers
>   + SIZE=> Κεντρικοί υπολογιστές
>   + SIZE=> Διασκέψεις
>   + SIZE=> Τοποθετήσεις συστημάτων
>   + SIZE=>Θέσεις συστημάτων
>   + SIZE=> ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ
>   + SIZE=> Audio Store
>   + SIZE=> Music On Hold
>   + SIZE=> Text To Speech
> - SIZE=> Εκθέσεις +
> + SIZE=> Εκθέσεις
 
-
BGCOLOR=#D9E6FE> + BGCOLOR=#D9E6FE> - HEIGHT=15> - + + +
ΣΠΙΤΙ | Ώρα ρολόι | Αποσύνδεση  
HEIGHT=15> + @@ -862,64 +1213,75 @@ if (strlen($reports_hh) > 1) { - 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { ?> - > - > + 1) and (!eregi('campaign',$hh) ) ) { ?> - > - > + - > - > + 1) { ?> -> - +> +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $u++; $call_log .= ""; @@ -363,27 +393,28 @@ else $call_log .= "\n"; $call_log .= "\n"; $call_log .= "\n"; - $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_agent_log records ##### - $stmt="select * from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Alogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); - $y=0; - $agent_log = ''; - $Alog_campaign = ''; - while ($Alogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $agent_log .= ""; @@ -400,24 +431,24 @@ else $agent_log .= "\n"; $campaign_id = $row[5]; - } + } - ##### grab vicidial_closer_log records ##### - $stmt="select * from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Clogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); - $y=0; - $closer_log = ''; - $Clog_campaign = ''; - while ($Clogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $closer_log .= ""; @@ -433,39 +464,43 @@ else $closer_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_list data for lead ##### - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $lead_id = "$row[0]"; - $dispo = "$row[3]"; - $tsr = "$row[4]"; - $vendor_id = "$row[5]"; - $list_id = "$row[7]"; - $gmt_offset_now = "$row[8]"; - $phone_code = "$row[10]"; - $phone_number = "$row[11]"; - $title = "$row[12]"; - $first_name = "$row[13]"; # - $middle_initial = "$row[14]"; - $last_name = "$row[15]"; # - $address1 = "$row[16]"; # - $address2 = "$row[17]"; # - $address3 = "$row[18]"; # - $city = "$row[19]"; # - $state = "$row[20]"; # - $province = "$row[21]"; # - $postal_code = "$row[22]"; # - $country_code = "$row[23]"; # - $gender = "$row[24]"; - $date_of_birth = "$row[25]"; - $alt_phone = "$row[26]"; # - $email = "$row[27]"; # - $security = "$row[28]"; # - $comments = "$row[29]"; # + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; echo "
Πληροφορίες Κλήσης: $first_name $last_name - $phone_number

\n"; echo "\n"; @@ -499,45 +534,47 @@ else echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + if ($DS < 1) {$statuses_list .= "\n";} + echo "$statuses_list"; + echo "(with $log_campaign statuses)\n"; echo "\n"; @@ -551,9 +588,9 @@ else echo "


\n"; if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) - { + { ### find any vicidial_callback records for this lead - $stmt="select * from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $CB_to_print = mysql_num_rows($rslt); @@ -593,62 +630,68 @@ else { echo "
No Callback records found
\n"; } + } + } + else + { + echo "ΑΠΟΤΥΧΙΑ ψαξίματος καθοδήγησης για lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; } + echo "

\n"; + echo "
\n"; + if ($c > 0) + { + echo "EXTENDED ALTERNATE ΤΗΛΕΦΩΝΑ ΓΙΑ ΤΟ ΠΑΡΟΝ ΜΟΛΥΒΔΟΥ:\n"; + echo "
ΣΠΙΤΙ | Ώρα ρολόι | Αποσύνδεση  
>   > Παρουσιάστε εκστρατείες     |     > Προσθέστε μια νέα εκστρατεία     |     > Εκστρατεία αντιγράφων     |     > Σε πραγματικό χρόνο περίληψη εκστρατειών
>   > Παρουσιάστε εκστρατείες     |     > Προσθέστε μια νέα εκστρατεία     |     > Εκστρατεία αντιγράφων     |     > Σε πραγματικό χρόνο περίληψη εκστρατειών
  > Παρουσιάστε χρόνους κλήσης  | > Προσθέστε έναν νέο χρόνο κλήσης  | > Παρουσιάστε χρόνους κρατικής κλήσης  | > Προσθέστε έναν νέο χρόνο κρατικής κλήσης
  > Παρουσιάστε χρόνους κλήσης  | > Προσθέστε έναν νέο χρόνο κλήσης  | > Παρουσιάστε χρόνους κρατικής κλήσης  | > Προσθέστε έναν νέο χρόνο κρατικής κλήσης
  > Δείτε Βάρδιες  | > Προστίθεται ένα νέο Shift
  > Δείτε Βάρδιες  | > Προστίθεται ένα νέο Shift
  > Παρουσιάστε τηλέφωνα  | > Προσθέστε ένα νέο τηλέφωνο  | > Τηλέφωνο Γνωστός Κατάλογος  | > Προστίθεται ένα νέο τηλέφωνο Γνωστός  | > Ομάδα Γνωστός Κατάλογος  | > Προσθέστε μια νέα ομάδα Γνωστός
  > Παρουσιάστε τηλέφωνα  | > Προσθέστε ένα νέο τηλέφωνο  | > Τηλέφωνο Γνωστός Κατάλογος  | > Προστίθεται ένα νέο τηλέφωνο Γνωστός  | > Ομάδα Γνωστός Κατάλογος  | > Προσθέστε μια νέα ομάδα Γνωστός
  > Παρουσιάστε διασκέψεις   |   > Προσθέστε μια νέα διάσκεψη   |   > Παρουσιάστε διασκέψεις VICIDIAL   |   > Προσθέστε μια νέα διάσκεψη VICIDIAL
  > Παρουσιάστε διασκέψεις   |   > Προσθέστε μια νέα διάσκεψη   |   > Παρουσιάστε διασκέψεις VICIDIAL   |   > Προσθέστε μια νέα διάσκεψη VICIDIAL
  > Παρουσιάστε κεντρικούς υπολογιστές   |   > Προσθέστε έναν νέο κεντρικό υπολογιστή
  > Παρουσιάστε κεντρικούς υπολογιστές   |   > Προσθέστε έναν νέο κεντρικό υπολογιστή
  > Δείτε Πρότυπα   |   > Προσθέστε ένα νέο πρότυπο
  > Δείτε Πρότυπα   |   > Προσθέστε ένα νέο πρότυπο
  > Show Carriers   |   > Add A New Carrier
  > Show Carriers   |   > Add A New Carrier
  > Δείτε TTS Καταχωρήσεις   |   > Προσθέστε ένα νέο TTS Έναρξη
  > Δείτε ΜΟΗ Καταχωρήσεις   |   > Προσθέστε ένα νέο MOH Έναρξη
  > Show ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Entries   |   > Add A New ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Entry
  > Τοποθετήσεις συστημάτων
  > Τοποθετήσεις συστημάτων
  >Θέσεις συστημάτων   |   >Κατηγορίες θέσης   |   >QC κωδικοί
  >Θέσεις συστημάτων   |   >Κατηγορίες θέσης   |   >QC κωδικοί
  >Στατιστικά Χρήστη   |   >Κατάσταση χρήστη   |   >Ώρα Φύλλο   |   >Ημέρες Status
  >Στατιστικά Χρήστη   |   >Κατάσταση χρήστη   |   >Ώρα Φύλλο   |   >Ημέρες Status
>  
>  
-0) { - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; if ($WeBRooTWritablE > 0) { @@ -206,23 +214,22 @@ $browser = getenv("HTTP_USER_AGENT"); -ΔΙΑΧΕΙΡΙΣΗ: Τροποποίηση οδηγού +ADMINISTRATION: Τροποποίηση οδηγού
-ΔΙΑΧΕΙΡΙΣΗ: Τροποποίηση οδηγού
\n"; +ADMINISTRATION: Τροποποίηση οδηγού
\n"; if ($end_call > 0) -{ - + { ### update the lead record in the vicidial_list table - $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "οι πληροφορίες τροποποιήθηκαν

\n"; - echo "\n"; + echo "οι πληροφορίες τροποποιήθηκαν

\n"; + echo "
\n"; ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -233,69 +240,69 @@ if ($end_call > 0) $rslt=mysql_query($stmt, $link); if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($dispo == 'CALLBK') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($status == 'DNC') ) - { + { ### add lead to the internal DNC list $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; - } + } ### update last record in vicidial_log table if (($dispo != $status) and ($modify_logs > 0)) - { + { $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_closer_log table if (($dispo != $status) and ($modify_closer_logs > 0)) - { + { $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_agent_log table if (($dispo != $status) and ($modify_agent_logs > 0)) - { + { $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } if ($add_closer_record > 0) - { + { ### insert a NEW record to the vicidial_closer_log table $stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . mysql_real_escape_string($status) . "','" . mysql_real_escape_string($phone_code) . "','" . mysql_real_escape_string($phone_number) . "','$PHP_AUTH_USER','" . mysql_real_escape_string($comments) . "','Y')"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); + } + + } - - -} else -{ + { if ($CBchangeUSERtoANY == 'YES') { @@ -334,24 +341,47 @@ else $lead_count = $row[0]; if ($lead_count > 0) - { - - ##### grab vicidial_log records ##### - $stmt="select * from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); - - $u=0; - $call_log = ''; - $log_campaign = ''; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (strlen($log_campaign)<1) {$log_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$row[3] $row[2] $row[1] $row[15]
$row[15]   $row[10]
  $row[17]
  $row[17]
Εναλ Τηλέφωνο :
Ασφάλεια :
Rank :
Owner :
Σχόλια :
Τερματισμός:
Τερματισμός: (with $log_campaign statuses)
Modifyvicidial log
\n"; + echo "\n"; - } - else - { - echo "ΑΠΟΤΥΧΙΑ ψαξίματος καθοδήγησης για lead_id $lead_id       $NOW_TIME\n

\n"; -# echo "Close this window\n

\n"; - } + echo "$alts_output\n"; + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } - -echo "

\n"; - -echo "
\n"; - -echo "Κλήσεις για αυτόν τον οδηγό:\n"; -echo "\n"; -echo "\n"; + echo "Κλήσεις για αυτόν τον οδηγό:\n"; + echo "
# DATE/TIME LENGTH STATUS TSRΕΚΣΤΡΑΤΕΙΑ LIST LEAD HANGUP REASON
\n"; + echo "\n"; echo "$call_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSRΕΚΣΤΡΑΤΕΙΑ LIST LEAD HANGUP REASON PHONE
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "CLOSER RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME LENGTH STATUS TSRΕΚΣΤΡΑΤΕΙΑ LIST LEAD WAIT HANGUP REASON
\n"; + echo "\n"; echo "$closer_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSRΕΚΣΤΡΑΤΕΙΑ LIST LEAD WAIT HANGUP REASON
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "ΧΕΙΡΙΣΤΗΣLOG RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "ΧΕΙΡΙΣΤΗΣLOG RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "\n"; - echo "$agent_log\n"; + echo "$agent_log\n"; -echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "RECORDINGS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; + echo "\n"; -$stmt="select * from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; -$rslt=mysql_query($stmt, $link); -$logs_to_print = mysql_num_rows($rslt); + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); $u=0; while ($logs_to_print > $u) @@ -707,12 +750,8 @@ $logs_to_print = mysql_num_rows($rslt); } -echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; - - - - -} + echo "
\n"; + } $ENDtime = date("U"); @@ -731,15 +770,9 @@ echo "\n\n\n


\nχρόνος εκτέλεσης διαδ - - - - - - diff --git a/LANG_www/vicidial_el/admin_search_lead.php b/LANG_www/vicidial_el/admin_search_lead.php index 05162d95..1d70ae1a 100644 --- a/LANG_www/vicidial_el/admin_search_lead.php +++ b/LANG_www/vicidial_el/admin_search_lead.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -18,6 +18,9 @@ # 90121-0500 - Added filter for phone to remove non-digits # 90309-1828 - Added admin_log logging # 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR # require("dbconnect.php"); @@ -43,21 +46,25 @@ if (isset($_GET["user"])) {$user=$_GET["user"];} elseif (isset($_POST["user"])) {$user=$_POST["user"];} if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} $STARTtime = date("U"); $TODAY = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner'; - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} @@ -66,25 +73,24 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - - if($auth>0) + if ($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; if ($WeBRooTWritablE > 0) { @@ -106,8 +112,8 @@ $browser = getenv("HTTP_USER_AGENT"); -ΔΙΑΧΕΙΡΙΣΗ: Αναζήτηση Οδηγού -<? +<title>ADMINISTRATION: Αναζήτηση Οδηγού +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -131,12 +137,8 @@ $subcamp_color = '#C6C6C6'; require("admin_header.php"); - - - echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; - if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) { echo date("l F j, Y G:i:s A"); @@ -144,7 +146,8 @@ if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and echo "<form method=post name=search action=\"$PHP_SELF\">\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<b>Παρακαλώ καταχωρήστε:<br> Vendor ID(αυτόματος κωδικός καθοδήγησης): <input type=text name=vendor_id size=10 maxlength=10> or \n"; - echo "<br><b>ένας αριθμός τηλεφώνου σπιτιού <input type=text name=phone size=20 maxlength=16> or\n"; + echo "<br><b>ένας αριθμός τηλεφώνου σπιτιού <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; echo "<br><b>ID οδηγού <input type=text name=lead_id size=10 maxlength=10> or\n"; echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; @@ -160,19 +163,26 @@ else if ($vendor_id) { - $stmt="SELECT * from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; } else { if ($phone) { - $stmt="SELECT * from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' order by modify_date desc limit 1000"; + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } } else { if ($lead_id) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; } else { @@ -195,7 +205,7 @@ else if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; } - $stmt="SELECT * from vicidial_list where $statusSQL $list_idSQL $userSQL order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; } else { @@ -205,14 +215,38 @@ else } } } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + if ($DB) { echo "\n\n$stmt\n\n"; } - - $rslt=mysql_query($stmt, $link); + + $rslt=mysql_query("$stmt", $link); $results_to_print = mysql_num_rows($rslt); - if ($results_to_print < 1) + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) { echo date("l F j, Y G:i:s A"); echo "\n<br><br><center>\n"; @@ -270,7 +304,7 @@ else $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); } diff --git a/LANG_www/vicidial_el/audio_store.php b/LANG_www/vicidial_el/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/LANG_www/vicidial_el/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_campaigns='1'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/LANG_www/vicidial_el/call_report_export.php b/LANG_www/vicidial_el/call_report_export.php index 87d307c7..77a49b05 100644 --- a/LANG_www/vicidial_el/call_report_export.php +++ b/LANG_www/vicidial_el/call_report_export.php @@ -1,4 +1,4 @@ -<? +<?php # call_report_export.php # # displays options to select for downloading of leads and their vicidial_log @@ -10,6 +10,10 @@ # CHANGES # # 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name # require("dbconnect.php"); @@ -37,8 +41,8 @@ if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} -if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} - elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (strlen($shift)<2) {$shift='ALL';} @@ -48,12 +52,10 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -72,7 +74,7 @@ $auth=$row[0]; { # Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); # Header("HTTP/1.0 401 Unauthorized"); - echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης or no export report permission: |$PHP_AUTH_USER|\n"; + echo "Invalid Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; exit; } @@ -206,14 +208,14 @@ if ($run_export > 0) echo "<BR>\n"; echo "$status_ct|$status_string|$status_SQL\n"; echo "<BR>\n"; - exit; } - + $outbound_calls=0; + $export_rows=''; + $k=0; if ($RUNcampaign > 0) { - $export_campaign_rows=''; - $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $outbound_to_print = mysql_num_rows($rslt); @@ -229,20 +231,23 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_campaign_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; + $outbound_calls++; } } } if ($RUNgroup > 0) { - $export_group_rows=''; - $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmtA, $link); if ($DB) {echo "$stmt\n";} $inbound_to_print = mysql_num_rows($rslt); - if ($inbound_to_print < 1) + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) { echo "There are no inbound calls during this time period for these parameters\n"; exit; @@ -254,8 +259,11 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_group_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; } } } @@ -267,7 +275,7 @@ if ($run_export > 0) $SQL_log = "$stmt|$stmtA|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN ΕΚΘΕΣΗ ΕΞΑΓΩΓΗΣ CALLS', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); @@ -284,7 +292,48 @@ if ($run_export > 0) ob_clean(); flush(); - echo "$export_campaign_rows$export_group_rows"; + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } } else { @@ -397,7 +446,7 @@ else echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; - echo "<TITLE>VICIDIAL: Εξαγωγή ζητεί έκθεση"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -422,19 +471,19 @@ else echo "<CENTER><BR>\n"; - echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Εξαγωγή ζητεί έκθεση</B></FONT><BR><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; - echo "<TABLE Border=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Χρονικό διάστημα:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; echo "<BR>to<BR>\n"; echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; - echo "<font class=\"select_bold\"><B>Εκστρατείες:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; $o=0; while ($campaigns_to_print > $o) @@ -448,7 +497,7 @@ else echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Εισερχόμενες Ομάδες:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; $o=0; while ($groups_to_print > $o) @@ -461,7 +510,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Λίστες:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; $o=0; while ($lists_to_print > $o) @@ -474,7 +523,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Καθεστώτων:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; $o=0; while ($statuses_to_print > $o) @@ -487,7 +536,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Ομάδες Χρήστη:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; $o=0; while ($user_groups_to_print > $o) @@ -503,7 +552,7 @@ else echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; - echo "<INPUT TYPE=Submit NAME=ΕΠΙΒΕΒΑΙΩΣΗ VALUE=ΥΠΟΒΑΛΛΩ>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "</TD></TR></TABLE>\n"; echo "</FORM>\n\n"; diff --git a/LANG_www/vicidial_el/fcstats.php b/LANG_www/vicidial_el/fcstats.php index 201ab56d..c7f53d6f 100644 --- a/LANG_www/vicidial_el/fcstats.php +++ b/LANG_www/vicidial_el/fcstats.php @@ -1,4 +1,4 @@ -<? +<?php # fcstats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # 71228-1140 - added percentages, cross-day start/stop # 80328-1139 - adapted for basic fronter/closer stats # 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -80,9 +81,9 @@ while ($i < $groups_to_print) --> </STYLE> -<? +<?php echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; -echo "<TITLE>VICIDIAL: In-Group Fronter-Closer Stats\n"; +echo "In-Group Fronter-Closer Stats Report\n"; $short_header=1; @@ -147,7 +148,7 @@ if ($shift == 'ALL') $query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0])); } -echo "VICIDIAL: In-Group Fronter-Closer Stats $NOW_TIME\n"; +echo "In-Group Fronter-Closer Stats Report $NOW_TIME\n"; echo "\n"; echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n"; diff --git a/LANG_www/vicidial_el/functions.php b/LANG_www/vicidial_el/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/LANG_www/vicidial_el/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/LANG_www/vicidial_el/group_hourly_stats.php b/LANG_www/vicidial_el/group_hourly_stats.php index 3e76a4af..54b12353 100644 --- a/LANG_www/vicidial_el/group_hourly_stats.php +++ b/LANG_www/vicidial_el/group_hourly_stats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 60620-1014 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -26,14 +27,34 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { @@ -106,8 +127,8 @@ $browser = getenv("HTTP_USER_AGENT"); -ΔΙΑΧΕΙΡΙΣΗ: Ομαδοποιημένα Ωριαία Στατιστικά -<? +<title>ADMINISTRATION: Ομαδοποιημένα Ωριαία Στατιστικά +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -133,12 +154,12 @@ require("admin_header.php"); <CENTER> -<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Ομαδοποιημένα Ωριαία Στατιστικά <? echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Ομαδοποιημένα Ωριαία Στατιστικά <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> -<? +<?php if ( ($group) and ($status) and ($date_with_hour) ) { @@ -223,7 +244,7 @@ echo "<br><br>\n"; echo "<input type=hidden name=DB value=$DB>\n"; echo "group: <select size=1 name=group>\n"; - $stmt="SELECT * from vicidial_user_groups order by user_group"; + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; $rslt=mysql_query($stmt, $link); $groups_to_print = mysql_num_rows($rslt); $o=0; @@ -260,7 +281,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδ </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_el/list_download.php b/LANG_www/vicidial_el/list_download.php index 32ca344d..6e7bbc86 100644 --- a/LANG_www/vicidial_el/list_download.php +++ b/LANG_www/vicidial_el/list_download.php @@ -1,4 +1,4 @@ -<? +<?php # list_download.php # # downloads the entire contents of a vicidial list ID to a flat text file @@ -9,6 +9,8 @@ # CHANGES # # 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields # require("dbconnect.php"); @@ -111,7 +113,7 @@ header('Pragma: public'); ob_clean(); flush(); -$stmt="select * from vicidial_list where list_id='$list_id';"; +$stmt="select lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $leads_to_print = mysql_num_rows($rslt); @@ -120,7 +122,7 @@ while ($i < $leads_to_print) { $row=mysql_fetch_row($rslt); - echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\r\n"; + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; $i++; } diff --git a/LANG_www/vicidial_el/listloader.pl b/LANG_www/vicidial_el/listloader.pl index b8f9e064..052d93e0 100644 --- a/LANG_www/vicidial_el/listloader.pl +++ b/LANG_www/vicidial_el/listloader.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader.pl version 2.0.5 +# listloader.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -19,65 +19,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][22]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } if (length($forcelistid) > 0) { @@ -369,10 +380,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -380,7 +438,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -406,7 +464,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -426,7 +484,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -446,7 +504,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -466,7 +524,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -565,14 +623,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -591,7 +649,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_el/listloaderMAIN.php b/LANG_www/vicidial_el/listloaderMAIN.php index bfb93e8d..8c9912db 100644 --- a/LANG_www/vicidial_el/listloaderMAIN.php +++ b/LANG_www/vicidial_el/listloaderMAIN.php @@ -1,7 +1,7 @@ -<? +<?php # listloaderMAIN.php # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # this is the main frame page for the lead loading section. This is where you # would upload a file and have it inserted into vicidial_list @@ -9,6 +9,7 @@ # changes: # 60620-1149 - Added variable filtering to eliminate SQL injection attack threat # 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); diff --git a/LANG_www/vicidial_el/listloader_rowdisplay.pl b/LANG_www/vicidial_el/listloader_rowdisplay.pl index bbfc8170..9caaeab2 100644 --- a/LANG_www/vicidial_el/listloader_rowdisplay.pl +++ b/LANG_www/vicidial_el/listloader_rowdisplay.pl @@ -1,14 +1,15 @@ #!/usr/bin/perl # -# listloader_rowdisplay.pl version 2.0.5 +# listloader_rowdisplay.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES # # 60811-1232 - Changed to DBI # 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields # ### begin parsing run-time options ### @@ -116,7 +117,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { @xls_row=split(/\|/, $var_str); -$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1;"; +$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; diff --git a/LANG_www/vicidial_el/listloader_super.pl b/LANG_www/vicidial_el/listloader_super.pl index 3af97f37..9b09bba7 100644 --- a/LANG_www/vicidial_el/listloader_super.pl +++ b/LANG_www/vicidial_el/listloader_super.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader_super.pl version 2.0.5 +# listloader_super.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -18,65 +18,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### use Spreadsheet::ParseExcel; @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } @@ -371,10 +382,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -382,7 +440,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -408,7 +466,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -428,7 +486,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -448,7 +506,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -468,7 +526,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -567,14 +625,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -593,7 +651,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_el/new_listloader_superL.php b/LANG_www/vicidial_el/new_listloader_superL.php index 7566e465..8f834971 100644 --- a/LANG_www/vicidial_el/new_listloader_superL.php +++ b/LANG_www/vicidial_el/new_listloader_superL.php @@ -1,4 +1,4 @@ -<? +<?php # new_listloader_superL.php # # Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 @@ -25,11 +25,15 @@ # 81011-2009 - a few bug fixes # 90309-1831 - Added admin_log logging # 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. -$version = '2.0.5-29'; -$build = '90310-2128'; +$version = '2.2.0-33'; +$build = '91112-0616'; require("dbconnect.php"); @@ -39,50 +43,52 @@ require("dbconnect.php"); #mysql_select_db("asterisk"); #$WeBServeRRooT = '/home/www/htdocs'; +$US='_'; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $leadfile=$_FILES["leadfile"]; $LF_orig = $_FILES['leadfile']['name']; $LF_path = $_FILES['leadfile']['tmp_name']; -if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} - elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} - elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} - elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} -if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} - elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} - elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} -if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} - elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} -if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} - elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} - elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} -if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} - elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} -if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} - elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} -if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} - elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} - elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} - elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} - elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} -if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} @@ -91,21 +97,25 @@ if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"]; if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} - elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} -if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} - elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} -if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} - elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} -if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} - elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} - elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} -if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} - elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} $list_id_override = (preg_replace("/\D/","",$list_id_override)); if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} @@ -137,11 +147,16 @@ while ($i < $qm_conf_ct) ########################################### if ($non_latin < 1) -{ -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$list_id_override = ereg_replace("[^0-9]","",$list_id_override); -} + { + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + $list_id_override = ereg_replace("[^0-9]","",$list_id_override); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } $STARTtime = date("U"); $TODAY = date("Y-m-d"); @@ -317,11 +332,11 @@ function ParseFileName() { } } </script> -<title>ΔΙΑΧΕΙΡΙΣΗ: Lead Loader +ADMINISTRATION: Lead Loader -
"; ?> - method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> - - + method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + - + - + - + - + @@ -357,6 +372,8 @@ echo "
Εισαγωγή οδηγών από αυτό το αρχείο:
ID Λίστας Override: (μόνο αριθμοί or leave blank for values in the file) (μόνο αριθμοί or leave blank for values in the file)
Μήκη Override: (μόνο αριθμοί or leave blank for values in the file) (μόνο αριθμοί or leave blank for values in the file)
Μορφή αρχείων για χρήση:Τυποποιημένο VICIDIAL    Εμφάνιση συνήθειαςStandard Format    Εμφάνιση συνήθειας
Διπλός έλεγχος μολύβδου:
@@ -366,11 +383,11 @@ echo "
"; + +
- +
";
        
        ΠΙΣΩ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗLIST LOADER-     ΕΚΔΟΣΗ:     ΔΗΜΙΟΥΡΓΙΑ:    
        ΠΙΣΩ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗLIST LOADER-     ΕΚΔΟΣΗ:     ΔΗΜΙΟΥΡΓΙΑ:    
- + -document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; @@ -446,6 +463,8 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; if (strlen($list_id_override)>0) { @@ -542,18 +561,61 @@ echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -561,7 +623,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -579,7 +641,7 @@ echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -603,13 +665,15 @@ echo "
"; { print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

\n"; } - # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; $dupcheckCLI=''; $postalgmtCLI=''; if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} - passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } else { # copy($leadfile, "./vicidial_temp_file.csv"); $file=fopen("$lead_file", "r"); @@ -662,6 +726,10 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} if (strlen($list_id_override)>0) { @@ -756,19 +824,62 @@ echo "\n"; echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -776,7 +887,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -793,7 +904,7 @@ echo "\r\n"; print " \r\n"; - $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1", $link); + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1", $link); if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) @@ -1349,6 +1551,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } @@ -1425,7 +1629,7 @@ if ($leadfile) { -4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1461,7 +1665,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1476,7 +1680,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1491,7 +1695,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1507,7 +1711,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) diff --git a/LANG_www/vicidial_el/non_agent_api.php b/LANG_www/vicidial_el/non_agent_api.php index 2d525f39..b64ab4c0 100644 --- a/LANG_www/vicidial_el/non_agent_api.php +++ b/LANG_www/vicidial_el/non_agent_api.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -19,10 +19,21 @@ # 80909-2012 - Added support for campaign-specific DNC lists # 80910-0020 - Added support for multi-alt-phones, added version function # 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function # -$version = '2.0.5-5'; -$build = '90118-1056'; +$version = '2.2.0-16'; +$build = '91216-0331'; require("dbconnect.php"); @@ -99,7 +110,24 @@ if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phon elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} if (isset($_GET["source"])) {$source=$_GET["source"];} elseif (isset($_POST["source"])) {$source=$_POST["source"];} - +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -109,20 +137,18 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) { + $DB=ereg_replace("[^0-9]","",$DB); $user=ereg_replace("[^0-9a-zA-Z]","",$user); $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); @@ -174,6 +200,19 @@ if ($non_latin < 1) $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); } if (strlen($list_id)<1) {$list_id='999';} @@ -181,6 +220,7 @@ if (strlen($phone_code)<1) {$phone_code='1';} $USarea = substr($phone_number, 0, 3); if (strlen($hopper_priority)<1) {$hopper_priority=0;} if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} $StarTtime = date("U"); $NOW_DATE = date("Y-m-d"); @@ -249,6 +289,847 @@ if ($function == 'version') api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); exit; } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -892,6 +1003,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -986,19 +1099,62 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} - $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1006,7 +1162,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1024,7 +1180,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1054,6 +1210,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); @@ -1118,6 +1276,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -1212,19 +1372,61 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1232,7 +1434,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1249,7 +1451,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1269,7 +1471,7 @@ if ($leadfile) { print " Αρχεία δεδομένων
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + @@ -269,8 +1150,7 @@ if ($function == 'add_lead') } else { - $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $modify_leads=$row[0]; @@ -297,10 +1177,19 @@ if ($function == 'add_lead') } else { - if ($dnc_check == 'Y') + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -315,10 +1204,18 @@ if ($function == 'add_lead') exit; } } - if ($campaign_dnc_check == 'Y') + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -333,14 +1230,196 @@ if ($function == 'add_lead') exit; } } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + ### get current gmt_offset of the phone_number $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); ### insert a new lead in the system with this phone number - $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; - if ($DB) {echo "$stmt\n";} + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $affected_rows = mysql_affected_rows($link); if ($affected_rows > 0) @@ -358,7 +1437,7 @@ if ($function == 'add_lead') $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; $map = explode('!', $multi_alt_phones); $map_count = count($map); - if ($DB) {echo "multi-al-entry: $a|$map_count|$multi_alt_phones\n";} + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} $g++; $r=0; $s=0; $inserted_alt_phones=0; while ($r < $map_count) @@ -377,7 +1456,7 @@ if ($function == 'add_lead') $ALTm_phone_number[$r] = $ncn[0]; $ALTm_phone_note[$r] = $ncn[2]; $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Zaffected_rows = mysql_affected_rows($link); $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); @@ -395,7 +1474,6 @@ if ($function == 'add_lead') $dialable=1; $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; - if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $local_call_time=$row[0]; @@ -420,7 +1498,7 @@ if ($function == 'add_lead') ### insert record into vicidial_hopper for alt_phone call attempt $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Haffected_rows = mysql_affected_rows($link); if ($Haffected_rows > 0) @@ -457,6 +1535,9 @@ if ($function == 'add_lead') exit; } } +################################################################################ +### END add_lead +################################################################################ @@ -474,13 +1555,13 @@ api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$resul if ($format=='debug') -{ -$ENDtime = date("U"); -$RUNtime = ($ENDtime - $StarTtime); -echo "\n"; -echo "\n\n\n"; -} - + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + exit; @@ -502,7 +1583,7 @@ if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -523,7 +1604,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -538,7 +1619,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -553,7 +1634,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -569,7 +1650,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1118,134 +2199,134 @@ return $gmt_offset; ##### DETERMINE IF LEAD IS DIALABLE ##### function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) -{ -$dialable=0; + { + $dialable=0; -$pzone=3600 * $gmt_offset; -$pmin=(gmdate("i", time() + $pzone)); -$phour=( (gmdate("G", time() + $pzone)) * 100); -$pday=gmdate("w", time() + $pzone); -$tz = sprintf("%.2f", $p); -$GMT_gmt = "$tz"; -$GMT_day = "$pday"; -$GMT_hour = ($phour + $pmin); + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); -$stmt="SELECT * FROM vicidial_call_times where call_time_id='$local_call_time';"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); -$rowx=mysql_fetch_row($rslt); -$Gct_default_start = "$rowx[3]"; -$Gct_default_stop = "$rowx[4]"; -$Gct_sunday_start = "$rowx[5]"; -$Gct_sunday_stop = "$rowx[6]"; -$Gct_monday_start = "$rowx[7]"; -$Gct_monday_stop = "$rowx[8]"; -$Gct_tuesday_start = "$rowx[9]"; -$Gct_tuesday_stop = "$rowx[10]"; -$Gct_wednesday_start = "$rowx[11]"; -$Gct_wednesday_stop = "$rowx[12]"; -$Gct_thursday_start = "$rowx[13]"; -$Gct_thursday_stop = "$rowx[14]"; -$Gct_friday_start = "$rowx[15]"; -$Gct_friday_stop = "$rowx[16]"; -$Gct_saturday_start = "$rowx[17]"; -$Gct_saturday_stop = "$rowx[18]"; -$Gct_state_call_times = "$rowx[19]"; + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; -if ($GMT_day==0) #### Sunday local time - { - if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + if ($GMT_day==0) #### Sunday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==1) #### Monday local time { - if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) - {$dialable=1;} + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==1) #### Monday local time - { - if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + if ($GMT_day==2) #### Tuesday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==3) #### Wednesday local time { - if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) - {$dialable=1;} + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==2) #### Tuesday local time - { - if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + if ($GMT_day==4) #### Thursday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==5) #### Friday local time { - if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) - {$dialable=1;} + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==3) #### Wednesday local time - { - if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + if ($GMT_day==6) #### Saturday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } } - else - { - if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==4) #### Thursday local time - { - if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==5) #### Friday local time - { - if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==6) #### Saturday local time - { - if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) - {$dialable=1;} - } - } -return $dialable; -} + return $dialable; + } /* $ct_states = ''; @@ -1261,7 +2342,7 @@ return $dialable; { if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) { - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $Gstate_call_time_id = "$row[0]"; @@ -1405,15 +2486,15 @@ return $dialable; ##### Logging ##### function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) -{ -if ($api_logging > 0) { - $NOW_TIME = date("Y-m-d H:i:s"); -# api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); - $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; - $rslt=mysql_query($stmt, $link); + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; } -return 1; -} ?> diff --git a/LANG_www/vicidial_el/remote_dispo.php b/LANG_www/vicidial_el/remote_dispo.php index e0e1749d..9594124e 100644 --- a/LANG_www/vicidial_el/remote_dispo.php +++ b/LANG_www/vicidial_el/remote_dispo.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # this is the remote agent disposition screen for calls sent to remote agents. # This allows the remote agent to modify customer information and disposition @@ -10,6 +10,7 @@ # CHANGES # # 60619-1626 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags # @@ -160,14 +161,14 @@ $browser = getenv("HTTP_USER_AGENT"); Απομακρυσμένο: Τερματισμός Κλήσης -\n"; ?>
-"; @@ -202,7 +203,7 @@ else if ($lead_count > 0) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); @@ -265,7 +266,7 @@ else echo "
Σχόλια :
Τερματισμός: +
Ώρα ρολόι Εγγραφή Επεξεργασία for  
-
Ώρα ρολόι Εγγραφή Επεξεργασία for  
  \n"; @@ -436,7 +439,7 @@ if ($modify_timeclock_log > 0) } -echo "VICIDIAL Ώρα Φύλλο\n"; +echo "Agent Ώρα Φύλλο\n"; echo " - Στατιστικά Χρήστη\n"; echo " - Τροποποίηση Χρήστη\n"; @@ -468,7 +471,7 @@ echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; - LICENSE: AGPLv2 @@ -9,6 +9,7 @@ # 80617-1416 - Fixed totals tally bug # 80707-0754 - Fixed groups bug, changed formatting # 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -41,7 +42,7 @@ if (strlen($order)<2) {$order='hours_down';} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -49,8 +50,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -134,9 +136,9 @@ while ($i < $user_groups_to_print) -VICIDIAL: ΧρήστηςΏρα ρολόι Report +<TITLE>ΧρήστηςΏρα ρολόι Report -<? +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -240,7 +242,7 @@ echo "</FORM>\n\n"; echo "<PRE><FONT SIZE=3>\n"; -echo "VICIDIAL: ΧρήστηςΏρα ρολόι Report $NOW_TIME\n"; +echo "ΧρήστηςΏρα ρολόι Report $NOW_TIME\n"; echo "Time range: $query_date to $end_date\n\n"; echo "---------- USER TIMECLOCK DETAILS -------------\n"; diff --git a/LANG_www/vicidial_el/timeclock_status.php b/LANG_www/vicidial_el/timeclock_status.php index b6499441..9dec411e 100644 --- a/LANG_www/vicidial_el/timeclock_status.php +++ b/LANG_www/vicidial_el/timeclock_status.php @@ -1,4 +1,4 @@ -<? +<?php # timeclock_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 80602-0201 - First Build # 80603-1500 - formatting changes # 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -35,7 +36,7 @@ if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET[" ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -43,9 +44,11 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $timeclock_end_of_day = $row[2]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $i++; } ##### END SETTINGS LOOKUP ##### @@ -141,8 +144,8 @@ if (strlen($user_group) > 0) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ΔΙΑΧΕΙΡΙΣΗ:Ώρα ρολόι Status -<? +<title>ADMINISTRATION:Ώρα ρολόι Status +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -169,8 +172,8 @@ require("admin_header.php"); ?> <CENTER> <TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> -<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Ώρα ρολόι Status for <? echo $user_group ?></TD><TD ALIGN=RIGHT>             -<? +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Ώρα ρολόι Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>ΟΜΑΔΑ ΧΡΗΣΤΩΝ</a>\n"; ?> @@ -179,7 +182,7 @@ echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARI -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -352,6 +355,7 @@ while ($users_to_print > $o) {$bgcolor[$o]='bgcolor="#66CC66"';} # green } + $s++; echo "<tr $bgcolor[$o]>"; echo "<td><font size=1>$s</td>"; echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; @@ -365,8 +369,6 @@ while ($users_to_print > $o) if (strlen($Tstatus[$o])>0) {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} - - $s++; } $o++; } @@ -410,7 +412,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδ </body> </html> -<? +<?php exit; @@ -534,7 +536,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδ </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_el/user_group_bulk_change.php b/LANG_www/vicidial_el/user_group_bulk_change.php index 95757402..77201ece 100644 --- a/LANG_www/vicidial_el/user_group_bulk_change.php +++ b/LANG_www/vicidial_el/user_group_bulk_change.php @@ -1,4 +1,4 @@ -<? +<?php # user_group_bulk_change.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # 81119-0918 - First build # 90309-1830 - Added admin_log logging # 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -31,7 +32,7 @@ if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET[" ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -39,8 +40,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -102,7 +104,7 @@ $browser = getenv("HTTP_USER_AGENT"); } } -$stmt="select * from vicidial_user_groups order by user_group desc;"; +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -121,8 +123,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ΔΙΑΧΕΙΡΙΣΗ: Ομάδα Χρήστη Μαζική Αλλαγή -<? +<title>ADMINISTRATION: Ομάδα Χρήστη Μαζική Αλλαγή +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -155,7 +157,7 @@ require("admin_header.php"); -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -259,7 +261,7 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_el/user_stats.php b/LANG_www/vicidial_el/user_stats.php index cb8c5d69..0d0e7701 100644 --- a/LANG_www/vicidial_el/user_stats.php +++ b/LANG_www/vicidial_el/user_stats.php @@ -1,4 +1,4 @@ -<? +<?php # user_stats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -17,11 +17,31 @@ # 90208-0504 - Added link to multi-day report and fixed call status summary section # 90305-1226 - Added user_call_log manual dial logs # 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -50,32 +70,33 @@ $TODAY = date("Y-m-d"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { if($auth>0) { - $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname=$row[0]; + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); fclose($fp); @@ -92,7 +113,6 @@ $browser = getenv("HTTP_USER_AGENT"); $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $full_name = $row[0]; - } @@ -102,8 +122,8 @@ $browser = getenv("HTTP_USER_AGENT"); <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ΔΙΑΧΕΙΡΙΣΗ: Στατιστικά Χρήστη -<? +<title>ADMINISTRATION: Στατιστικά Χρήστη +<?php ##### BEGIN Set variables to make header show properly ##### @@ -129,12 +149,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Στατιστικά Χρήστη for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Στατιστικά Χρήστη for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -152,7 +172,7 @@ echo "<input type=submit name=submit value=submit>\n"; echo "           $user - $full_name<BR><BR>\n"; echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Ώρα Φύλλο</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Ώρα Φύλλο</a>\n"; echo " | <a href=\"./user_status.php?user=$user\">Κατάσταση χρήστη</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Τροποποίηση Χρήστη</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Χρήστης multiple day status detail report</a>"; @@ -166,10 +186,10 @@ echo "<br><center>\n"; ##### vicidial agent talk time and status ##### -echo "<B>VICIDIAL ΧΡΟΝΟΣ ΟΜΙΛΙΑΣ ΚΑΙ ΚΑΤΑΣΤΑΣΗ:</B>\n"; +echo "<B>ΧΕΙΡΙΣΤΗΣΧΡΟΝΟΣ ΟΜΙΛΙΑΣ ΚΑΙ ΚΑΤΑΣΤΑΣΗ:</B>\n"; echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ΚΑΤΑΣΤΑΣΗ</td><td align=right><font size=2>ΚΑΤΑΜΕΤΡΗΣΗ</td><td align=right><font size=2>ΩΡΕΣ:ΛΕΠΤΑ</td></tr>\n"; +echo "<tr><td><font size=2>ΚΑΤΑΣΤΑΣΗ</td><td align=right><font size=2>ΚΑΤΑΜΕΤΡΗΣΗ</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by status order by status"; $rslt=mysql_query($stmt, $link); @@ -225,34 +245,20 @@ while ($o < $p) else {$bgcolor='bgcolor="#9BB9FB"';} - $call_seconds = $call_sec[$o]; - $call_hours = ($call_seconds / 3600); - $call_hours_int = round($call_hours, 2); - $call_hours_int = intval("$call_hours_int"); - $call_minutes = ($call_hours - $call_hours_int); - $call_minutes = ($call_minutes * 60); - $call_minutes_int = round($call_minutes, 0); - if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} + $call_hours_minutes = sec_convert($call_sec[$o],'H'); echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; echo "<td align=right><font size=2> $counts[$o]</td>\n"; - echo "<td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; $total_calls = ($total_calls + $counts[$o]); $total_sec = ($total_sec + $call_sec[$o]); $call_seconds=0; $o++; } -$call_seconds = $total_sec; -$call_hours = ($call_seconds / 3600); -$call_hours_int = round($call_hours, 2); -$call_hours_int = intval("$call_hours_int"); -$call_minutes = ($call_hours - $call_hours_int); -$call_minutes = ($call_minutes * 60); -$call_minutes_int = round($call_minutes, 0); -if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} +$call_hours_minutes = sec_convert($total_sec,'H'); -echo "<tr><td><font size=2>ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; +echo "<tr><td><font size=2>ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -262,9 +268,9 @@ echo "<br><br>\n"; echo "<center>\n"; -echo "<B>VICIDIAL ΧΕΙΡΙΣΤΗΣ ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ:</B>\n"; +echo "<B>ΧΕΙΡΙΣΤΗΣ ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ:</B>\n"; echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ΩΡΕΣ:ΛΕΠΤΑ</td></tr>\n"; +echo "<tr><td><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group from vicidial_user_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59'"; $rslt=mysql_query($stmt, $link); @@ -294,21 +300,17 @@ echo "<tr><td><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜ { if ($event_start_seconds) { + $event_stop_seconds = $row[1]; $event_seconds = ($event_stop_seconds - $event_start_seconds); $total_login_time = ($total_login_time + $event_seconds); - $event_hours = ($event_seconds / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($event_seconds,'H'); + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $row[2]</td>\n"; echo "<td align=right><font size=2> $row[3]</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; $event_start_seconds=''; $event_stop_seconds=''; } @@ -327,19 +329,13 @@ echo "<tr><td><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜ $o++; } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); echo "<tr><td><font size=2>ΣΥΝΟΛΙΚΑ</td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int</td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -361,7 +357,7 @@ echo "<center>\n"; echo "<B>TIMECLOCK ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ:</B>\n"; echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ΩΡΕΣ:ΛΕΠΤΑ</td></tr>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; if ($DB>0) {echo "|$stmt|";} @@ -397,20 +393,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f { $login_sec = $row[3]; $total_login_time = ($total_login_time + $login_sec); - $event_hours = ($login_sec / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($login_sec,'H'); + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; echo "<td align=right><font size=2>$manager_edit</td>"; echo "<td align=right><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $TC_log_date</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int"; + echo "<td align=right><font size=2> $event_hours_minutes"; if ($DB) {echo " - $total_login_time - $login_sec";} echo "</td></tr>\n"; } @@ -422,26 +413,21 @@ if (strlen($login_sec)<1) $total_login_time = ($total_login_time + $login_sec); if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); - if ($DB) {echo " - $total_login_time - $login_sec";} +if ($DB) {echo " - $total_login_time - $login_sec";} echo "<tr><td align=right><font size=2> </td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; echo "</TABLE></center>\n"; + ##### closer in-group selection logs ##### echo "<br><br>\n"; @@ -450,29 +436,30 @@ echo "<center>\n"; echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td></tr>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; - $stmt="select * from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[2]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[3]</td>\n"; - echo "<td align=left><font size=2> $row[4] </td>\n"; - echo "</tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; } @@ -485,31 +472,31 @@ echo "<B>ΕΞΕΡΧΟΜΕΝΟ CALLS FOR THIS TIME PERIOD: (10000 record limit)</ echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[4]</td>"; - echo "<td align=left><font size=2> $row[7]</td>\n"; - echo "<td align=left><font size=2> $row[8]</td>\n"; - echo "<td align=left><font size=2> $row[10] </td>\n"; - echo "<td align=right><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[14] </td>\n"; - echo "<td align=right><font size=2> $row[2] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; - echo "<td align=right><font size=2> $row[15] </td></tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; } @@ -522,7 +509,7 @@ echo "<B>Εισερχόμενα/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -559,7 +546,7 @@ echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; - $stmt="select * from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -676,7 +663,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδ </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_el/user_status.php b/LANG_www/vicidial_el/user_status.php index 6af0dff4..adf8d4b7 100644 --- a/LANG_www/vicidial_el/user_status.php +++ b/LANG_www/vicidial_el/user_status.php @@ -1,4 +1,4 @@ -<? +<?php # user_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -10,6 +10,10 @@ # 81118-1034 - Disabled change campaign because it does not work # 90208-0511 - Added link to user multi-day status report # 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process # header ("Content-type: text/html; charset=utf-8"); @@ -38,17 +42,17 @@ if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET[" ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $i++; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -64,35 +68,34 @@ $ip = getenv("REMOTE_ADDR"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { - $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname = $row[0]; - $change_agent_campaign = $row[1]; - $modify_timeclock_log = $row[2]; + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; if ($webroot_writable > 0) { fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); @@ -116,7 +119,7 @@ $browser = getenv("HTTP_USER_AGENT"); $full_name = $row[0]; $user_group = $row[1]; - $stmt="SELECT * from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $agents_to_print = mysql_num_rows($rslt); @@ -124,13 +127,17 @@ $browser = getenv("HTTP_USER_AGENT"); while ($i < $agents_to_print) { $row=mysql_fetch_row($rslt); - $Aserver_ip = $row[2]; - $Asession_id = $row[3]; - $Aextension = $row[4]; - $Astatus = $row[5]; - $Acampaign = $row[7]; - $Alast_call = $row[14]; - $Acl_campaigns = $row[15]; + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; $i++; } @@ -149,7 +156,7 @@ $browser = getenv("HTTP_USER_AGENT"); } -$stmt="select * from vicidial_campaigns;"; +$stmt="select campaign_id from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -167,8 +174,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ΔΙΑΧΕΙΡΙΣΗ: Κατάσταση χρήστη -<? +<title>ADMINISTRATION: Κατάσταση χρήστη +<?php ##### BEGIN Set variables to make header show properly ##### @@ -194,12 +201,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=<? echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Κατάσταση χρήστη for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Κατάσταση χρήστη for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -217,10 +224,170 @@ if ($stage == "live_campaign_change") ##### EMERGENCY LOGOUT OF AN AGENT ##### if ($stage == "log_agent_out") { - $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; - echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } exit; } @@ -283,8 +450,8 @@ if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($mod $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - $status='START'; - $totTIME_HMS='0:00:00'; + $status='START'; + $totTIME_HMS='0:00:00'; $affected_rows = mysql_affected_rows($link); print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; } @@ -406,9 +573,14 @@ if ($agents_to_print > 0) echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} echo "</TABLE>\n<BR>\n"; - if ($change_agent_campaign > 0) { echo "<form action=$PHP_SELF method=POST>\n"; @@ -416,17 +588,16 @@ if ($agents_to_print > 0) echo "<input type=hidden name=user value=\"$user\">\n"; echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; echo "Current Εκστρατεία: <SELECT SIZE=1 NAME=group>\n"; - $o=0; - while ($groups_to_print > $o) + $o=0; + while ($groups_to_print > $o) { - if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} - else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} - $o++; + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; } echo "</SELECT>\n"; echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; - echo "<form action=$PHP_SELF method=POST>\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<input type=hidden name=user value=\"$user\">\n"; @@ -437,7 +608,7 @@ if ($agents_to_print > 0) else { - echo "Agent is not logged in to VICIDIAL\n<BR>"; + echo "Agent is not logged in\n<BR>"; } echo "\n<BR>"; @@ -469,7 +640,7 @@ if ($modify_timeclock_log > 0) $REPORTdate = date("Y-m-d"); echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Ώρα Φύλλο</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Ώρα Φύλλο</a>\n"; echo " | <a href=\"./user_stats.php?user=$user\">Στατιστικά Χρήστη</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Τροποποίηση Χρήστη</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Χρήστης multiple day status detail report</a>"; @@ -497,11 +668,10 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; ?> - diff --git a/LANG_www/vicidial_el/user_territories.php b/LANG_www/vicidial_el/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/LANG_www/vicidial_el/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/LANG_www/vicidial_el/vdremote.php b/LANG_www/vicidial_el/vdremote.php index c7182786..70d6f9c9 100644 --- a/LANG_www/vicidial_el/vdremote.php +++ b/LANG_www/vicidial_el/vdremote.php @@ -1,20 +1,22 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # Changes # 50307-1721 - First version # 51123-1502 - removed requirement of PHP Globals=on # 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1603 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes # -$version = '1.1.12'; -$build = '60619-1603'; +$version = '2.2.0'; +$build = '91129-2249'; require("dbconnect.php"); @@ -55,15 +57,15 @@ if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET[" if (!isset($force_logout)) {$force_logout = 0;} if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; exit; -} + } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -75,25 +77,25 @@ $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); if (!isset($query_date)) {$query_date = $NOW_DATE;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { header ("Content-type: text/html; charset=utf-8"); @@ -159,7 +161,7 @@ echo "\n"; .orange {color: black; background-color: orange} --> -ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ: $LOGfullname - $PHP_AUTH_USER "; if (!$ADD) {$ADD="31111";} @@ -201,14 +203,14 @@ if (strlen($ADD)>4) ##### get inbound groups listing for checkboxes if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; $rslt=mysql_query($stmt, $link); @@ -244,12 +246,12 @@ if (strlen($ADD)>4)
- - +
  ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ:   Αποσύνδεση  
  ΤΡΟΠΟΠΟΙΗΣΗ | ">ΚΑΤΑΣΤΑΣΗ | ">ΣΤΑΤΙΣΤΙΚΑ ΕΙΣΕΡΧΟΜΕΝΩΝ
+
  ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ:   Αποσύνδεση  
  ΤΡΟΠΟΠΟΙΗΣΗ | ">ΚΑΤΑΣΤΑΣΗ | ">ΣΤΑΤΙΣΤΙΚΑ ΕΙΣΕΡΧΟΜΕΝΩΝ
-4) ###################### if ($ADD==31111) -{ + { echo ""; - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -272,25 +274,23 @@ if ($ADD==31111) $status = $row[5]; $campaign_id = $row[6]; -echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]
\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
ID Χρήστη Ξεκινά: $user_start
Αριθμός Γραμμών: (μόνο αριθμοί)
IP Διακομιστή: $row[3]
Εξωτερική Τηλ. Σύνδεση: (number dialed to reach agents [i.e. 913125551212])
Κατάσταση:
Εκστρατεία: $campaign_id
Εισερχόμενες Ομάδες: \n"; -echo "$groups_list"; -echo "
\n"; -echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; - -} - + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρήστη Ξεκινά: $user_start
Αριθμός Γραμμών: (μόνο αριθμοί)
IP Διακομιστή: $row[3]
Εξωτερική Τηλ. Σύνδεση: (number dialed to reach agents [i.e. 913125551212])
Κατάσταση:
Εκστρατεία: $campaign_id
Εισερχόμενες Ομάδες: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; + } @@ -299,12 +299,12 @@ echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτ ###################### if ($ADD==41111) -{ + { echo ""; - if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) {echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} - else + else { $stmt="UPDATE vicidial_remote_agents set number_of_lines='" . mysql_real_escape_string($number_of_lines) . "', conf_exten='" . mysql_real_escape_string($conf_exten) . "', status='" . mysql_real_escape_string($status) . "', closer_campaigns='" . mysql_real_escape_string($groups_value) . "' where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); @@ -316,10 +316,9 @@ if ($ADD==41111) $fp = fopen ("./admin_changes_log.txt", "a"); fwrite ($fp, "$date|MODIFY ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); fclose($fp); - } - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -330,25 +329,23 @@ if ($ADD==41111) $status = $row[5]; $campaign_id = $row[6]; -echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
ID Χρήστη Ξεκινά: $user_start
Αριθμός Γραμμών: (μόνο αριθμοί)
IP Διακομιστή: $row[3]
Εξωτερική Τηλ. Σύνδεση: (number dialed to reach agents [i.e. 913125551212])
Κατάσταση:
Εκστρατεία: $campaign_id
Εισερχόμενες Ομάδες: \n"; -echo "$groups_list"; -echo "
\n"; -echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; - -} - + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρήστη Ξεκινά: $user_start
Αριθμός Γραμμών: (μόνο αριθμοί)
IP Διακομιστή: $row[3]
Εξωτερική Τηλ. Σύνδεση: (number dialed to reach agents [i.e. 913125551212])
Κατάσταση:
Εκστρατεία: $campaign_id
Εισερχόμενες Ομάδες: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; + } @@ -357,14 +354,13 @@ echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτ ###################### if ($ADD==61111) -{ + { echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ΛΑΘΟΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -375,7 +371,7 @@ if ($ADD==61111) } $users_list = preg_replace("/.$/","",$users_list); - echo "VICIDIAL: Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; @@ -385,14 +381,14 @@ if ($ADD==61111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) { $leadlink=0; $row=mysql_fetch_row($rslt); - if (eregi("READY|PAUSED",$row[4])) + if (eregi("READY|PAUSED",$row[4])) { $row[3]=''; $row[5]='- ΑΝΑΜΟΝΗ -'; @@ -409,7 +405,7 @@ if ($ADD==61111) $leadid = "$leadid"; } $channel = sprintf("%-10s", $row[3]); - $cc=0; + $cc=0; while ( (strlen($channel) > 10) and ($cc < 100) ) { $channel = eregi_replace(".$","",$channel); @@ -438,14 +434,13 @@ if ($ADD==61111) $i++; } - echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; - echo " $i Χειριστές συνδεμένοι στον διακομιστή $server_ip\n\n"; - - echo " - 5 λεπτά ή παραπάνω σε κλήση\n"; - echo " - Πάνω από 10 λεπτά σε κλήση\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i Χειριστές συνδεμένοι στον διακομιστή $server_ip\n\n"; + echo " - 5 λεπτά ή παραπάνω σε κλήση\n"; + echo " - Πάνω από 10 λεπτά σε κλήση\n"; } - else + else { echo "**************************************************************************************\n"; echo "********************************* ΚΑΝΕΝΑΣ ΧΕΙΡ. ΣΕ ΚΛΗΣΕΙΣ *********************************\n"; @@ -453,9 +448,8 @@ if ($ADD==61111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } ###################### @@ -463,7 +457,7 @@ echo "\n\n"; ###################### if ($ADD==71111) -{ + { echo "\n"; echo "\n"; echo "\n"; @@ -472,11 +466,10 @@ if ($ADD==71111) echo "\n\n"; echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ΛΑΘΟΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -492,17 +485,17 @@ if ($ADD==71111) $row=mysql_fetch_row($rslt); $in_calls = $row[0]; $in_time = $row[1]; - $in_time_M = ($in_time / 60); - $in_time_M = round($in_time_M, 2); - $in_time_M_int = intval("$in_time_M"); - $in_time_SEC = ($in_time_M - $in_time_M_int); - $in_time_SEC = ($in_time_SEC * 60); - $in_time_SEC = round($in_time_SEC, 0); - if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} - $in_time_MS = "$in_time_M_int:$in_time_SEC"; - $in_time_MS = sprintf("%7s", $in_time_MS); + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); - echo "VICIDIAL: Στατιστικά εισερχομένων απομακρυσμένου χειριστή $NOW_TIME\n\n"; + echo "Στατιστικά εισερχομένων απομακρυσμένου χειριστή $NOW_TIME\n\n"; echo "\n"; echo "Συνολικές κλήσεις που διακομίστηκαν$query_date: $in_calls\n"; echo "Συνολικός χρόνος ομιλίας σε$query_date: $in_time_MS (minutes:seconds)\n"; @@ -518,7 +511,7 @@ if ($ADD==71111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) @@ -550,14 +543,13 @@ if ($ADD==71111) $i++; } - echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; - # echo " $i Χειριστές συνδεμένοι στον διακομιστή $server_ip\n\n"; - - # echo " - 5 λεπτά ή παραπάνω σε κλήση\n"; - # echo " - Πάνω από 10 λεπτά σε κλήση\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; } - else + else { echo "**************************************************************************************\n"; echo "*********************************ΔΕΝ ΥΠΑΡΧΟΥΝ ΚΛΗΣΕΙΣ ΓΙΑ ΑΥΤΗ ΤΗΝ ΗΜΕΡΑ*******************************\n"; @@ -565,9 +557,8 @@ if ($ADD==71111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } @@ -590,7 +581,7 @@ echo "\n\n\n


\nχρόνος εκτέλεσης διαδ - - - - - diff --git a/LANG_www/vicidial_el/vicidial_sales_viewer.php b/LANG_www/vicidial_el/vicidial_sales_viewer.php index 57731cea..6d0668cf 100644 --- a/LANG_www/vicidial_el/vicidial_sales_viewer.php +++ b/LANG_www/vicidial_el/vicidial_sales_viewer.php @@ -1,4 +1,4 @@ - 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { +# Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); +# Header("HTTP/1.0 401 Unauthorized"); + echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + ?> -VICIDIAL recent sales lookup +Recent Sales Lookup - @@ -54,7 +76,7 @@ function GatherListIDs() { -
"; ?> -
+ @@ -72,9 +94,9 @@ echo "
";
- + - -
Select a VICIDIAL campaign:Select a campaign:
"; } ?> -
"; ?>
Select list ID(s) # (optional):
"; ?>
@@ -140,7 +162,7 @@ echo "
";
** - sorted by call date
- LICENSE: AGPLv2 @@ -6,7 +6,7 @@ # This page does a search against a standard vtiger CRM system. If the record # is not present, it will create a new one and send the agent's screen to that new page. # -# This code is tested against vtiger 5.0.4 +# This code is tested against vtiger 5.0.4 and 5.1.0 # # CHANGES # 60719-1615 - First version @@ -18,6 +18,8 @@ # 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD # 90111-1451 - Added logging of call as activity for account/lead # 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option # header ("Content-type: text/html; charset=utf-8"); @@ -152,7 +154,7 @@ if ($enable_vtiger_integration < 1) exit; } -$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record FROM vicidial_campaigns where campaign_id='$campaign';"; +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $vtc_conf_ct = mysql_num_rows($rslt); @@ -162,6 +164,7 @@ if ($vtc_conf_ct > 0) $vtiger_search_category = $row[0]; $vtiger_create_call_record = $row[1]; $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; } if (strlen($vtiger_search_category)<1) {$vtiger_search_category = 'LEAD';} @@ -188,15 +191,38 @@ mysql_select_db("$vtiger_dbname", $linkV); # LEAD: # $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; -$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; -if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} -if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} -if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} -if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + ########################################################################## @@ -219,78 +245,102 @@ if ($acctid_search > 0) } else { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "account found! ACCTID\n";
-		echo "accountid:   $vendor_id\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -380,79 +430,102 @@ if ($account_search > 0) } if (strlen($accountid) > 0) { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger - echo "
";
-		echo "account found! ACCOUNT\n";
-		echo "accountid:   $accountid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -675,80 +748,104 @@ if ($lead_search > 0) $row=mysql_fetch_row($rslt); $leadid = $row[0]; - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "lead found! LEAD\n";
-		echo "leadid:   $leadid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -774,7 +871,7 @@ echo "Click here to go to the Vtiger home page\n"; - LICENSE: AGPLv2 # -echo "VICIDIAL Καλωσήρθες\n"; +echo "ViciDial Καλωσήρθες\n"; echo "\n"; echo "\n"; echo "




"; diff --git a/LANG_www/vicidial_el/welcome_demo.php b/LANG_www/vicidial_el/welcome_demo.php index 65997b08..238cf5cf 100644 --- a/LANG_www/vicidial_el/welcome_demo.php +++ b/LANG_www/vicidial_el/welcome_demo.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_el/welcome_languages.php b/LANG_www/vicidial_el/welcome_languages.php index 1218c652..d53707a9 100644 --- a/LANG_www/vicidial_el/welcome_languages.php +++ b/LANG_www/vicidial_el/welcome_languages.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_es/AST_CLOSER_service_level.php b/LANG_www/vicidial_es/AST_CLOSER_service_level.php index 9fad467d..ac7d0a52 100644 --- a/LANG_www/vicidial_es/AST_CLOSER_service_level.php +++ b/LANG_www/vicidial_es/AST_CLOSER_service_level.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -10,6 +10,8 @@ # 80519-0413 - rewrote time intervals code and stats gathering code # 80528-2320 - fixed small calculation bugs and display bugs, added more shifts # 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown # require("dbconnect.php"); @@ -59,7 +61,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -74,7 +76,7 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -82,7 +84,8 @@ $i=0; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; $i++; } ?> @@ -97,13 +100,13 @@ while ($i < $groups_to_print) --> -\n"; -echo "VICIDIAL: VDAD Closer Service Level Stats\n"; +echo "Inbound Service Level Report\n"; - $short_header=1; +$short_header=1; - require("admin_header.php"); +require("admin_header.php"); echo "
"; @@ -112,11 +115,11 @@ echo "\n"; echo "\n"; echo "\n"; echo "Grupos De entrada: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -265,7 +272,7 @@ $query_date_END = "$end_date $time_END"; -echo "VICIDIAL: Estadísticas de Auto-dial en CLOSER: $group_string $NOW_TIME\n"; +echo "Inbound Call Stats: $group_string $NOW_TIME\n"; @@ -951,33 +958,9 @@ while ($i < $statuses_to_print) {$STATUSrate = ($STATUScount / ($TOTALsec / 3600) );} $STATUSrate = sprintf("%.2f", $STATUSrate); - $STATUShours_H = ($row[2] / 3600); - $STATUShours_H_int = round($STATUShours_H, 2); - $STATUShours_H_int = intval("$STATUShours_H_int"); - $STATUShours_M = ($STATUShours_H - $STATUShours_H_int); - $STATUShours_M = ($STATUShours_M * 60); - $STATUShours_M_int = round($STATUShours_M, 2); - $STATUShours_M_int = intval("$STATUShours_M_int"); - $STATUShours_S = ($STATUShours_M - $STATUShours_M_int); - $STATUShours_S = ($STATUShours_S * 60); - $STATUShours_S = round($STATUShours_S, 0); - if ($STATUShours_S < 10) {$STATUShours_S = "0$STATUShours_S";} - if ($STATUShours_M_int < 10) {$STATUShours_M_int = "0$STATUShours_M_int";} - $STATUShours = "$STATUShours_H_int:$STATUShours_M_int:$STATUShours_S"; - - $STATUSavg_H = (($row[2] / 3600) / $STATUScount); - $STATUSavg_H_int = round($STATUSavg_H, 2); - $STATUSavg_H_int = intval("$STATUSavg_H_int"); - $STATUSavg_M = ($STATUSavg_H - $STATUSavg_H_int); - $STATUSavg_M = ($STATUSavg_M * 60); - $STATUSavg_M_int = round($STATUSavg_M, 2); - $STATUSavg_M_int = intval("$STATUSavg_M_int"); - $STATUSavg_S = ($STATUSavg_M - $STATUSavg_M_int); - $STATUSavg_S = ($STATUSavg_S * 60); - $STATUSavg_S = round($STATUSavg_S, 0); - if ($STATUSavg_S < 10) {$STATUSavg_S = "0$STATUSavg_S";} - if ($STATUSavg_M_int < 10) {$STATUSavg_M_int = "0$STATUSavg_M_int";} - $STATUSavg = "$STATUSavg_H_int:$STATUSavg_M_int:$STATUSavg_S"; + $STATUShours = sec_convert($row[2],'H'); + $STATUSavg_sec = ($row[2] / $STATUScount); + $STATUSavg = sec_convert($STATUSavg_sec,'H'); $STATUScount = sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);} $status = sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);} @@ -1020,33 +1003,9 @@ else {$TOTALrate = ($TOTALcalls / ($TOTALsec / 3600) );} $TOTALrate = sprintf("%.2f", $TOTALrate); - $TOTALhours_H = ($TOTALsec / 3600); - $TOTALhours_H_int = round($TOTALhours_H, 2); - $TOTALhours_H_int = intval("$TOTALhours_H_int"); - $TOTALhours_M = ($TOTALhours_H - $TOTALhours_H_int); - $TOTALhours_M = ($TOTALhours_M * 60); - $TOTALhours_M_int = round($TOTALhours_M, 2); - $TOTALhours_M_int = intval("$TOTALhours_M_int"); - $TOTALhours_S = ($TOTALhours_M - $TOTALhours_M_int); - $TOTALhours_S = ($TOTALhours_S * 60); - $TOTALhours_S = round($TOTALhours_S, 0); - if ($TOTALhours_S < 10) {$TOTALhours_S = "0$TOTALhours_S";} - if ($TOTALhours_M_int < 10) {$TOTALhours_M_int = "0$TOTALhours_M_int";} - $TOTALhours = "$TOTALhours_H_int:$TOTALhours_M_int:$TOTALhours_S"; - - $TOTALavg_H = (($TOTALsec / 3600) / $TOTALcalls); - $TOTALavg_H_int = round($TOTALavg_H, 2); - $TOTALavg_H_int = intval("$TOTALavg_H_int"); - $TOTALavg_M = ($TOTALavg_H - $TOTALavg_H_int); - $TOTALavg_M = ($TOTALavg_M * 60); - $TOTALavg_M_int = round($TOTALavg_M, 2); - $TOTALavg_M_int = intval("$TOTALavg_M_int"); - $TOTALavg_S = ($TOTALavg_M - $TOTALavg_M_int); - $TOTALavg_S = ($TOTALavg_S * 60); - $TOTALavg_S = round($TOTALavg_S, 0); - if ($TOTALavg_S < 10) {$TOTALavg_S = "0$TOTALavg_S";} - if ($TOTALavg_M_int < 10) {$TOTALavg_M_int = "0$TOTALavg_M_int";} - $TOTALavg = "$TOTALavg_H_int:$TOTALavg_M_int:$TOTALavg_S"; + $TOTALhours = sec_convert($TOTALsec,'H'); + $TOTALavg_sec = ($TOTALsec / $TOTALcalls); + $TOTALavg = sec_convert($TOTALavg_sec,'H'); } $TOTALcalls = sprintf("%10s", $TOTALcalls); $TOTALhours = sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);} @@ -1091,6 +1050,67 @@ echo "| TOTAL | $TOTCATcalls |\n"; echo "+----------------------+------------+\n"; +############################## +######### CALL INITIAL QUEUE POSITION BREAKDOWN + +$TOTALcalls = 0; + +echo "\n"; +echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; +echo "| 1 2 3 4 5 6 7 8 9 10 15 20 25 +25 | TOTAL |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + +$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) group by queue_position;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$positions_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $positions_to_print) + { + $row=mysql_fetch_row($rslt); + + $TOTALcalls = ($TOTALcalls + $row[0]); + + if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);} + if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);} + if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);} + if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);} + if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);} + if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);} + if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);} + if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);} + if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);} + if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);} + if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);} + if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);} + if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);} + if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);} + $i++; + } + +$qp_1 = sprintf("%5s", $qp_1); +$qp_2 = sprintf("%5s", $qp_2); +$qp_3= sprintf("%5s", $qp_3); +$qp_4 = sprintf("%5s", $qp_4); +$qp_5 = sprintf("%5s", $qp_5); +$qp_6 = sprintf("%5s", $qp_6); +$qp_7 = sprintf("%5s", $qp_7); +$qp_8 = sprintf("%5s", $qp_8); +$qp_9 = sprintf("%5s", $qp_9); +$qp10 = sprintf("%5s", $qp10); +$qp15 = sprintf("%5s", $qp15); +$qp20 = sprintf("%5s", $qp20); +$qp25 = sprintf("%5s", $qp25); +$qp99 = sprintf("%5s", $qp99); + +$TOTALcalls = sprintf("%10s", $TOTALcalls); + +echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + + + ############################## ######### USER STATS @@ -1101,9 +1121,9 @@ $TOTavg=0; echo "\n"; echo "---------- AGENTE STATS\n"; -echo "+--------------------------+------------+----------+--------+\n"; -echo "| AGENTE | CALLS | TIME M | AVRG M |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| AGENTE | CALLS | TIME H:M:S |AVERAGE |\n"; +echo "+--------------------------+------------+------------+--------+\n"; $stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;"; $rslt=mysql_query($stmt, $link); @@ -1118,34 +1138,25 @@ while ($i < $users_to_print) $TOTtime = ($TOTtime + $row[3]); $user = sprintf("%-6s", $row[0]); - $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + if ($non_latin < 1) + { + $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + } + else + { + $full_name = sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');} + } $USERcalls = sprintf("%10s", $row[2]); $USERtotTALK = $row[3]; $USERavgTALK = $row[4]; - $USERtotTALK_M = ($USERtotTALK / 60); - $USERtotTALK_M_int = round($USERtotTALK_M, 2); - $USERtotTALK_M_int = intval("$USERtotTALK_M_int"); - $USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int); - $USERtotTALK_S = ($USERtotTALK_S * 60); - $USERtotTALK_S = round($USERtotTALK_S, 0); - if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";} - $USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S"; - $USERtotTALK_MS = eregi_replace('-','',$USERtotTALK_MS); - $USERtotTALK_MS = sprintf("%8s", $USERtotTALK_MS); + $USERtotTALK_MS = sec_convert($USERtotTALK,'H'); + $USERavgTALK_MS = sec_convert($USERavgTALK,'H'); - $USERavgTALK_M = ($USERavgTALK / 60); - $USERavgTALK_M_int = round($USERavgTALK_M, 2); - $USERavgTALK_M_int = intval("$USERavgTALK_M_int"); - $USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int); - $USERavgTALK_S = ($USERavgTALK_S * 60); - $USERavgTALK_S = round($USERavgTALK_S, 0); - if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";} - $USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S"; - $USERavgTALK_MS = eregi_replace('-','',$USERavgTALK_MS); - $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); + $USERtotTALK_MS = sprintf("%9s", $USERtotTALK_MS); + $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); - echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; + echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; $i++; } @@ -1154,36 +1165,21 @@ if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;} else { $TOTavg = ($TOTtime / $TOTcalls); - $TOTavg = round($TOTavg, 0); - $TOTavg_M = ($TOTavg / 60); - $TOTavg_M_int = round($TOTavg_M, 2); - $TOTavg_M_int = intval("$TOTavg_M_int"); - $TOTavg_S = ($TOTavg_M - $TOTavg_M_int); - $TOTavg_S = ($TOTavg_S * 60); - $TOTavg_S = round($TOTavg_S, 0); - if ($TOTavg_S < 10) {$TOTavg_S = "0$TOTavg_S";} - $TOTavg_MS = "$TOTavg_M_int:$TOTavg_S"; + $TOTavg_MS = sec_convert($TOTavg,'H'); $TOTavg = sprintf("%6s", $TOTavg_MS); } -$TOTtime_M = ($TOTtime / 60); -$TOTtime_M_int = round($TOTtime_M, 2); -$TOTtime_M_int = intval("$TOTtime_M_int"); -$TOTtime_S = ($TOTtime_M - $TOTtime_M_int); -$TOTtime_S = ($TOTtime_S * 60); -$TOTtime_S = round($TOTtime_S, 0); -if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";} -$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S"; -$TOTtime = sprintf("%6s", $TOTtime_MS); +$TOTtime_MS = sec_convert($TOTtime,'H'); +$TOTtime = sprintf("%10s", $TOTtime_MS); $TOTagents = sprintf("%10s", $i); $TOTcalls = sprintf("%10s", $TOTcalls); $TOTtime = sprintf("%8s", $TOTtime); $TOTavg = sprintf("%6s", $TOTavg); -echo "+--------------------------+------------+----------+--------+\n"; -echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| TOTAL Agentes: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; +echo "+--------------------------+------------+------------+--------+\n"; ############################## diff --git a/LANG_www/vicidial_es/AST_CLOSERsummary_hourly.php b/LANG_www/vicidial_es/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/LANG_www/vicidial_es/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_es/AST_IVRfilter.php b/LANG_www/vicidial_es/AST_IVRfilter.php index 86d73dfc..b0dcc07d 100644 --- a/LANG_www/vicidial_es/AST_IVRfilter.php +++ b/LANG_www/vicidial_es/AST_IVRfilter.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # # 81030-0432 - First build # 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -81,7 +82,7 @@ $i=0; --> -\n"; echo "VICIDIAL: VDL IVR Filter Stats\n"; diff --git a/LANG_www/vicidial_es/AST_IVRstats.php b/LANG_www/vicidial_es/AST_IVRstats.php index 8c6d21ee..3dd35881 100644 --- a/LANG_www/vicidial_es/AST_IVRstats.php +++ b/LANG_www/vicidial_es/AST_IVRstats.php @@ -1,15 +1,16 @@ - LICENSE: AGPLv2 # # CHANGES -# # 81026-2026 - First build # 81107-0341 - Added time range and option and 15-minute increment graph # 81107-1148 - Added average times and totals # 81108-0922 - Added no-callerID and unique caller counts # 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list # require("dbconnect.php"); @@ -61,7 +62,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -76,18 +77,23 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; - $LISTgroups[$i]='---NONE---'; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; $i++; $groups_to_print++; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $LISTgroups[$i] =$row[0]; + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; $i++; } @@ -139,7 +145,7 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: IVR Stats\n"; +echo "IVR Stats Report\n"; $short_header=1; @@ -203,14 +209,14 @@ echo "
\n"; echo "Grupos De entrada: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -248,434 +254,427 @@ echo "
\n\n";
 
 
 if ($groups_to_print < 1)
-{
-echo "\n\n";
-echo "POR FAVOR SELECCIONE UN GRUPO EN EL PÁRRAFO ANTERIOR Y FECHA DE RANGO y haga clic en Enviar\n";
-}
+	{
+	echo "\n\n";
+	echo "POR FAVOR SELECCIONE UN GRUPO EN EL PÁRRAFO ANTERIOR Y FECHA DE RANGO y haga clic en Enviar\n";
+	}
 
 else
-{
-
-
-echo "VICIDIAL: IVR Stats: $group_string          $NOW_TIME\n";
-
-
-
-
-
-
-$TOTALcalls=0;
-$NOCALLERIDcalls=0;
-$UNIQUEcallers=0;
-$totFLOWivr_time=0;
-$totFLOWtotal_time=0;
-
-##### Grab all records for the IVR for the specified time period
-$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$logs_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $logs_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-	$uniqueid[$p] =		$row[0];
-	$extension[$p] =	$row[1];
-	$start_time[$p] =	$row[2];
-	$comment_a[$p] =	$row[3];
-	$comment_b[$p] =	$row[4];
-	$comment_d[$p] =	$row[5];
-	$epoch[$p] =		$row[6];
-	$phone_ext[$p] =	$row[7];
-	$p++;
-	}
-
-### create the call flow of all calls by uniqueid
-$last_uniqueid='';
-$first_epoch='';
-$last_epoch='';
-$p=0;
-$r=-1;
-while ($p < $logs_to_print)
-	{
-	if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
-	if ($last_uniqueid === "$uniqueid[$p]")
-		{
-		$unique_calls[$r] .= "----------$comment_b[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		$last_epoch[$r]=$epoch[$p];
-		}
-	else
-		{
-		$r++;
-		$caller_id[$r]=$phone_ext[$p];
-		if (strlen($phone_ext[$p])<2)
-			{$NOCALLERIDcalls++;}
-		else
-			{
-			if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
-				{
-				$unique_callerIDs .= "_$phone_ext[$p]_";
-				$UNIQUEcallers++;
-				}
-			}
-		$first_epoch[$r]=$epoch[$p];
-		$last_epoch[$r]=$epoch[$p];
-		$unique_calls[$r] = $comment_b[$p];
-		$FLOWuniqueid[$r] = "$uniqueid[$p]";
-		$last_uniqueid = "$uniqueid[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		}
-	$p++;
-	}
-
-### sort call flows for counting
-$RAWunique_calls = $unique_calls;
-if ($logs_to_print > 0)
-	{sort($unique_calls);}
-
-
-### count each unique call flow
-$last_Suniqueid='';
-$p=-1;
-$s=0;
-while ($s <= $r)
-	{
-	if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
-	if ($last_Suniqueid === "$unique_calls[$s]")
-		{
-		$STunique_calls_count[$p]++;
-		}
-	else
-		{
-		$p++;
-		$STunique_calls[$p] = $unique_calls[$s];
-		$last_Suniqueid = "$unique_calls[$s]";
-		$STunique_calls_count[$p]=1;
-		}
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$TOTALcalls=0;
-$s=0;
-while ($s <= $p)
-	{
-	$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
-	$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
-	$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
-	$s++;
-	}
-
-#### PRINT TOTAL CALLS INTO THIS IVR
-echo "\n";
-echo "Calls taken into this IVR:   $TOTALcalls\n";
-echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
-echo "Unique Callers:              $UNIQUEcallers\n";
-echo "\n";
-
-### sort call flows for counting
-if ($p > 0)
-	{rsort($FLOWunique_calls);}
-
-
-### put call flows and counts together for sorting again
-$RUC_ct = count($RAWunique_calls);
-$s=0;
-while ($s <= $p)
-	{
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$t=0;
-	while ($t < $RUC_ct)
-		{
-		if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
-			{
-			$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
-			if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
-			else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
-			$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
-			}
-		$t++;
-		}
-
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$s=0;
-
-echo "+--------+--------+--------+--------+------+------+\n";
-echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
-echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
-echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
-echo "+--------+--------+--------+--------+------+------+------------\n";
-
-while ($s <= $p)
-	{
-	$vcl_statuses = $MT;
-	$FLOWdrop[$s]=0;
-	$FLOWtotal[$s]=0;
-	$FLOWdropPCT[$s]=0;
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
 
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
 
 	##### Grab all records for the IVR for the specified time period
-	$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
 	$rslt=mysql_query($stmt, $link);
 	if ($DB) {echo "$stmt\n";}
-	$vcl_statuses_to_print = mysql_num_rows($rslt);
-	$w=0;
-	while ($w < $vcl_statuses_to_print)
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
 		{
 		$row=mysql_fetch_row($rslt);
-		$vcl_statuses[$w] =		$row[0];
-		if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
-			{$FLOWdrop[$s]++;}
-		$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
-		$FLOWtotal[$s]++;
-		$w++;
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
 		}
-	if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
 		{
-		$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
-		$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
-		}
-	$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
-	$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
-	$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
-	$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
-	$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
-	$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
-
-	$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
-	$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
-	$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
-	$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
-	$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
-	$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
-
-	$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
-	$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
-	$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
-	$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
-
-	echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
-
-	$s++;
-	}
-$TOTALcalls = sprintf("%6s", $TOTALcalls);
-$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
-$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
-if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
-$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
-$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
-if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
-$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
-$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
-if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
-	{$totFLOWdropPCT = '0';}
-else
-	{
-	$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
-	$totFLOWdropPCT = round($totFLOWdropPCT, 0);
-	}
-$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
-
-echo "+--------+--------+--------+--------+------+------+------------\n";
-echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
-echo "+--------+--------+--------+--------+------+------+\n";
-
-
-
-
-
-
-
-
-
-
-
-
-
-##############################
-#########  TIME STATS
-
-echo "\n";
-echo "---------- ESTADÍSTICAS DEL TIEMPO\n";
-
-echo "\n";
-
-$hi_hour_count=0;
-$last_full_record=0;
-$i=0;
-$h=0;
-while ($i <= 96)
-	{
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-	$h++;
-	}
-
-if ($hi_hour_count < 1)
-	{$hour_multiplier = 0;}
-else
-	{
-	$hour_multiplier = (100 / $hi_hour_count);
-	#$hour_multiplier = round($hour_multiplier, 0);
-	}
-
-echo "\n";
-echo "GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LLAMADAS TOTALES TAKEN INTO THIS IVR\n";
-
-$k=1;
-$Mk=0;
-$call_scale = '0';
-while ($k <= 102) 
-	{
-	if ($Mk >= 5) 
-		{
-		$Mk=0;
-		if ( ($k < 1) or ($hour_multiplier <= 0) )
-			{$scale_num = 100;}
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
 		else
 			{
-			$scale_num=($k / $hour_multiplier);
-			$scale_num = round($scale_num, 0);
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
 			}
-		$LENscale_num = (strlen($scale_num));
-		$k = ($k + $LENscale_num);
-		$call_scale .= "$scale_num";
+		$p++;
 		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT LLAMADAS TOTALES INTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
 	else
 		{
-		$call_scale .= " ";
-		$k++;   $Mk++;
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
 		}
-	}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
-echo "| HOUR |$call_scale| TOTAL |\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
 
-$ZZ = '00';
-$i=0;
-$h=4;
-$hour= -1;
-$no_lines_yet=1;
 
-while ($i <= 96)
-	{
-	$char_counter=0;
-	$time = '      ';
-	if ($h >= 4) 
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- ESTADÍSTICAS DEL TIEMPO\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
 		{
-		$hour++;
-		$h=0;
-		if ($hour < 10) {$hour = "0$hour";}
-		$time = "+$hour$ZZ+";
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
 		}
-	if ($h == 1) {$time = "   15 ";}
-	if ($h == 2) {$time = "   30 ";}
-	if ($h == 3) {$time = "   45 ";}
-	$Ghour_count = $hour_count[$i];
-	if ($Ghour_count < 1) 
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
 		{
-		if ( ($no_lines_yet) or ($i > $last_full_record) )
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LLAMADAS TOTALES TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
 			{
-			$do_nothing=1;
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
 			}
 		else
 			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
-			echo "|$time|";
-			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
 			echo "| $hour_count[$i] |\n";
 			}
+		
+		
+		$i++;
+		$h++;
 		}
-	else
-		{
-		$no_lines_yet=0;
-		$Xhour_count = ($Ghour_count * $hour_multiplier);
-		$Yhour_count = (99 - $Xhour_count);
 
-		$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 
-		echo "|$time|";
-		$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-		echo "*X";   $char_counter++;
-		$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-			while ($char_counter <= 101) {echo " ";   $char_counter++;}
-		echo "| $hour_count[$i] |\n";
-		}
-	
-	
-	$i++;
-	$h++;
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
 	}
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
-
-
-
-
-
-
-
-
-
-
-$ENDtime = date("U");
-$RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds\n";
-}
-
-
 
 ?>
 
diff --git a/LANG_www/vicidial_es/AST_OUTBOUNDsummary_interval.php b/LANG_www/vicidial_es/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/LANG_www/vicidial_es/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_es/AST_VDADstats.php b/LANG_www/vicidial_es/AST_VDADstats.php index 4fcbf35e..1074766b 100644 --- a/LANG_www/vicidial_es/AST_VDADstats.php +++ b/LANG_www/vicidial_es/AST_VDADstats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -17,17 +17,36 @@ # 81109-2341 - Added Productivity Rating # 90225-1140 - Changed to multi-campaign capability # 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; -if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} - elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} @@ -47,6 +66,10 @@ $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -54,16 +77,25 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} @@ -71,8 +103,7 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -87,7 +118,16 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select campaign_id from vicidial_campaigns;"; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); @@ -95,10 +135,14 @@ $i=0; while ($i < $campaigns_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} $i++; } +$rollover_groups_count=0; $i=0; $group_string='|'; $group_ct = count($group); @@ -107,15 +151,41 @@ while($i < $group_ct) $group_string .= "$group[$i]|"; $group_SQL .= "'$group[$i]',"; $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + $i++; } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) - {$group_SQL = "";} + { + $group_SQL = ""; + $group_drop_SQL = ""; + } else { $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; $group_SQLand = "and campaign_id IN($group_SQL)"; $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; } $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; @@ -131,6 +201,35 @@ while ($i < $statcats_to_print) $vsc_count[$i] = 0; $i++; } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + ?> @@ -144,9 +243,9 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: VDAD Stats\n"; +echo "Outbound Stats\n"; $short_header=1; @@ -158,6 +257,9 @@ echo "
\n"; echo "
Fechas:
"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "
to
\n"; echo "
Campañas:
"; @@ -168,13 +270,35 @@ else {echo "\n";} $o=0; while ($campaigns_to_print > $o) -{ - if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} - else {echo "\n";} + { + if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} + else {echo "\n";} $o++; -} + } echo "\n"; -echo "
Shift:
"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; echo "
- \ No newline at end of file + diff --git a/LANG_www/vicidial_es/AST_VICIDIAL_hopperlist.php b/LANG_www/vicidial_es/AST_VICIDIAL_hopperlist.php index 85273d71..9dd8bc48 100644 --- a/LANG_www/vicidial_es/AST_VICIDIAL_hopperlist.php +++ b/LANG_www/vicidial_es/AST_VICIDIAL_hopperlist.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -10,6 +10,8 @@ # 70115-1614 - Added ALT field for vicidial_hopper alt_dial column # 71029-0852 - Added list_id to the output # 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY # require("dbconnect.php"); @@ -73,19 +75,19 @@ while ($i < $campaigns_to_print) --> -\n"; -echo "VICIDIAL: Lista De Hopper\n"; +echo "Lista De Hopper Report\n"; echo "\n"; #echo "\n"; #echo "\n"; echo "\n"; echo "\n"; @@ -96,74 +98,70 @@ echo "
\n\n";
 
 
 if (!$group)
-{
-echo "\n\n";
-echo "SELECCIONE POR FAVOR Una CAMPAÚA ARRIBA Y El TECLEO SOMETE\n";
-}
-
-else
-{
-
-
-echo "VICIDIAL: Live Current Lista De Hopper                      $NOW_TIME\n";
-
-echo "\n";
-echo "---------- TOTALS\n";
-
-$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$TOTALcalls =	sprintf("%10s", $row[0]);
-
-echo "Total de Leads en el hopper ahora mismo:       $TOTALcalls\n";
-
-
-##############################
-#########  LEAD STATS
-
-echo "\n";
-echo "---------- LEADS IN HOPPER\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-echo "|ORDER |PRIORIDAD| LEAD ID   | ID DE LA LISTA    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-
-$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$users_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $users_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-
-	$FMT_i =		sprintf("%-4s", $i);
-	$lead_id =		sprintf("%-9s", $row[0]);
-	$phone_number =	sprintf("%-10s", $row[1]);
-	$state =		sprintf("%-5s", $row[2]);
-	$status =		sprintf("%-6s", $row[3]);
-	$count =		sprintf("%-5s", $row[4]);
-	$gmt =			sprintf("%-6s", $row[5]);
-	$hopper_id =	sprintf("%-6s", $row[6]);
-	$alt_dial =		sprintf("%-5s", $row[7]);
-	$list_id =		sprintf("%-10s", $row[8]);
-	$priority =		sprintf("%-6s", $row[9]);
-
-if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
-else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
-
-	$i++;
+	echo "\n\n";
+	echo "SELECCIONE POR FAVOR Una CAMPAÚA ARRIBA Y El TECLEO SOMETE\n";
 	}
 
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+else
+	{
+	echo "Live Current Lista De Hopper                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Total de Leads en el hopper ahora mismo:       $TOTALcalls\n";
 
 
-}
+	##############################
+	#########  LEAD STATS
 
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORIDAD| LEAD ID   | ID DE LA LISTA    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
 
 
 ?>
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_es/AST_agent_days_detail.php b/LANG_www/vicidial_es/AST_agent_days_detail.php index 1e3d3300..7de56a11 100644 --- a/LANG_www/vicidial_es/AST_agent_days_detail.php +++ b/LANG_www/vicidial_es/AST_agent_days_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-2202 - First build # 90225-1051 - Added CSV download option # 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags # @@ -157,10 +158,10 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Situación días\n"; + echo "Agent Situación días Report\n"; echo ""; $short_header=1; @@ -208,14 +209,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Days Detalle: $user $NOW_TIME\n"; + echo "Agent Situación días Report: $user $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- AGENTE Detalles -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Days Detalle: $user $NOW_TIME\n"; + $file_output .= "Agent Situación días Report: $user $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } diff --git a/LANG_www/vicidial_es/AST_agent_performance.php b/LANG_www/vicidial_es/AST_agent_performance.php index 7511643d..db5b2957 100644 --- a/LANG_www/vicidial_es/AST_agent_performance.php +++ b/LANG_www/vicidial_es/AST_agent_performance.php @@ -1,13 +1,14 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60619-1711 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $campaigns_to_print) --> -\n"; echo "VICIDIAL: Agent Performance\n"; echo "\n"; diff --git a/LANG_www/vicidial_es/AST_agent_performance_detail.php b/LANG_www/vicidial_es/AST_agent_performance_detail.php index f10e0cc5..6c7ab5c3 100644 --- a/LANG_www/vicidial_es/AST_agent_performance_detail.php +++ b/LANG_www/vicidial_es/AST_agent_performance_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -16,9 +16,14 @@ # 81108-0716 - fixed user same-name bug # 81110-0056 - fixed pause code display bug # 90310-2039 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90523-0935 - Rewrite of seconds to minutes and hours conversion +# 90717-1500 - Changed to be multi-campaign, multi-user-group select +# 90908-1058 - Added DEAD time statistics # require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -111,6 +116,44 @@ while ($i < $user_groups_to_print) $user_groups[$i] =$row[0]; $i++; } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} ?> @@ -124,9 +167,9 @@ while ($i < $user_groups_to_print) --> -\n"; -echo "VICIDIAL: Agent Performance\n"; +echo "Agent Performance Detalle\n"; $short_header=1; @@ -135,39 +178,58 @@ echo "VICIDIAL: Agent Performance
"; echo "\n"; +echo "
Fechas:
"; echo "\n"; echo "\n"; -echo " to \n"; -echo "\n"; +echo "
Campañas:
"; +echo "\n"; +echo "
Grupos De Usuario:
"; +echo "\n"; -echo "\n"; +echo "
Shift:
"; echo "\n"; +echo "

\n"; echo "\n"; -echo "           MODIFICAR | INFORMES \n"; +echo "
        "; + +echo "          \n"; +echo " INFORMES \n"; +echo "\n"; +echo "
"; + echo "\n\n"; + echo "
\n";
 
 
@@ -205,7 +267,7 @@ $query_date_END = "$end_date $time_END";
 if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
 else {$ugSQL='';}
 
-echo "VICIDIAL: Agent Performance Detalle                        $NOW_TIME\n";
+echo "Agent Performance Detalle                        $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENTS Detalles -------------\n\n";
@@ -225,7 +287,7 @@ $usersARY[0]='';
 $user_namesARY[0]='';
 $k=0;
 
-$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000 $ugSQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $rows_to_print = mysql_num_rows($rslt);
@@ -243,6 +305,7 @@ while ($i < $rows_to_print)
 	$wait_sec[$i] =		$row[5];
 	$dispo_sec[$i] =	$row[6];
 	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
 	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
 		{
 		$statusesTXT = sprintf("%8s", $status[$i]);
@@ -264,9 +327,9 @@ while ($i < $rows_to_print)
 	}
 
 echo "CALL STATS BREAKDOWN:\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "| USER NAME       | ID       | CALLS  | TIME    | PAUSE  | PAUSAVG| WAIT   | WAITAVG| TALK   | TALKAVG| DISPO  | DISPAVG|$statusesHTML\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -281,6 +344,7 @@ while ($m < $k)
 	$Spause_sec=0;
 	$Swait_sec=0;
 	$Sdispo_sec=0;
+	$Sdead_sec=0;
 	$SstatusesHTML='';
 
 	### BEGIN loop through each status ###
@@ -300,6 +364,7 @@ while ($m < $k)
 				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
 				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
 				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
 				$SstatusTXT = sprintf("%8s", $calls[$i]);
 				$SstatusesHTML .= " $SstatusTXT |";
 				$status_found++;
@@ -321,6 +386,7 @@ while ($m < $k)
 	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
 	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
 	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
 	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
 	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
 		else {$Stalk_avg=0;}
@@ -330,6 +396,8 @@ while ($m < $k)
 		else {$Swait_avg=0;}
 	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
 		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
 
 	$RAWuser = $Suser;
 	$RAWcalls = $Scalls;
@@ -337,112 +405,45 @@ while ($m < $k)
 
 	if ($non_latin < 1)
 		{
-		 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
-			while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
-		 $Suser =		sprintf("%-8s", $Suser);
-			while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
 		}
 	else
 		{	
-			$Sfull_name=	sprintf("%-45s", $Sfull_name); 
-		 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
-			$Suser =	sprintf("%-24s", $Suser);
-		 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
 
-	$USERtime_M = ($Stime / 60);
-	$USERtime_M_int = round($USERtime_M, 2);
-	$USERtime_M_int = intval("$USERtime_M_int");
-	$USERtime_S = ($USERtime_M - $USERtime_M_int);
-	$USERtime_S = ($USERtime_S * 60);
-	$USERtime_S = round($USERtime_S, 0);
-	if ($USERtime_S < 10) {$USERtime_S = "0$USERtime_S";}
-	$USERtime_MS = "$USERtime_M_int:$USERtime_S";
-	$pfUSERtime_MS =		sprintf("%7s", $USERtime_MS);
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
 
-	$USERtotTALK_M = ($Stalk_sec / 60);
-	$USERtotTALK_M_int = round($USERtotTALK_M, 2);
-	$USERtotTALK_M_int = intval("$USERtotTALK_M_int");
-	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
-	$USERtotTALK_S = ($USERtotTALK_S * 60);
-	$USERtotTALK_S = round($USERtotTALK_S, 0);
-	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
-	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
-	$pfUSERtotTALK_MS =		sprintf("%6s", $USERtotTALK_MS);
-
-	$USERavgTALK_M = ($Stalk_avg / 60);
-	$USERavgTALK_M_int = round($USERavgTALK_M, 2);
-	$USERavgTALK_M_int = intval("$USERavgTALK_M_int");
-	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
-	$USERavgTALK_S = ($USERavgTALK_S * 60);
-	$USERavgTALK_S = round($USERavgTALK_S, 0);
-	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
-	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
-	$pfUSERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
-
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
 	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
 
-	$USERavgPAUSE_M = ($Spause_avg / 60);
-	$USERavgPAUSE_M_int = round($USERavgPAUSE_M, 2);
-	$USERavgPAUSE_M_int = intval("$USERavgPAUSE_M_int");
-	$USERavgPAUSE_S = ($USERavgPAUSE_M - $USERavgPAUSE_M_int);
-	$USERavgPAUSE_S = ($USERavgPAUSE_S * 60);
-	$USERavgPAUSE_S = round($USERavgPAUSE_S, 0);
-	if ($USERavgPAUSE_S < 10) {$USERavgPAUSE_S = "0$USERavgPAUSE_S";}
-	$USERavgPAUSE_MS = "$USERavgPAUSE_M_int:$USERavgPAUSE_S";
-	$pfUSERavgPAUSE_MS =		sprintf("%6s", $USERavgPAUSE_MS);
-
-	$USERtotWAIT_M = ($Swait_sec / 60);
-	$USERtotWAIT_M_int = round($USERtotWAIT_M, 2);
-	$USERtotWAIT_M_int = intval("$USERtotWAIT_M_int");
-	$USERtotWAIT_S = ($USERtotWAIT_M - $USERtotWAIT_M_int);
-	$USERtotWAIT_S = ($USERtotWAIT_S * 60);
-	$USERtotWAIT_S = round($USERtotWAIT_S, 0);
-	if ($USERtotWAIT_S < 10) {$USERtotWAIT_S = "0$USERtotWAIT_S";}
-	$USERtotWAIT_MS = "$USERtotWAIT_M_int:$USERtotWAIT_S";
-	$pfUSERtotWAIT_MS =		sprintf("%6s", $USERtotWAIT_MS);
-
-	$USERavgWAIT_M = ($Swait_avg / 60);
-	$USERavgWAIT_M_int = round($USERavgWAIT_M, 2);
-	$USERavgWAIT_M_int = intval("$USERavgWAIT_M_int");
-	$USERavgWAIT_S = ($USERavgWAIT_M - $USERavgWAIT_M_int);
-	$USERavgWAIT_S = ($USERavgWAIT_S * 60);
-	$USERavgWAIT_S = round($USERavgWAIT_S, 0);
-	if ($USERavgWAIT_S < 10) {$USERavgWAIT_S = "0$USERavgWAIT_S";}
-	$USERavgWAIT_MS = "$USERavgWAIT_M_int:$USERavgWAIT_S";
-	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
-	
-	$USERtotDISPO_M = ($Sdispo_sec / 60);
-	$USERtotDISPO_M_int = round($USERtotDISPO_M, 2);
-	$USERtotDISPO_M_int = intval("$USERtotDISPO_M_int");
-	$USERtotDISPO_S = ($USERtotDISPO_M - $USERtotDISPO_M_int);
-	$USERtotDISPO_S = ($USERtotDISPO_S * 60);
-	$USERtotDISPO_S = round($USERtotDISPO_S, 0);
-	if ($USERtotDISPO_S < 10) {$USERtotDISPO_S = "0$USERtotDISPO_S";}
-	$USERtotDISPO_MS = "$USERtotDISPO_M_int:$USERtotDISPO_S";
-	$pfUSERtotDISPO_MS =		sprintf("%6s", $USERtotDISPO_MS);
-
-	$USERavgDISPO_M = ($Sdispo_avg / 60);
-	$USERavgDISPO_M_int = round($USERavgDISPO_M, 2);
-	$USERavgDISPO_M_int = intval("$USERavgDISPO_M_int");
-	$USERavgDISPO_S = ($USERavgDISPO_M - $USERavgDISPO_M_int);
-	$USERavgDISPO_S = ($USERavgDISPO_S * 60);
-	$USERavgDISPO_S = round($USERavgDISPO_S, 0);
-	if ($USERavgDISPO_S < 10) {$USERavgDISPO_S = "0$USERavgDISPO_S";}
-	$USERavgDISPO_MS = "$USERavgDISPO_M_int:$USERavgDISPO_S";
-	$pfUSERavgDISPO_MS =		sprintf("%6s", $USERavgDISPO_MS);
-
-	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS |$SstatusesHTML\n";
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
 
 	$TOPsorted_output[$m] = $Toutput;
 
@@ -517,120 +518,60 @@ while ($n < $j)
 	}
 ### END loop through each status ###
 
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTcalls =	sprintf("%7s", $TOTcalls);
-	$TOT_AGENTS = sprintf("%-4s", $m);
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
 
-	$TOTtime_M = ($TOTtime / 60);
-	$TOTtime_M_int = round($TOTtime_M, 2);
-	$TOTtime_M_int = intval("$TOTtime_M_int");
-	$TOTtime_S = ($TOTtime_M - $TOTtime_M_int);
-	$TOTtime_S = ($TOTtime_S * 60);
-	$TOTtime_S = round($TOTtime_S, 0);
-	if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";}
-	$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S";
-	$TOTtime_MS =		sprintf("%8s", $TOTtime_MS);
-		while(strlen($TOTtime_MS)>8) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
 
-	$TOTtotTALK_M = ($TOTtotTALK / 60);
-	$TOTtotTALK_M_int = round($TOTtotTALK_M, 2);
-	$TOTtotTALK_M_int = intval("$TOTtotTALK_M_int");
-	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
-	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
-	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
-	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
-	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
-	$TOTtotTALK_MS =		sprintf("%8s", $TOTtotTALK_MS);
-		while(strlen($TOTtotTALK_MS)>8) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
 
-	if ($TOTtotDISPO < 1) {$TOTtotDISPO_M = '0';}
-	else {$TOTtotDISPO_M = ($TOTtotDISPO / 60);}
-	$TOTtotDISPO_M_int = round($TOTtotDISPO_M, 2);
-	$TOTtotDISPO_M_int = intval("$TOTtotDISPO_M_int");
-	$TOTtotDISPO_S = ($TOTtotDISPO_M - $TOTtotDISPO_M_int);
-	$TOTtotDISPO_S = ($TOTtotDISPO_S * 60);
-	$TOTtotDISPO_S = round($TOTtotDISPO_S, 0);
-	if ($TOTtotDISPO_S < 10) {$TOTtotDISPO_S = "0$TOTtotDISPO_S";}
-	$TOTtotDISPO_MS = "$TOTtotDISPO_M_int:$TOTtotDISPO_S";
-	$TOTtotDISPO_MS =		sprintf("%8s", $TOTtotDISPO_MS);
-		while(strlen($TOTtotDISPO_MS)>8) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTtotPAUSE_M = '0';}
-	else {$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);}
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTtotWAIT_M = '0';}
-	else {$TOTtotWAIT_M = ($TOTtotWAIT / 60);}
-	$TOTtotWAIT_M_int = round($TOTtotWAIT_M, 2);
-	$TOTtotWAIT_M_int = intval("$TOTtotWAIT_M_int");
-	$TOTtotWAIT_S = ($TOTtotWAIT_M - $TOTtotWAIT_M_int);
-	$TOTtotWAIT_S = ($TOTtotWAIT_S * 60);
-	$TOTtotWAIT_S = round($TOTtotWAIT_S, 0);
-	if ($TOTtotWAIT_S < 10) {$TOTtotWAIT_S = "0$TOTtotWAIT_S";}
-	$TOTtotWAIT_MS = "$TOTtotWAIT_M_int:$TOTtotWAIT_S";
-	$TOTtotWAIT_MS =		sprintf("%8s", $TOTtotWAIT_MS);
-		while(strlen($TOTtotWAIT_MS)>8) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
-
-	if ($TOTtotTALK < 1) {$TOTavgTALK_M = '0';}
-	else {$TOTavgTALK_M = ( ($TOTtotTALK / $TOTcalls) / 60);}
-	$TOTavgTALK_M_int = round($TOTavgTALK_M, 2);
-	$TOTavgTALK_M_int = intval("$TOTavgTALK_M_int");
-	$TOTavgTALK_S = ($TOTavgTALK_M - $TOTavgTALK_M_int);
-	$TOTavgTALK_S = ($TOTavgTALK_S * 60);
-	$TOTavgTALK_S = round($TOTavgTALK_S, 0);
-	if ($TOTavgTALK_S < 10) {$TOTavgTALK_S = "0$TOTavgTALK_S";}
-	$TOTavgTALK_MS = "$TOTavgTALK_M_int:$TOTavgTALK_S";
-	$TOTavgTALK_MS =		sprintf("%6s", $TOTavgTALK_MS);
-		while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
-
-	if ($TOTtotDISPO < 1) {$TOTavgDISPO_M = '0';}
-	else {$TOTavgDISPO_M = ( ($TOTtotDISPO / $TOTcalls) / 60);}
-	$TOTavgDISPO_M_int = round($TOTavgDISPO_M, 2);
-	$TOTavgDISPO_M_int = intval("$TOTavgDISPO_M_int");
-	$TOTavgDISPO_S = ($TOTavgDISPO_M - $TOTavgDISPO_M_int);
-	$TOTavgDISPO_S = ($TOTavgDISPO_S * 60);
-	$TOTavgDISPO_S = round($TOTavgDISPO_S, 0);
-	if ($TOTavgDISPO_S < 10) {$TOTavgDISPO_S = "0$TOTavgDISPO_S";}
-	$TOTavgDISPO_MS = "$TOTavgDISPO_M_int:$TOTavgDISPO_S";
-	$TOTavgDISPO_MS =		sprintf("%6s", $TOTavgDISPO_MS);
-		while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTavgPAUSE_M = '0';}
-	else {$TOTavgPAUSE_M = ( ($TOTtotPAUSE / $TOTcalls) / 60);}
-	$TOTavgPAUSE_M_int = round($TOTavgPAUSE_M, 2);
-	$TOTavgPAUSE_M_int = intval("$TOTavgPAUSE_M_int");
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_M - $TOTavgPAUSE_M_int);
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_S * 60);
-	$TOTavgPAUSE_S = round($TOTavgPAUSE_S, 0);
-	if ($TOTavgPAUSE_S < 10) {$TOTavgPAUSE_S = "0$TOTavgPAUSE_S";}
-	$TOTavgPAUSE_MS = "$TOTavgPAUSE_M_int:$TOTavgPAUSE_S";
-	$TOTavgPAUSE_MS =		sprintf("%6s", $TOTavgPAUSE_MS);
-		while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTavgWAIT_M = '0';}
-	else {$TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60);}
-	$TOTavgWAIT_M_int = round($TOTavgWAIT_M, 2);
-	$TOTavgWAIT_M_int = intval("$TOTavgWAIT_M_int");
-	$TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int);
-	$TOTavgWAIT_S = ($TOTavgWAIT_S * 60);
-	$TOTavgWAIT_S = round($TOTavgWAIT_S, 0);
-	if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";}
-	$TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S";
-	$TOTavgWAIT_MS =		sprintf("%6s", $TOTavgWAIT_MS);
-		while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
 
 
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 echo "\n\n";
 
@@ -658,7 +599,7 @@ $PCusers='-';
 $PCusersARY=$MT;
 $PCuser_namesARY=$MT;
 $k=0;
-$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 $ugSQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $subs_to_print = mysql_num_rows($rslt);
@@ -695,9 +636,9 @@ while ($i < $subs_to_print)
 	}
 
 echo "PAUSE CODE BREAKDOWN:\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
-echo "| USER NAME       | ID       | TOTAL  |NONPAUSE| PAUSE  |  |$sub_statusesHTML\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -738,15 +679,8 @@ while ($m < $k)
 				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
 				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
 
-				$USERcodePAUSE_M = ($PCpause_sec[$i] / 60);
-				$USERcodePAUSE_M_int = round($USERcodePAUSE_M, 2);
-				$USERcodePAUSE_M_int = intval("$USERcodePAUSE_M_int");
-				$USERcodePAUSE_S = ($USERcodePAUSE_M - $USERcodePAUSE_M_int);
-				$USERcodePAUSE_S = ($USERcodePAUSE_S * 60);
-				$USERcodePAUSE_S = round($USERcodePAUSE_S, 0);
-				if ($USERcodePAUSE_S < 10) {$USERcodePAUSE_S = "0$USERcodePAUSE_S";}
-				$USERcodePAUSE_MS = "$USERcodePAUSE_M_int:$USERcodePAUSE_S";
-				$pfUSERcodePAUSE_MS =		sprintf("%6s", $USERcodePAUSE_MS);
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
 
 				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
 				$SstatusesHTML .= " $SstatusTXT |";
@@ -775,7 +709,6 @@ while ($m < $k)
 		{
 		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
 		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
 		$Suser =	sprintf("%-24s", $Suser);
 		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
@@ -783,44 +716,19 @@ while ($m < $k)
 	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
 	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
 
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
 
-	$USERtotNONPAUSE_M = ($Snon_pause_sec / 60);
-	$USERtotNONPAUSE_M_int = round($USERtotNONPAUSE_M, 2);
-	$USERtotNONPAUSE_M_int = intval("$USERtotNONPAUSE_M_int");
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_M - $USERtotNONPAUSE_M_int);
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_S * 60);
-	$USERtotNONPAUSE_S = round($USERtotNONPAUSE_S, 0);
-	if ($USERtotNONPAUSE_S < 10) {$USERtotNONPAUSE_S = "0$USERtotNONPAUSE_S";}
-	$USERtotNONPAUSE_MS = "$USERtotNONPAUSE_M_int:$USERtotNONPAUSE_S";
-	$pfUSERtotNONPAUSE_MS =		sprintf("%6s", $USERtotNONPAUSE_MS);
-
-	$USERtotTOTAL_M = ($Stotal_sec / 60);
-	$USERtotTOTAL_M_int = round($USERtotTOTAL_M, 2);
-	$USERtotTOTAL_M_int = intval("$USERtotTOTAL_M_int");
-	$USERtotTOTAL_S = ($USERtotTOTAL_M - $USERtotTOTAL_M_int);
-	$USERtotTOTAL_S = ($USERtotTOTAL_S * 60);
-	$USERtotTOTAL_S = round($USERtotTOTAL_S, 0);
-	if ($USERtotTOTAL_S < 10) {$USERtotTOTAL_S = "0$USERtotTOTAL_S";}
-	$USERtotTOTAL_MS = "$USERtotTOTAL_M_int:$USERtotTOTAL_S";
-	$pfUSERtotTOTAL_MS =		sprintf("%6s", $USERtotTOTAL_MS);
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
 
 	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
 
 	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
 
-#	if (!ereg("ID|TIME|CALLS",$stage))
-#		{
-		echo "$BOTTOMoutput";
-#		}
+	echo "$BOTTOMoutput";
 
 	$m++;
 	}
@@ -873,15 +781,8 @@ while ($n < $j)
 		{
 		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
 
-		$USERsumstatPAUSE_M = ($Scalls / 60);
-		$USERsumstatPAUSE_M_int = round($USERsumstatPAUSE_M, 2);
-		$USERsumstatPAUSE_M_int = intval("$USERsumstatPAUSE_M_int");
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_M - $USERsumstatPAUSE_M_int);
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_S * 60);
-		$USERsumstatPAUSE_S = round($USERsumstatPAUSE_S, 0);
-		if ($USERsumstatPAUSE_S < 10) {$USERsumstatPAUSE_S = "0$USERsumstatPAUSE_S";}
-		$USERsumstatPAUSE_MS = "$USERsumstatPAUSE_M_int:$USERsumstatPAUSE_S";
-		$pfUSERsumstatPAUSE_MS =		sprintf("%6s", $USERsumstatPAUSE_MS);
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
 
 		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
 		$SUMstatusesHTML .= " $SUMstatusTXT |";
@@ -892,44 +793,22 @@ while ($n < $j)
 
 	$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
 
-	$TOTtotNONPAUSE_M = ($TOTtotNONPAUSE / 60);
-	$TOTtotNONPAUSE_M_int = round($TOTtotNONPAUSE_M, 2);
-	$TOTtotNONPAUSE_M_int = intval("$TOTtotNONPAUSE_M_int");
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_M - $TOTtotNONPAUSE_M_int);
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_S * 60);
-	$TOTtotNONPAUSE_S = round($TOTtotNONPAUSE_S, 0);
-	if ($TOTtotNONPAUSE_S < 10) {$TOTtotNONPAUSE_S = "0$TOTtotNONPAUSE_S";}
-	$TOTtotNONPAUSE_MS = "$TOTtotNONPAUSE_M_int:$TOTtotNONPAUSE_S";
-	$TOTtotNONPAUSE_MS =		sprintf("%8s", $TOTtotNONPAUSE_MS);
-		while(strlen($TOTtotNONPAUSE_MS)>8) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
 
-	$TOTtotTOTAL_M = ($TOTtotTOTAL / 60);
-	$TOTtotTOTAL_M_int = round($TOTtotTOTAL_M, 2);
-	$TOTtotTOTAL_M_int = intval("$TOTtotTOTAL_M_int");
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_M - $TOTtotTOTAL_M_int);
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_S * 60);
-	$TOTtotTOTAL_S = round($TOTtotTOTAL_S, 0);
-	if ($TOTtotTOTAL_S < 10) {$TOTtotTOTAL_S = "0$TOTtotTOTAL_S";}
-	$TOTtotTOTAL_MS = "$TOTtotTOTAL_M_int:$TOTtotTOTAL_S";
-	$TOTtotTOTAL_MS =		sprintf("%8s", $TOTtotTOTAL_MS);
-		while(strlen($TOTtotTOTAL_MS)>8) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
 
 
-
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 echo "\n\n";
 
@@ -940,4 +819,4 @@ echo "\n\n";
 
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_es/AST_agent_status_detail.php b/LANG_www/vicidial_es/AST_agent_status_detail.php index 7b76d46b..8c911234 100644 --- a/LANG_www/vicidial_es/AST_agent_status_detail.php +++ b/LANG_www/vicidial_es/AST_agent_status_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-1554 - First build # 90225-2252 - Added CSV download option # 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags # @@ -202,9 +203,9 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Situación días\n"; + echo "Agent Status Detalle Report\n"; echo ""; $short_header=1; @@ -252,14 +253,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Status Detalle $NOW_TIME\n"; + echo "Agent Status Detalle Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- AGENTE Detalles -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Status Detalle $NOW_TIME\n"; + $file_output .= "Agent Status Detalle Report $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } @@ -284,7 +285,7 @@ else { $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) and (strlen($row[3]) > 0) ) + if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3]))) { $calls[$i] = $row[0]; $full_name[$i] = $row[1]; diff --git a/LANG_www/vicidial_es/AST_agent_time_detail.php b/LANG_www/vicidial_es/AST_agent_time_detail.php new file mode 100644 index 00000000..a98137e5 --- /dev/null +++ b/LANG_www/vicidial_es/AST_agent_time_detail.php @@ -0,0 +1,867 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 90522-0723 - First build +# 90908-1103 - Added DEAD time stats +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($stage)<2) {$stage='NAME';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + $TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL); + $TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/LANG_www/vicidial_es/AST_agent_time_sheet.php b/LANG_www/vicidial_es/AST_agent_time_sheet.php
index 49afbb5b..f2c0cb95 100644
--- a/LANG_www/vicidial_es/AST_agent_time_sheet.php
+++ b/LANG_www/vicidial_es/AST_agent_time_sheet.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -9,9 +9,28 @@
 #            - Added required user/pass to gain access to this page
 # 80624-0132 - Added vicidial_timeclock entries
 # 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
 #
 
 require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
 
 $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
 $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
@@ -32,11 +51,12 @@ $user=$agent;
 $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
 $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
 
-	$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
-	if ($DB) {echo "|$stmt|\n";}
-	$rslt=mysql_query($stmt, $link);
-	$row=mysql_fetch_row($rslt);
-	$auth=$row[0];
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
 
   if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
 	{
@@ -64,9 +84,9 @@ if (!isset($query_date)) {$query_date = $NOW_DATE;}
 -->
  
 
-\n";
-echo "VICIDIAL: Agent Hoja de tiempo";
+echo "<TITLE>Agent Hoja de tiempo";
 
 
 ##### BEGIN Set variables to make header show properly #####
@@ -122,7 +142,7 @@ if ($DB) {echo "$stmt\n";}
 $row=mysql_fetch_row($rslt);
 $full_name = $row[0];
 
-echo "VICIDIAL: AgentHoja de tiempo                            $NOW_TIME\n";
+echo "AgentHoja de tiempo                            $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENTE TIME SHEET: $agent - $full_name -------------\n\n";
@@ -136,120 +156,25 @@ if ($calls_summary)
 
 	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
 
-		$TOTAL_TIME_H = ($TOTAL_TIME / 3600);
-		$TOTAL_TIME_H = round($TOTAL_TIME_H, 2);
-		$TOTAL_TIME_H_int = intval("$TOTAL_TIME_H");
-		$TOTAL_TIME_M = ($TOTAL_TIME_H - $TOTAL_TIME_H_int);
-		$TOTAL_TIME_M = ($TOTAL_TIME_M * 60);
-		$TOTAL_TIME_M = round($TOTAL_TIME_M, 2);
-		$TOTAL_TIME_M_int = intval("$TOTAL_TIME_M");
-		$TOTAL_TIME_S = ($TOTAL_TIME_M - $TOTAL_TIME_M_int);
-		$TOTAL_TIME_S = ($TOTAL_TIME_S * 60);
-		$TOTAL_TIME_S = round($TOTAL_TIME_S, 0);
-		if ($TOTAL_TIME_S < 10) {$TOTAL_TIME_S = "0$TOTAL_TIME_S";}
-		if ($TOTAL_TIME_M_int < 10) {$TOTAL_TIME_M_int = "0$TOTAL_TIME_M_int";}
-		$TOTAL_TIME_HMS = "$TOTAL_TIME_H_int:$TOTAL_TIME_M_int:$TOTAL_TIME_S";
-		$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
 
-		$TALK_TIME_H = ($row[1] / 3600);
-		$TALK_TIME_H = round($TALK_TIME_H, 2);
-		$TALK_TIME_H_int = intval("$TALK_TIME_H");
-		$TALK_TIME_M = ($TALK_TIME_H - $TALK_TIME_H_int);
-		$TALK_TIME_M = ($TALK_TIME_M * 60);
-		$TALK_TIME_M = round($TALK_TIME_M, 2);
-		$TALK_TIME_M_int = intval("$TALK_TIME_M");
-		$TALK_TIME_S = ($TALK_TIME_M - $TALK_TIME_M_int);
-		$TALK_TIME_S = ($TALK_TIME_S * 60);
-		$TALK_TIME_S = round($TALK_TIME_S, 0);
-		if ($TALK_TIME_S < 10) {$TALK_TIME_S = "0$TALK_TIME_S";}
-		if ($TALK_TIME_M_int < 10) {$TALK_TIME_M_int = "0$TALK_TIME_M_int";}
-		$TALK_TIME_HMS = "$TALK_TIME_H_int:$TALK_TIME_M_int:$TALK_TIME_S";
-		$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
-
-		$PAUSE_TIME_H = ($row[3] / 3600);
-		$PAUSE_TIME_H = round($PAUSE_TIME_H, 2);
-		$PAUSE_TIME_H_int = intval("$PAUSE_TIME_H");
-		$PAUSE_TIME_M = ($PAUSE_TIME_H - $PAUSE_TIME_H_int);
-		$PAUSE_TIME_M = ($PAUSE_TIME_M * 60);
-		$PAUSE_TIME_M = round($PAUSE_TIME_M, 2);
-		$PAUSE_TIME_M_int = intval("$PAUSE_TIME_M");
-		$PAUSE_TIME_S = ($PAUSE_TIME_M - $PAUSE_TIME_M_int);
-		$PAUSE_TIME_S = ($PAUSE_TIME_S * 60);
-		$PAUSE_TIME_S = round($PAUSE_TIME_S, 0);
-		if ($PAUSE_TIME_S < 10) {$PAUSE_TIME_S = "0$PAUSE_TIME_S";}
-		if ($PAUSE_TIME_M_int < 10) {$PAUSE_TIME_M_int = "0$PAUSE_TIME_M_int";}
-		$PAUSE_TIME_HMS = "$PAUSE_TIME_H_int:$PAUSE_TIME_M_int:$PAUSE_TIME_S";
-		$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
-
-		$WAIT_TIME_H = ($row[5] / 3600);
-		$WAIT_TIME_H = round($WAIT_TIME_H, 2);
-		$WAIT_TIME_H_int = intval("$WAIT_TIME_H");
-		$WAIT_TIME_M = ($WAIT_TIME_H - $WAIT_TIME_H_int);
-		$WAIT_TIME_M = ($WAIT_TIME_M * 60);
-		$WAIT_TIME_M = round($WAIT_TIME_M, 2);
-		$WAIT_TIME_M_int = intval("$WAIT_TIME_M");
-		$WAIT_TIME_S = ($WAIT_TIME_M - $WAIT_TIME_M_int);
-		$WAIT_TIME_S = ($WAIT_TIME_S * 60);
-		$WAIT_TIME_S = round($WAIT_TIME_S, 0);
-		if ($WAIT_TIME_S < 10) {$WAIT_TIME_S = "0$WAIT_TIME_S";}
-		if ($WAIT_TIME_M_int < 10) {$WAIT_TIME_M_int = "0$WAIT_TIME_M_int";}
-		$WAIT_TIME_HMS = "$WAIT_TIME_H_int:$WAIT_TIME_M_int:$WAIT_TIME_S";
-		$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
-
-		$WRAPUP_TIME_H = ($row[7] / 3600);
-		$WRAPUP_TIME_H = round($WRAPUP_TIME_H, 2);
-		$WRAPUP_TIME_H_int = intval("$WRAPUP_TIME_H");
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_H - $WRAPUP_TIME_H_int);
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_M * 60);
-		$WRAPUP_TIME_M = round($WRAPUP_TIME_M, 2);
-		$WRAPUP_TIME_M_int = intval("$WRAPUP_TIME_M");
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_M - $WRAPUP_TIME_M_int);
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_S * 60);
-		$WRAPUP_TIME_S = round($WRAPUP_TIME_S, 0);
-		if ($WRAPUP_TIME_S < 10) {$WRAPUP_TIME_S = "0$WRAPUP_TIME_S";}
-		if ($WRAPUP_TIME_M_int < 10) {$WRAPUP_TIME_M_int = "0$WRAPUP_TIME_M_int";}
-		$WRAPUP_TIME_HMS = "$WRAPUP_TIME_H_int:$WRAPUP_TIME_M_int:$WRAPUP_TIME_S";
-		$pfWRAPUP_TIME_HMS =		sprintf("%8s", $WRAPUP_TIME_HMS);
-
-		$TALK_AVG_M = ($row[2] / 60);
-		$TALK_AVG_M = round($TALK_AVG_M, 2);
-		$TALK_AVG_M_int = intval("$TALK_AVG_M");
-		$TALK_AVG_S = ($TALK_AVG_M - $TALK_AVG_M_int);
-		$TALK_AVG_S = ($TALK_AVG_S * 60);
-		$TALK_AVG_S = round($TALK_AVG_S, 0);
-		if ($TALK_AVG_S < 10) {$TALK_AVG_S = "0$TALK_AVG_S";}
-		$TALK_AVG_MS = "$TALK_AVG_M_int:$TALK_AVG_S";
-		$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
-
-		$PAUSE_AVG_M = ($row[4] / 60);
-		$PAUSE_AVG_M = round($PAUSE_AVG_M, 2);
-		$PAUSE_AVG_M_int = intval("$PAUSE_AVG_M");
-		$PAUSE_AVG_S = ($PAUSE_AVG_M - $PAUSE_AVG_M_int);
-		$PAUSE_AVG_S = ($PAUSE_AVG_S * 60);
-		$PAUSE_AVG_S = round($PAUSE_AVG_S, 0);
-		if ($PAUSE_AVG_S < 10) {$PAUSE_AVG_S = "0$PAUSE_AVG_S";}
-		$PAUSE_AVG_MS = "$PAUSE_AVG_M_int:$PAUSE_AVG_S";
-		$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
-
-		$WAIT_AVG_M = ($row[6] / 60);
-		$WAIT_AVG_M = round($WAIT_AVG_M, 2);
-		$WAIT_AVG_M_int = intval("$WAIT_AVG_M");
-		$WAIT_AVG_S = ($WAIT_AVG_M - $WAIT_AVG_M_int);
-		$WAIT_AVG_S = ($WAIT_AVG_S * 60);
-		$WAIT_AVG_S = round($WAIT_AVG_S, 0);
-		if ($WAIT_AVG_S < 10) {$WAIT_AVG_S = "0$WAIT_AVG_S";}
-		$WAIT_AVG_MS = "$WAIT_AVG_M_int:$WAIT_AVG_S";
-		$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
-
-		$WRAPUP_AVG_M = ($row[8] / 60);
-		$WRAPUP_AVG_M = round($WRAPUP_AVG_M, 2);
-		$WRAPUP_AVG_M_int = intval("$WRAPUP_AVG_M");
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_M - $WRAPUP_AVG_M_int);
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_S * 60);
-		$WRAPUP_AVG_S = round($WRAPUP_AVG_S, 0);
-		if ($WRAPUP_AVG_S < 10) {$WRAPUP_AVG_S = "0$WRAPUP_AVG_S";}
-		$WRAPUP_AVG_MS = "$WRAPUP_AVG_M_int:$WRAPUP_AVG_S";
-		$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
 
 	echo "LLAMADAS TOTALES TAKEN: $row[0]\n";
 	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
@@ -284,23 +209,11 @@ echo "LAST LOG ACTIVITY:    $row[0]\n";
 $end = $row[1];
 
 $login_time = ($end - $start);
-	$LOGIN_TIME_H = ($login_time / 3600);
-	$LOGIN_TIME_H = round($LOGIN_TIME_H, 2);
-	$LOGIN_TIME_H_int = intval("$LOGIN_TIME_H");
-	$LOGIN_TIME_M = ($LOGIN_TIME_H - $LOGIN_TIME_H_int);
-	$LOGIN_TIME_M = ($LOGIN_TIME_M * 60);
-	$LOGIN_TIME_M = round($LOGIN_TIME_M, 2);
-	$LOGIN_TIME_M_int = intval("$LOGIN_TIME_M");
-	$LOGIN_TIME_S = ($LOGIN_TIME_M - $LOGIN_TIME_M_int);
-	$LOGIN_TIME_S = ($LOGIN_TIME_S * 60);
-	$LOGIN_TIME_S = round($LOGIN_TIME_S, 0);
-	if ($LOGIN_TIME_S < 10) {$LOGIN_TIME_S = "0$LOGIN_TIME_S";}
-	if ($LOGIN_TIME_M_int < 10) {$LOGIN_TIME_M_int = "0$LOGIN_TIME_M_int";}
-	$LOGIN_TIME_HMS = "$LOGIN_TIME_H_int:$LOGIN_TIME_M_int:$LOGIN_TIME_S";
-	$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
 
 echo "-----------------------------------------\n";
-echo "TOTAL LOGGED-IN TIME:    $pfLOGIN_TIME_HMS\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
 
 
 ### timeclock records
@@ -354,20 +267,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f
 			{
 			$login_sec = $row[3];
 			$total_login_time = ($total_login_time + $login_sec);
-			$event_hours = ($login_sec / 3600);
-			$event_hours_int = round($event_hours, 2);
-			$event_hours_int = intval("$event_hours_int");
-			$event_minutes = ($event_hours - $event_hours_int);
-			$event_minutes = ($event_minutes * 60);
-			$event_minutes_int = round($event_minutes, 0);
-			if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";}
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
 			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
 			echo "<td align=right><font size=2>$manager_edit</td>";
 			echo "<td align=right><font size=2>$row[0]</td>";
 			echo "<td align=right><font size=2> $TC_log_date</td>\n";
 			echo "<td align=right><font size=2> $row[4]</td>\n";
 			echo "<td align=right><font size=2> $row[2]</td>\n";
-			echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int";
+			echo "<td align=right><font size=2> $event_hours_minutes";
 			if ($DB) {echo " - $total_login_time - $login_sec";}
 			echo "</td></tr>\n";
 			}
@@ -379,13 +287,7 @@ if (strlen($login_sec)<1)
 	$total_login_time = ($total_login_time + $login_sec);
 		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
 	}
-$total_login_hours = ($total_login_time / 3600);
-$total_login_hours_int = round($total_login_hours, 2);
-$total_login_hours_int = intval("$total_login_hours_int");
-$total_login_minutes = ($total_login_hours - $total_login_hours_int);
-$total_login_minutes = ($total_login_minutes * 60);
-$total_login_minutes_int = round($total_login_minutes, 0);
-if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
 
 	if ($DB) {echo " - $total_login_time - $login_sec";}
 
@@ -393,8 +295,8 @@ echo "<tr><td align=right><font size=2> </td>";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
-echo "<td align=right><font size=2><font size=2>TOTAL </td>\n";
-echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int  </td></tr>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
 
 echo "</TABLE>\n";
 
@@ -406,4 +308,4 @@ echo "</TABLE>\n";
 
 ?>
 
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
diff --git a/LANG_www/vicidial_es/AST_agent_timeclock_detail.php b/LANG_www/vicidial_es/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/LANG_www/vicidial_es/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
+$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
+
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
+	{
+    Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\"");
+    Header("HTTP/1.0 401 Unauthorized");
+    echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/LANG_www/vicidial_es/AST_inboundEXTstats.php b/LANG_www/vicidial_es/AST_inboundEXTstats.php index 9d0a3f21..1be68615 100644 --- a/LANG_www/vicidial_es/AST_inboundEXTstats.php +++ b/LANG_www/vicidial_es/AST_inboundEXTstats.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # 60421-1450 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60620-1322 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $inbound_to_print) --> -\n"; #echo"\n"; echo "ASTERISK: Estadística de Llamadas Entrantes\n"; diff --git a/LANG_www/vicidial_es/AST_server_performance.php b/LANG_www/vicidial_es/AST_server_performance.php index d3c2574a..8561a223 100644 --- a/LANG_www/vicidial_es/AST_server_performance.php +++ b/LANG_www/vicidial_es/AST_server_performance.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # - Fixed vertical scaling issues # 80118-1508 - Fixed horizontal scale marking issues # 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -24,6 +25,8 @@ if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"]; elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} @@ -82,9 +85,9 @@ while ($i < $servers_to_print) --> -\n"; -echo "VICIDIAL: Server Performance\n"; +echo "Server Performance Report\n"; $short_header=1; @@ -125,7 +128,7 @@ $query_date_BEGIN = $begin_query_time; $query_date_END = $end_query_time; -echo "VICIDIAL: Server Performance $NOW_TIME\n"; +echo "Server Performance Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- TOTALS, PEAKS and AVERAGES\n"; diff --git a/LANG_www/vicidial_es/AST_timeonVDAD.php b/LANG_www/vicidial_es/AST_timeonVDAD.php index f38d7769..d90d40ff 100644 --- a/LANG_www/vicidial_es/AST_timeonVDAD.php +++ b/LANG_www/vicidial_es/AST_timeonVDAD.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -13,6 +13,7 @@ # 80422-0305 - Added phone login to display, lower font size to 2 # 81013-2227 - Fixed Remote Agent display bug # 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -77,7 +78,7 @@ if ($reset_counter > 7) -\n"; echo " -\n"; echo"\n"; -echo "VICIDIAL: Time On VDAD\n"; +echo "Server-Specific Tiempo Real Report\n"; $short_header=1; @@ -143,7 +144,7 @@ echo "SERVER: $server_ip\n"; if ($closer_display>0) {$closer_display_reverse=0; $closer_reverse_link='DEFAULT';} else {$closer_display_reverse=1; $closer_reverse_link='CLOSER';} -echo "VICIDIAL: Agents Time On Calls $NOW_TIME $closer_reverse_link | INFORMES\n\n"; +echo "Agentes Time On Calls $NOW_TIME $closer_reverse_link | INFORMES\n\n"; if ($closer_display>0) { @@ -364,7 +365,7 @@ $talking_to_print = mysql_num_rows($rslt); #echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Time On VDAD TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; +echo "Server-Specific Tiempo Real Report TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; echo "| CHANNEL | STATUS | CAMPAIGN | PHONE NUMBER | CALLTIME | MINUTES |\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; diff --git a/LANG_www/vicidial_es/AST_timeonVDADall.php b/LANG_www/vicidial_es/AST_timeonVDADall.php index cd522e9c..536f583d 100644 --- a/LANG_www/vicidial_es/AST_timeonVDADall.php +++ b/LANG_www/vicidial_es/AST_timeonVDADall.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -45,14 +45,29 @@ # 90105-1153 - Changed monitor links to use 0 prefix instead of 6 # 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option # 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended # -$version = '2.0.5-36'; -$build = '90310-0906'; + +$version = '2.2.0-49'; +$build = '91204-1548'; header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -97,6 +112,11 @@ if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdispl elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -115,13 +135,14 @@ while ($i < $qm_conf_ct) ##### END SETTINGS LOOKUP ##### ########################################### +if (!isset($DB)) {$DB=0;} if (!isset($RR)) {$RR=40;} if (!isset($group)) {$group='';} if (!isset($usergroup)) {$usergroup='';} if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes -if (!isset($UidORname)) {$UidORname=0;} # 0=id, 1=name +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name if (!isset($orderby)) {$orderby='timeup';} -if (!isset($SERVdisplay)) {$SERVdisplay=1;} # 0=no, 1=yes +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes @@ -138,50 +159,66 @@ $ingroup_detail=''; if (strlen($group)>1) {$groups[0] = $group; $RR=40;} else {$group = $groups[0];} -function get_server_load($windows = false) { -$os = strtolower(PHP_OS); -if(strpos($os, "win") === false) { -if(file_exists("/proc/loadavg")) { -$load = file_get_contents("/proc/loadavg"); -$load = explode(' ', $load); -return $load[0]; -} -elseif(function_exists("shell_exec")) { -$load = explode(' ', `uptime`); -return $load[count($load)-1]; -} -else { -return false; -} -} -elseif($windows) { -if(class_exists("COM")) { -$wmi = new COM("WinMgmts:\\\\."); -$cpus = $wmi->InstancesOf("Win32_Processor"); +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); -$cpuload = 0; -$i = 0; -while ($cpu = $cpus->Next()) { -$cpuload += $cpu->LoadPercentage; -$i++; -} + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } -$cpuload = round($cpuload / $i, 2); -return "$cpuload%"; -} -else { -return false; -} -} -} + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } $load_ave = get_server_load(true); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); @@ -195,17 +232,18 @@ $auth=$row[0]; echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - -$NOW_TIME = date("Y-m-d H:i:s"); -$NOW_DAY = date("Y-m-d"); -$NOW_HOUR = date("H:i:s"); -$STARTtime = date("U"); -$epochSIXhoursAGO = ($STARTtime - 21600); -$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } $stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; $rslt=mysql_query($stmt, $link); -if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; @@ -230,21 +268,32 @@ while($i < $group_ct) $groupQS .= "&groups[]=$groups[$i]"; $i++; } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) { + $all_active = 0; $group_SQL = "''"; -# $group_SQL = "group_id IN('')"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; } else { - $group_SQL = eregi_replace(",$",'',$group_SQL); -# $group_SQL = "group_id IN($group_SQL)"; + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; } -#if ( (eregi('ALL-ACTIVE',$group_string)) and ($with_inbound=='O') and ($outbound_autodial_active > 0) ) -# {$with_inbound='N';} -$stmt="select * from vicidial_user_groups;"; +$stmt="select user_group from vicidial_user_groups;"; $rslt=mysql_query($stmt, $link); if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} @@ -265,14 +314,14 @@ $F=''; $FG=''; $B=''; $BG=''; $select_list = ""; $select_list .= "
Select Campañas:
"; $select_list .= ""; $select_list .= "
(Para seleccionar más de 1 campaña, mantenga pulsada la tecla Ctrl y haga clic en)"; @@ -284,12 +333,12 @@ if ($UGdisplay > 0) $select_list .= "Select Grupo Del Usuario:
"; $select_list .= "

"; } @@ -306,6 +355,26 @@ $select_list .= "
"; @@ -323,18 +392,229 @@ $open_list = "< \n"; -$stmt = "select count(*) from vicidial_campaigns where campaign_id IN($group_SQL) and campaign_allow_inbound='Y';"; +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $campaign_allow_inbound = $row[0]; echo "\n"; -echo"\n"; -echo "VICIDIAL: Time On VDAD Campaña: $group\n"; +echo"\n"; +echo "Tiempo Real Report: $group\n"; $short_header=1; @@ -397,9 +678,11 @@ echo "VICIDIAL: Time On VDAD Campaña: $group
"; -echo "
\n"; +echo "\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -411,15 +694,18 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL Tiempo Real                                                                          \n"; -echo "\n"; +echo "Tiempo Real Report                                                                               \n"; +echo "\n"; echo "
\n"; echo "Elija Opciones de Informe"; echo "
\n"; echo "
\n"; -echo "STOP | "; -echo "SLOW | "; -echo "GO"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; if (eregi('ALL-ACTIVE',$group_string)) { echo "       MODIFICAR | \n"; @@ -436,14 +722,30 @@ if (!$group) {echo "

please select a campaign from the pulldown above $c) { - $multi_drop++; - $stmt = "select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); $ccamps_to_print = mysql_num_rows($rslt); + $c=0; while ($ccamps_to_print > $c) { $row=mysql_fetch_row($rslt); @@ -453,8 +755,19 @@ if (ereg('O',$with_inbound)) $closer_campaignsSQL .= "'$closer_campaigns',"; $c++; } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; if ($adastats>1) { @@ -569,16 +882,19 @@ if (ereg('O',$with_inbound)) } - $stmt="select agent_pause_codes_active from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; if (eregi('ALL-ACTIVE',$group_string)) { - $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats;"; + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; } - $stmtC="select agent_non_pause_sec from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} @@ -696,10 +1012,13 @@ else { if (eregi('ALL-ACTIVE',$group_string)) { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} $multi_drop++; - $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns;"; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; - $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats;"; + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; } else { @@ -708,29 +1027,15 @@ else if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) { $multi_drop++; - $stmt = "select distinct closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} - $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; } else { - $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; } @@ -758,16 +1063,11 @@ else $CALLtime = $row[16]; $DIALtimeout = $row[17]; $DIALstatuses = $row[18]; - $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); - $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; - $stmt="select count(*) from vicidial_hopper where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select count(*) from vicidial_hopper;"; - } + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $VDhop = $row[0]; @@ -809,15 +1109,29 @@ else } else {$diffpctONEMIN = '0.00';} - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats;"; - } + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $balanceSHORT = $row[0]; + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Mezcla lista: $row[0]"; + $DIALorder = "Mezcla lista: $row[0]"; + } + } + echo "
"; echo ""; echo ""; @@ -890,59 +1204,59 @@ echo "$ingroup_detail"; if ($adastats<2) { - echo "+ VIEW MORE"; + echo "+ VIEW MORE"; } else { - echo "+ VIEW LESS"; + echo "+ VIEW LESS"; } if ($UGdisplay>0) { - echo "       PIEL GRUPO DE USUARIOS"; + echo "       PIEL GRUPO DE USUARIOS"; } else { - echo "       VIEW GRUPO DE USUARIOS"; + echo "       VIEW GRUPO DE USUARIOS"; } if ($UidORname>0) { - echo "       DEMOSTRACIÓN AGENTE ID"; + echo "       DEMOSTRACIÓN AGENTE ID"; } else { - echo "       DEMOSTRACIÓN AGENTE NAME"; + echo "       DEMOSTRACIÓN AGENTE NAME"; } if ($SERVdisplay>0) { - echo "       PIEL SERVIDOR INFO"; + echo "       PIEL SERVIDOR INFO"; } else { - echo "       DEMOSTRACIÓN SERVIDOR INFO"; + echo "       DEMOSTRACIÓN SERVIDOR INFO"; } if ($CALLSdisplay>0) { - echo "       PIEL WAITING CALLS"; + echo "       PIEL WAITING CALLS"; } else { - echo "       DEMOSTRACIÓN WAITING CALLS"; + echo "       DEMOSTRACIÓN WAITING CALLS"; } if ($PHONEdisplay>0) { - echo "       PIEL PHONES"; + echo "       PIEL PHONES"; } else { - echo "       DEMOSTRACIÓN PHONES"; + echo "       DEMOSTRACIÓN PHONES"; } if ($CUSTPHONEdisplay>0) { - echo "       PIEL CUSTPHONES"; + echo "       PIEL CUSTPHONES"; } else { - echo "       DEMOSTRACIÓN CUSTPHONES"; + echo "       DEMOSTRACIÓN CUSTPHONES"; } echo ""; echo ""; @@ -955,34 +1269,15 @@ echo "\n\n"; ################################################################################### if ($campaign_allow_inbound > 0) { - $stmt="select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - $closer_campaignsSQL=''; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (campaign_id IN($group_SQL) and call_type IN('OUT','OUTBALANCE')) ) order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; } else { - if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} - else {$UgroupSQL = " and campaign_id IN($group_SQL)";} - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $UgroupSQL order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; } if ($CALLSdisplay > 0) { - $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority"; + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; } else { @@ -991,6 +1286,7 @@ else $k=0; +$agentonlycount=0; $stmt = "$stmtA $stmtB"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} @@ -1019,6 +1315,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1037,6 +1335,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1089,11 +1389,13 @@ $parked_to_print = mysql_num_rows($rslt); ################################################################################### ###### CALLS WAITING ################################################################################### - +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} $Cecho = ''; $Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; -$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORIDAD |\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORIDAD | $agentonlyheader\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; $p=0; @@ -1105,24 +1407,23 @@ while($p<$k) $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); - $Ccall_time_M = ($Ccall_time_S / 60); - $Ccall_time_M = round($Ccall_time_M, 2); - $Ccall_time_M_int = intval("$Ccall_time_M"); - $Ccall_time_SEC = ($Ccall_time_M - $Ccall_time_M_int); - $Ccall_time_SEC = ($Ccall_time_SEC * 60); - $Ccall_time_SEC = round($Ccall_time_SEC, 0); - if ($Ccall_time_SEC < 10) {$Ccall_time_SEC = "0$Ccall_time_SEC";} - $Ccall_time_MS = "$Ccall_time_M_int:$Ccall_time_SEC"; + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); $G = ''; $EG = ''; if ($CDcall_type[$p] == 'IN') { - $G=""; $EG=''; + $G=""; $EG=''; } - $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG |\n"; + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; $p++; } @@ -1159,39 +1460,41 @@ if ($campaignord=='campaignup') {$campaignord='campaigndown';} else {$campaignord='campaignup';} $Aecho = ''; -$Aecho .= "VICIDIAL: Agents Time On Calls Campaña: $group_string $NOW_TIME\n"; +$Aecho .= "VICIDIAL: Agentes Time On Calls Campaña: $group_string $NOW_TIME\n"; $HDbegin = "+"; $HTbegin = "|"; -$HDstation = "------------+"; -$HTstation = " STATION |"; -$HDphone = "------------+"; -$HTphone = " PHONE |"; -$HDuser = "--------------------+"; -$HTuser = " USER |"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; $HDusergroup = "--------------+"; -$HTusergroup = " GRUPO DE USUARIOS |"; +$HTusergroup = " GRUPO DE USUARIOS |"; $HDsessionid = "------------------+"; $HTsessionid = " SESSIONID |"; $HDbarge = "-------+"; $HTbarge = " BARGE |"; $HDstatus = "----------+"; $HTstatus = " STATUS |"; -$HDcustphone = "------------+"; -$HTcustphone = " CUST PHONE |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; $HDserver_ip = "-----------------+"; $HTserver_ip = " SERVIDOR IP |"; $HDcall_server_ip = "-----------------+"; $HTcall_server_ip = " CALL SERVIDOR IP |"; $HDtime = "---------+"; -$HTtime = " MM:SS |"; +$HTtime = " MM:SS |"; $HDcampaign = "------------+"; -$HTcampaign = " CAMPAIGN |"; +$HTcampaign = " CAMPAIGN |"; $HDcalls = "-------+"; $HTcalls = " CALLS |"; $HDpause = ''; $HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; if (!ereg("N",$agent_pause_codes_active)) { @@ -1215,12 +1518,12 @@ if ($UGdisplay < 1) $HDusergroup = ''; $HTusergroup = ''; } -if ( ($SIPmonitorLINK<1) && ($IAXmonitorLINK<1) ) +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) { $HDsessionid = "-----------+"; $HTsessionid = " SESSIONID |"; } -if ( ($SIPmonitorLINK<2) && ($IAXmonitorLINK<2) ) +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) { $HDbarge = ''; $HTbarge = ''; @@ -1235,8 +1538,8 @@ if ($SERVdisplay < 1) -$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls\n"; -$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls\n"; +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; $Aecho .= "$Aline"; $Aecho .= "$Bline"; $Aecho .= "$Aline"; @@ -1265,7 +1568,7 @@ else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} if (strlen($usergroup)<1) {$usergroupSQL = '';} else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} -$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); @@ -1291,6 +1594,7 @@ $talking_to_print = mysql_num_rows($rslt); $Acalls_today[$i] = $row[12]; $Acallerid[$i] = $row[13]; $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; $i++; } @@ -1352,6 +1656,12 @@ $calls_to_list = mysql_num_rows($rslt); $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); $exten = "extension='$dialplan'"; } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; $rslt=mysql_query($stmt, $link); @@ -1396,9 +1706,9 @@ $calls_to_list = mysql_num_rows($rslt); $phone_split = explode("-----",$Alogin[$j]); $i = $phone_split[1]; - if (eregi("READY|PAUSED",$Astatus[$i])) + if (eregi("READY|PAUSED",$Astatus[$i])) { - $Acall_time[$i]=$Acall_finish[$i]; + $Acall_time[$i]=$Astate_change[$i]; if ($Alead_id[$i] > 0) { @@ -1407,27 +1717,28 @@ $calls_to_list = mysql_num_rows($rslt); $status = ' DISPO'; } } - if ($non_latin < 1) + if ($non_latin < 1) { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-10s", $extension); - while(strlen($extension)>10) {$extension = substr("$extension", 0, -1);} + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} } - else + else { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-40s", $extension); - while(mb_strlen($extension, 'utf-8')>10) {$extension = mb_substr("$extension", 0, -1,'utf8');} + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} } - $phone = sprintf("%-10s", $phone_split[0]); - $custphone = sprintf("%-10s", $custphone); + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); $Luser = $Auser[$i]; - $user = sprintf("%-18s", $Auser[$i]); + $user = sprintf("%-20s", $Auser[$i]); $Lsessionid = $Asessionid[$i]; $sessionid = sprintf("%-9s", $Asessionid[$i]); $Lstatus = $Astatus[$i]; $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; $server_ip = sprintf("%-15s", $Aserver_ip[$i]); $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); @@ -1441,12 +1752,27 @@ $calls_to_list = mysql_num_rows($rslt); if (eregi("INCALL",$Lstatus)) { - ### temporarily deactivate DEAD calls display until bug is fixed - if (!ereg("$Acallerid[$i]\|",$callerids)) + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) { - $Astatus[$i] = 'DEAD'; - $Lstatus = 'DEAD'; - $status = ' DEAD '; + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } } if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) @@ -1463,12 +1789,12 @@ $calls_to_list = mysql_num_rows($rslt); if ($UGdisplay > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { $user_group = sprintf("%-12s", $Auser_group[$i]); while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} } - else + else { $user_group = sprintf("%-40s", $Auser_group[$i]); while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} @@ -1476,42 +1802,35 @@ $calls_to_list = mysql_num_rows($rslt); } if ($UidORname > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { - $user = sprintf("%-18s", $Afull_name[$i]); - while(strlen($user)>18) {$user = substr("$user", 0, -1);} + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} } - else + else { - $user = sprintf("%-40s", $Afull_name[$i]); - while(mb_strlen($user, 'utf-8')>18) {$user = mb_substr("$user", 0, -1,'utf8');} + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} } } - if (!eregi("INCALL|QUEUE",$Astatus[$i])) - {$call_time_S = ($STARTtime - $Acall_finish[$i]);} + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} else {$call_time_S = ($STARTtime - $Acall_time[$i]);} - $call_time_M = ($call_time_S / 60); - $call_time_M = round($call_time_M, 2); - $call_time_M_int = intval("$call_time_M"); - $call_time_SEC = ($call_time_M - $call_time_M_int); - $call_time_SEC = ($call_time_SEC * 60); - $call_time_SEC = round($call_time_SEC, 0); - if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} - $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sec_convert($call_time_S,'M'); $call_time_MS = sprintf("%7s", $call_time_MS); $G = ''; $EG = ''; - if ($Lstatus=='INCALL') + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) { if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} - # if ($call_time_M_int >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} } if ($Lstatus=='DEAD') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { @@ -1522,15 +1841,15 @@ $calls_to_list = mysql_num_rows($rslt); } if ($Lstatus=='DISPO') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } if ($Lstatus=='PAUSED') @@ -1546,27 +1865,27 @@ $calls_to_list = mysql_num_rows($rslt); else {$pausecode='';} - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } # if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) # {$G=''; $EG='';} - if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) { $G=''; $EG=''; - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } $L=''; @@ -1575,6 +1894,10 @@ $calls_to_list = mysql_num_rows($rslt); if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} if ($SIPmonitorLINK>1) {$R=" | BARGE";} if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} else {$CP = "";} @@ -1586,31 +1909,31 @@ $calls_to_list = mysql_num_rows($rslt); else {$SVD = "";} if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} - else {$phoneD = "";} + else {$phoneD = " ";} $vac_stage=''; $vac_campaign=''; $INGRP=''; if ($CM == 'I') { - $stmt="select campaign_id,stage from vicidial_auto_calls where callerid='$Acallerid[$i]' LIMIT 1;"; + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $ingrp_to_print = mysql_num_rows($rslt); if ($ingrp_to_print > 0) { $row=mysql_fetch_row($rslt); - $vac_campaign = sprintf("%-20s", $row[0]); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); $row[1] = eregi_replace(".*-",'',$row[1]); $vac_stage = sprintf("%-4s", $row[1]); } - $INGRP = " $G$vac_stage$EG $G$vac_campaign$EG "; + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; } $agentcount++; - $Aecho .= "| $G$extension$EG |$phoneD $G$user$EG |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG+ |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; $j++; } diff --git a/LANG_www/vicidial_es/AST_timeonVDADallSUMMARY.php b/LANG_www/vicidial_es/AST_timeonVDADallSUMMARY.php index b887cc79..ae7f61b1 100644 --- a/LANG_www/vicidial_es/AST_timeonVDADallSUMMARY.php +++ b/LANG_www/vicidial_es/AST_timeonVDADallSUMMARY.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -15,6 +15,7 @@ # 71029-1900 - Changed CLOSER-type to not require campaign_id restriction # 80525-1040 - Added IVR status summary display for inbound calls # 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -103,10 +104,10 @@ if (!isset($RR)) {$RR=4;} --> -\n"; -echo "VICIDIAL: Realtime All Campañas Summary\n"; +echo "Tiempo Real All Campañas Summary\n"; $short_header=1; @@ -114,7 +115,7 @@ echo "VICIDIAL: Realtime All Campañas Summary
DIAL NIVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL    
"; -echo "VICIDIAL: Realtime All Campañas Summary           \n"; +echo "Tiempo Real All Campañas Summary           \n"; echo "STOP | "; echo "SLOW | "; echo "GO "; diff --git a/LANG_www/vicidial_es/AST_timeonpark.php b/LANG_www/vicidial_es/AST_timeonpark.php index 676e281b..e91afcbb 100644 --- a/LANG_www/vicidial_es/AST_timeonpark.php +++ b/LANG_www/vicidial_es/AST_timeonpark.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60620-1042 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -83,7 +84,7 @@ if ($reset_counter > 7) --> -\n"; echo"\n"; echo "VICIDIAL: Time On Park\n"; @@ -154,7 +155,7 @@ $parked_to_print = mysql_num_rows($rslt); echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Agents Time On Inbound Calls $NOW_TIME\n\n"; +echo "VICIDIAL: Agentes Time On Inbound Calls $NOW_TIME\n\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; echo "| STATION | USER | CHANNEL | GROUP | START TIME | MINUTES |\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; diff --git a/LANG_www/vicidial_es/admin.php b/LANG_www/vicidial_es/admin.php index 9afe5812..c5b1d8fa 100644 --- a/LANG_www/vicidial_es/admin.php +++ b/LANG_www/vicidial_es/admin.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -38,6 +38,9 @@ $reports_color = '#99FF33'; $carriers_color = '#FF33FF'; $settings_color = '#FF33FF'; $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; $subcamp_color = '#FF9933'; $users_font = 'BLACK'; $campaigns_font = 'BLACK'; @@ -55,6 +58,9 @@ $reports_font = 'BLACK'; $server_font = 'BLACK'; $settings_font = 'BLACK'; $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; $subcamp_font = 'BLACK'; ### comment this section out for colorful section headings @@ -77,6 +83,9 @@ $reports_color = '#E6E6E6'; $carriers_color = '#C6C6C6'; $settings_color = '#C6C6C6'; $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; $subcamp_color = '#C6C6C6'; ### @@ -954,7 +963,208 @@ if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enfor elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} - +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -967,12 +1177,11 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -980,7 +1189,9 @@ while ($i < $qm_conf_ct) $SSenable_vtiger_integration = $row[2]; $SSqc_features_active = $row[3]; $SSoutbound_autodial_active = $row[4]; - $i++; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -992,476 +1203,601 @@ while ($i < $qm_conf_ct) ###################################################################################################### if ($non_latin < 1) -{ -### DIGITS ONLY ### -$adaptive_dropped_percentage = ereg_replace("[^0-9]","",$adaptive_dropped_percentage); -$adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); -$admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); -$admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); -$admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); -$AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); -$agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); -$agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); -$agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); -$AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); -$allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); -$alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); -$am_message_exten = ereg_replace("[^0-9]","",$am_message_exten); -$answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); -$ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); -$ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); -$attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); -$attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); -$auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); -$balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); -$call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); -$CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); -$campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); -$campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); -$campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); -$change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); -$closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); -$conf_exten = ereg_replace("[^0-9]","",$conf_exten); -$conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); -$conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); -$ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); -$ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); -$ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); -$ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); -$ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); -$ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); -$ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); -$ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); -$ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); -$ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); -$ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); -$ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); -$ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); -$ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); -$ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); -$ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); -$DBX_port = ereg_replace("[^0-9]","",$DBX_port); -$DBY_port = ereg_replace("[^0-9]","",$DBY_port); -$dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); -$delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); -$delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); -$delete_filters = ereg_replace("[^0-9]","",$delete_filters); -$delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); -$delete_lists = ereg_replace("[^0-9]","",$delete_lists); -$delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); -$delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); -$delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); -$delete_users = ereg_replace("[^0-9]","",$delete_users); -$dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); -$dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); -$drop_call_seconds = ereg_replace("[^0-9]","",$drop_call_seconds); -$enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); -$enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); -$fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); -$hopper_level = ereg_replace("[^0-9]","",$hopper_level); -$hotkey = ereg_replace("[^0-9]","",$hotkey); -$hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); -$list_id = ereg_replace("[^0-9]","",$list_id); -$load_leads = ereg_replace("[^0-9]","",$load_leads); -$max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); -$modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); -$modify_users = ereg_replace("[^0-9]","",$modify_users); -$modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); -$modify_lists = ereg_replace("[^0-9]","",$modify_lists); -$modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); -$modify_filters = ereg_replace("[^0-9]","",$modify_filters); -$modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); -$modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); -$modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); -$modify_servers = ereg_replace("[^0-9]","",$modify_servers); -$view_reports = ereg_replace("[^0-9]","",$view_reports); -$modify_leads = ereg_replace("[^0-9]","",$modify_leads); -$monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); -$number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); -$old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); -$outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); -$park_ext = ereg_replace("[^0-9]","",$park_ext); -$park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -$QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); -$recording_exten = ereg_replace("[^0-9]","",$recording_exten); -$remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); -$telnet_port = ereg_replace("[^0-9]","",$telnet_port); -$updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); -$user_level = ereg_replace("[^0-9]","",$user_level); -$user_start = ereg_replace("[^0-9]","",$user_start); -$user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); -$VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); -$VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); -$vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); -$vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); -$voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); -$voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); -$voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); -$voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); -$voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); -$wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); -$use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); -$webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); -$enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); -$enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); -$allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); -$mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); -$prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); -$agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); -$manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); -$qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); -$qc_pass = ereg_replace("[^0-9]","",$qc_pass); -$qc_finish = ereg_replace("[^0-9]","",$qc_finish); -$qc_commit = ereg_replace("[^0-9]","",$qc_commit); -$shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); -$timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); -$survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); -$add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); -$modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); -$delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); -$vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); -$vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); -$hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); -$hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); -$did_id = ereg_replace("[^0-9]","",$did_id); -$source_did = ereg_replace("[^0-9]","",$source_did); -$modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); -$delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); -$answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); -$answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); -$enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); -$qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); -$outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); -$download_lists = ereg_replace("[^0-9]","",$download_lists); -$caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); -$outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); -$manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); -$export_reports = ereg_replace("[^0-9]","",$export_reports); + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); -### DIGITS and COLONS -$shift_length = ereg_replace("[^\:0-9]","",$shift_length); + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); -### DIGITS and HASHES and STARS -$survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); -$survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); -### DIGITS and DASHES -$group_rank = ereg_replace("[^-0-9]","",$group_rank); -$campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); -$queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); -### DIGITS and NEWLINES -$phone_numbers = ereg_replace("[^\n0-9]","",$phone_numbers); + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); -### Y or N ONLY ### -$active = ereg_replace("[^NY]","",$active); -$allow_closers = ereg_replace("[^NY]","",$allow_closers); -$reset_hopper = ereg_replace("[^NY]","",$reset_hopper); -$amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); -$alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); -$selectable = ereg_replace("[^NY]","",$selectable); -$reset_list = ereg_replace("[^NY]","",$reset_list); -$fronter_display = ereg_replace("[^NY]","",$fronter_display); -$use_internal_dnc = ereg_replace("[^NY]","",$use_internal_dnc); -$use_campaign_dnc = ereg_replace("[^NY]","",$use_campaign_dnc); -$omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); -$available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); -$sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); -$vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); -$vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); -$campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); -$disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); -$no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); -$human_answered = ereg_replace("[^NY]","",$human_answered); -$tovdad_display = ereg_replace("[^NY]","",$tovdad_display); -$campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); -$disable_alter_custphone = ereg_replace("[^NY]","",$disable_alter_custphone); -$display_queue_count = ereg_replace("[^NY]","",$display_queue_count); -$qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); -$sale_category = ereg_replace("[^NY]","",$sale_category); -$dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); -$agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); -$play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); -$play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); -$no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); -$did_active = ereg_replace("[^NY]","",$did_active); -$active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); -$generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); -$rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); -$agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); -$qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + ### Y or N ONLY ### + $allow_closers = ereg_replace("[^NY]","",$allow_closers); + $reset_hopper = ereg_replace("[^NY]","",$reset_hopper); + $amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); + $alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); -### ALPHA-NUMERIC ONLY ### -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); -$submit = ereg_replace("[^0-9a-zA-Z]","",$submit); -$campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); -$get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); -$campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); -$ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); -$dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); -$state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); -$scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); -$concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); -$billable = ereg_replace("[^0-9a-zA-Z]","",$billable); -$pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); -$vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); -$ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); -$queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); -$after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); -$after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); -$qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); -$code = ereg_replace("[^0-9a-zA-Z]","",$code); -$survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); -$survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); -$qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); -$agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); -$three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); -$shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); -$agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); + $get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); + $campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); + $ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); + $dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); + $state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); -### DIGITS and Dots -$server_ip = ereg_replace("[^\.0-9]","",$server_ip); -$auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); -$adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); -$phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); -$old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); -$computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); -$queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); -$vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); -### ALPHA-NUMERIC and spaces and hash and star and comma -$xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); -$xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); -### ALPHACAPS-NUMERIC -$xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); -$xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); -### ALPHA-NUMERIC and underscore and dash -$agi_output = ereg_replace("[^-\_0-9a-zA-Z]","",$agi_output); -$ASTmgrSECRET = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrSECRET); -$ASTmgrUSERNAME = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAME); -$ASTmgrUSERNAMElisten = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); -$ASTmgrUSERNAMEsend = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); -$ASTmgrUSERNAMEupdate = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); -$call_time_id = ereg_replace("[^-\_0-9a-zA-Z]","",$call_time_id); -$campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); -$CoNfIrM = ereg_replace("[^-\_0-9a-zA-Z]","",$CoNfIrM); -$DBX_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_database); -$DBX_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_pass); -$DBX_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_user); -$DBY_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_database); -$DBY_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_pass); -$DBY_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_user); -$dial_method = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_method); -$dial_status_a = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_a); -$dial_status_b = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_b); -$dial_status_c = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_c); -$dial_status_d = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_d); -$dial_status_e = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_e); -$ext_context = ereg_replace("[^-\_0-9a-zA-Z]","",$ext_context); -$group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_id); -$lead_filter_id = ereg_replace("[^-\_0-9a-zA-Z]","",$lead_filter_id); -$local_call_time = ereg_replace("[^-\_0-9a-zA-Z]","",$local_call_time); -$login = ereg_replace("[^-\_0-9a-zA-Z]","",$login); -$login_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$login_campaign); -$login_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$login_pass); -$login_user = ereg_replace("[^-\_0-9a-zA-Z]","",$login_user); -$next_agent_call = ereg_replace("[^-\_0-9a-zA-Z]","",$next_agent_call); -$old_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_campaign_id); -$old_server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_server_id); -$OLDuser_group = ereg_replace("[^-\_0-9a-zA-Z]","",$OLDuser_group); -$park_file_name = ereg_replace("[^-\_0-9a-zA-Z]","",$park_file_name); -$pass = ereg_replace("[^-\_0-9a-zA-Z]","",$pass); -$phone_login = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_login); -$phone_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_pass); -$PHP_AUTH_PW = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_PW); -$PHP_AUTH_USER = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_USER); -$protocol = ereg_replace("[^-\_0-9a-zA-Z]","",$protocol); -$server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$server_id); -$stage = ereg_replace("[^-\_0-9a-zA-Z]","",$stage); -$state_rule = ereg_replace("[^-\_0-9a-zA-Z]","",$state_rule); -$status = ereg_replace("[^-\_0-9a-zA-Z]","",$status); -$trunk_restriction = ereg_replace("[^-\_0-9a-zA-Z]","",$trunk_restriction); -$user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); -$user_group = ereg_replace("[^-\_0-9a-zA-Z]","",$user_group); -$VICIDIAL_park_on_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); -$auto_alt_dial = ereg_replace("[^-\_0-9a-zA-Z]","",$auto_alt_dial); -$dial_status = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status); -$queuemetrics_eq_prepend = ereg_replace("[^-\_0-9a-zA-Z]","",$queuemetrics_eq_prepend); -$vicidial_agent_disable = ereg_replace("[^-\_0-9a-zA-Z]","",$vicidial_agent_disable); -$alter_custdata_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custdata_override); -$list_order_mix = ereg_replace("[^-\_0-9a-zA-Z]","",$list_order_mix); -$vcl_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vcl_id); -$mix_method = ereg_replace("[^-\_0-9a-zA-Z]","",$mix_method); -$category = ereg_replace("[^-\_0-9a-zA-Z]","",$category); -$vsc_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vsc_id); -$moh_context = ereg_replace("[^-\_0-9a-zA-Z]","",$moh_context); -$agent_alert_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_alert_exten); -$source_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_campaign_id); -$source_user_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_user_id); -$source_group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_group_id); -$default_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$default_xfer_group); -$drop_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_exten); -$safe_harbor_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$safe_harbor_exten); -$drop_action = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_action); -$drop_inbound_group = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_inbound_group); -$afterhours_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$afterhours_xfer_group); -$after_hours_action = ereg_replace("[^-\_0-9a-zA-Z]","",$after_hours_action); -$alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$alias_id); -$shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$shift_id); -$qc_shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$qc_shift_id); -$survey_first_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_first_audio_file); -$survey_opt_in_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_opt_in_audio_file); -$survey_ni_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_ni_audio_file); -$survey_method = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_method); -$alter_custphone_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custphone_override); -$manual_dial_filter = ereg_replace("[^-\_0-9a-zA-Z]","",$manual_dial_filter); -$agent_clipboard_copy = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_clipboard_copy); -$hold_time_option = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option); -$hold_time_option_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_xfer_group); -$hold_recall_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_recall_xfer_group); -$play_welcome_message = ereg_replace("[^-\_0-9a-zA-Z]","",$play_welcome_message); -$did_route = ereg_replace("[^-\_0-9a-zA-Z]","",$did_route); -$user_unavailable_action = ereg_replace("[^-\_0-9a-zA-Z]","",$user_unavailable_action); -$user_route_settings_ingroup = ereg_replace("[^-\_0-9a-zA-Z]","",$user_route_settings_ingroup); -$call_handle_method = ereg_replace("[^-\_0-9a-zA-Z]","",$call_handle_method); -$agent_search_method = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_search_method); -$hold_time_option_voicemail = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_voicemail); -$hold_time_option_callback_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_callback_filename); -$exten_context = ereg_replace("[^-\_0-9a-zA-Z]","",$exten_context); -$three_way_call_cid = ereg_replace("[^-\_0-9a-zA-Z]","",$three_way_call_cid); -$web_form_target = ereg_replace("[^-\_0-9a-zA-Z]","",$web_form_target); -$recording_web_link = ereg_replace("[^-\_0-9a-zA-Z]","",$recording_web_link); -$vtiger_search_category = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_search_category); -$vtiger_create_call_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_call_record); -$vtiger_create_lead_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_lead_record); -$vtiger_screen_login = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_screen_login); -$cpd_amd_action = ereg_replace("[^-\_0-9a-zA-Z]","",$cpd_amd_action); -$template_id = ereg_replace("[^-\_0-9a-zA-Z]","",$template_id); -$carrier_id = ereg_replace("[^-\_0-9a-zA-Z]","",$carrier_id); -$group_alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_alias_id); -$default_group_alias = ereg_replace("[^-\_0-9a-zA-Z]","",$default_group_alias); + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); -### ALPHA-NUMERIC and underscore and dash and comma -$logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); -$forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); -### ALPHA-NUMERIC and spaces -$lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); -### ALPHA-NUMERIC and hash -$group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); -### ALPHA-NUMERIC and hash and star and dot and underscore -$hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); -$did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); -$voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); -$phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); -$phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); -### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores -$adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); -$adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); -$asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); -$call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); -$call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); -$campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); -$campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); -$ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); -$company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); -$full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); -$fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); -$group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); -$HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); -$lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); -$lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); -$list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); -$local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); -$phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); -$picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); -$script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); -$script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); -$server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); -$status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); -$status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); -$wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); -$pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); -$campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); -$list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); -$vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); -$vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); -$vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); -$code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); -$alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); -$shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); -$did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); -$alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); -$template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); -$carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); -$group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); -$caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### ALPHA-NUMERIC and spaces + $lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); + ### ALPHA-NUMERIC and hash + $group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); + ### ALPHA-NUMERIC and hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); -### ALPHA-NUMERIC and underscore and dash and slash and at and dot -$call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); -$client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); -$DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); -$DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); -$dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); -$extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); -$install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); -$old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); -$telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); -$queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); -$queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); -$queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); -$after_hours_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$after_hours_message_filename); -$welcome_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$welcome_message_filename); -$onhold_prompt_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$onhold_prompt_filename); -$email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); -$vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); -$vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); -$vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); -### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon -$vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); -$vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); -### ALPHA-NUMERIC and underscore and dash and at and space and parantheses -$vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); -### remove semi-colons ### -$lead_filter_sql = ereg_replace(";","",$lead_filter_sql); -$list_mix_container = ereg_replace(";","",$list_mix_container); -$survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); -$survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); -$conf_override = ereg_replace(";","",$conf_override); -$template_contents = ereg_replace(";","",$template_contents); -$registration_string = ereg_replace(";","",$registration_string); -$account_entry = ereg_replace(";","",$account_entry); -$globals_string = ereg_replace(";","",$globals_string); -$dialplan_entry = ereg_replace(";","",$dialplan_entry); + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); -### VARIABLES TO BE mysql_real_escape_string ### -# $web_form_address -# $queuemetrics_url -# $admin_home_url -# $qc_web_form_address -# $vtiger_url + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); -### VARIABLES not filtered at all ### -# $script_text + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } -} # end of non_latin ##### END VARIABLE FILTERING FOR SECURITY ##### -# AST GUI database administration +# ViciDial database administration # admin.php # # CHANGELOG: @@ -1644,12 +1980,74 @@ $dialplan_entry = ereg_replace(";","",$dialplan_entry); # 90308-0956 - Added server statistics # 90309-0059 - Changed logging to admin_server_log # 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 # 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.0.5-173'; -$build = '90320-0424'; +$admin_version = '2.2.0-233'; +$build = '100104-1454'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -1664,29 +2062,50 @@ $past_month_date = date("Y-m-d H:i:s",$month_old); $week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); $past_week_date = date("Y-m-d H:i:s",$week_old); +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Usted ahora ha salido. Gracias\n"; + exit; } - echo "Usted ahora ha salido. Gracias\n"; - exit; -} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin FROM system_settings;"; +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -1705,21 +2124,20 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT * from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGfull_name =$row[3]; @@ -1754,11 +2172,12 @@ $browser = getenv("HTTP_USER_AGENT"); $LOGdelete_dids =$row[57]; $LOGmanager_shift_enforcement_override=$row[61]; $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - $LOGallowed_campaigns =$row[0]; + $LOGallowed_campaigns = $row[0]; if ($WeBRooTWritablE > 0) { @@ -1787,7 +2206,7 @@ header ("Content-type: text/html; charset=utf-8"); echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL ADMIN: "; +echo "<title>ADMINISTRATION: "; if (!isset($ADD)) {$ADD=0;} @@ -1801,6 +2220,8 @@ if ($ADD==1111) {$hh='ingroups'; echo "Añadir un Grupo-Entrantes";} if ($ADD==1211) {$hh='ingroups'; echo "En-Grupo Del Copy";} if ($ADD==1311) {$hh='ingroups'; echo "Agregar nuevoDID";} if ($ADD==1411) {$hh='ingroups'; echo "CopiarDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Añadir Call Menú";} +if ($ADD==1611) {$hh='ingroups'; echo "Copia de llamadas Menú";} if ($ADD==11111) {$hh='remoteagent'; echo "Añadir Agentes Remotos";} if ($ADD==111111) {$hh='usergroups'; echo "Añadir un Grupo De Usuarios";} if ($ADD==1111111) {$hh='scripts'; echo "Agregue La Nueva Escritura";} @@ -1814,6 +2235,9 @@ if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "Añadir NUEVO GRUPO DE if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "NUEVO SERVIDOR";} if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "Añadir CONF NUEVA PLANTILLA";} if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "Añadir nueva compañía";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW TTS ENTRADA";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC EN ESPERA DE ENTRADA";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW contestador";} if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "NUEVA CONFERENCIA";} if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} if ($ADD=='2') {$hh='users'; echo "Nueva Adición De Usuario";} @@ -1832,6 +2256,8 @@ if ($ADD==2111) {$hh='ingroups'; echo "Nueva Adición Del Grupo de Entrantes"; if ($ADD==2011) {$hh='ingroups'; echo "Nueva Adicin Copiada Del En-Grupo";} if ($ADD==2311) {$hh='ingroups'; echo "Nueva DID adjunta";} if ($ADD==2411) {$hh='ingroups'; echo "Nueva copiado DID adjunta";} +if ($ADD==2511) {$hh='ingroups'; echo "Nueva llamada del menú";} +if ($ADD==2611) {$hh='ingroups'; echo "Nueva llamada del menú";} if ($ADD==21111) {$hh='remoteagent'; echo "Nueva Adición de Agentes Remotos";} if ($ADD==211111) {$hh='usergroups'; echo "Nueva Adición Del Grupo De Usuarios";} if ($ADD==2111111) {$hh='scripts'; echo "Nueva Adición De la Escritura";} @@ -1846,6 +2272,9 @@ if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "CREANDO SERVIDOR";} if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ADICIÓN DEL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "AGREGAR NUEVO CONF PLANTILLA";} if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "AGREGAR NUEVOS SOPORTES";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "AGREGAR NUEVO TTS ENTRADA";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "ADDING NEW MUSIC EN ESPERA DE ENTRADA";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "AGREGAR NUEVO contestador";} if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "CREANDO CONFERENCIA";} if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ADICIÓN DE ESTADOS DE SISTEMA DE VICIDIAL";} @@ -1854,29 +2283,29 @@ if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "AGREGANDO VICIDIAL if ($ADD==3) {$hh='users'; echo "Modificar Usuario";} if ($ADD==30) {$hh='campaigns'; echo "Campaña No permitida";} if ($ADD==31) - { - $hh='campaigns'; $sh='detail'; echo "Modifcar Campaña - Detalle - $campaign_id"; - if ($SUB==22) {echo " - Estados";} - if ($SUB==23) {echo " - Teclas rápidas";} - if ($SUB==25) {echo " -El Plomo ReciclaEntries";} - if ($SUB==26) {echo " - Auto Alt telefónico Estados";} - if ($SUB==27) {echo " - Agent Pausa Códigos";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Mezcla listaes";} - if ($SUB=='20A') {echo " - Encuesta";} - } + { + $hh='campaigns'; $sh='detail'; echo "Modifcar Campaña - Detalle - $campaign_id"; + if ($SUB==22) {echo " - Estados";} + if ($SUB==23) {echo " - Teclas rápidas";} + if ($SUB==25) {echo " -El Plomo ReciclaEntries";} + if ($SUB==26) {echo " - Auto Alt telefónico Estados";} + if ($SUB==27) {echo " - Agent Pausa Códigos";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Mezcla listaes";} + if ($SUB=='20A') {echo " - Encuesta";} + } if ($ADD==34) - { - $hh='campaigns'; $sh='basic'; echo "Modificar Campaña - Vista Básica - $campaign_id"; - if ($SUB==22) {echo " - Estados";} - if ($SUB==23) {echo " - Teclas rápidas";} - if ($SUB==25) {echo " -El Plomo ReciclaEntries";} - if ($SUB==26) {echo " - Auto Alt telefónico Estados";} - if ($SUB==27) {echo " - Agent Pausa Códigos";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Mezcla listaes";} - if ($SUB=='20A') {echo " - Encuesta";} - } + { + $hh='campaigns'; $sh='basic'; echo "Modificar Campaña - Vista Básica - $campaign_id"; + if ($SUB==22) {echo " - Estados";} + if ($SUB==23) {echo " - Teclas rápidas";} + if ($SUB==25) {echo " -El Plomo ReciclaEntries";} + if ($SUB==26) {echo " - Auto Alt telefónico Estados";} + if ($SUB==27) {echo " - Agent Pausa Códigos";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Mezcla listaes";} + if ($SUB=='20A') {echo " - Encuesta";} + } if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Estados De la Campaña";} if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Campaña Teclas rápidas";} if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "El Plomo De la Campaña Recicla Entradas";} @@ -1887,6 +2316,7 @@ if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Mezclas De la Lista De la if ($ADD==311) {$hh='lists'; echo "Modificar Lista";} if ($ADD==3111) {$hh='ingroups'; echo "Modificar In-Group";} if ($ADD==3311) {$hh='ingroups'; echo "ModificarDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Modificar Call Menú";} if ($ADD==31111) {$hh='remoteagent'; echo "Modificar Agentes Remotos";} if ($ADD==311111) {$hh='usergroups'; echo "Modificar Grupos De Usuarios";} if ($ADD==3111111) {$hh='scripts'; echo "Modifique La Escritura";} @@ -1901,6 +2331,9 @@ if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR GRUPO ALIAS"; if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR";} if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFICAR CONF PLANTILLA";} if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICAR PORTEADOR";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFICAR TTS ENTRADA";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFICAR MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFICAR contestador";} if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL";} @@ -1922,6 +2355,7 @@ if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Modificar la campaña En if ($ADD==411) {$hh='lists'; echo "Modificar Lista";} if ($ADD==4111) {$hh='ingroups'; echo "Modificar In-Group";} if ($ADD==4311) {$hh='ingroups'; echo "ModificarDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Modificar Call Menú";} if ($ADD==41111) {$hh='remoteagent'; echo "Modificar Agentes Remotos";} if ($ADD==411111) {$hh='usergroups'; echo "Modificar Grupos De Usuarios";} if ($ADD==4111111) {$hh='scripts'; echo "Modifique La Escritura";} @@ -1936,6 +2370,9 @@ if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR" if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "MODIFIQUE EL EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFICAR CONF PLANTILLA";} if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICAR PORTEADOR";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFICAR TTS ENTRADA";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFICAR MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFICAR contestador";} if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL";} @@ -1949,6 +2386,7 @@ if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Claro Del Atasco De la Eme if ($ADD==511) {$hh='lists'; echo "BorrarList";} if ($ADD==5111) {$hh='ingroups'; echo "BorrarIn-Group";} if ($ADD==5311) {$hh='ingroups'; echo "BorrarDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Eliminar del menú de llamadas";} if ($ADD==51111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} if ($ADD==511111) {$hh='usergroups'; echo "Usuarios de la cancelación Group";} if ($ADD==5111111) {$hh='scripts'; echo "Escritura De la Cancelación";} @@ -1962,6 +2400,9 @@ if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "Eliminar grupo ALIAS";} if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "ELIMINAR CONF PLANTILLA";} if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "ELIMINAR PORTEADOR";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRADA";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE contestador";} if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==6) {$hh='users'; echo "BorrarUsuario";} @@ -1976,6 +2417,7 @@ if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "La Mezcla De la Lista De if ($ADD==611) {$hh='lists'; echo "BorrarList";} if ($ADD==6111) {$hh='ingroups'; echo "BorrarIn-Group";} if ($ADD==6311) {$hh='ingroups'; echo "BorrarDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Eliminar del menú de llamadas";} if ($ADD==61111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} if ($ADD==611111) {$hh='usergroups'; echo "Usuarios de la cancelación Group";} if ($ADD==6111111) {$hh='scripts'; echo "Escritura De la Cancelación";} @@ -1988,8 +2430,11 @@ if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "ELIMINAR TELÉFONO ALIA if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "Eliminar grupo ALIAS";} if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL DE LA CANCELACIÓN";} -if ($ADD==621111111111) {$hh='admin'; $sh='templates'; echo "ELIMINAR CONF PLANTILLA";} -if ($ADD==621111111111) {$hh='admin'; $sh='carriers'; echo "ELIMINAR PORTEADOR";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "ELIMINAR CONF PLANTILLA";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "ELIMINAR PORTEADOR";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRADA";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE contestador";} if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==73) {$hh='campaigns'; echo "Cuenta Del Plomo De Dialable";} @@ -2007,6 +2452,7 @@ if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Campañas";} if ($ADD==100) {$hh='lists'; echo "Listas";} if ($ADD==1000) {$hh='ingroups'; echo "In-Groups";} if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Llame a los menús";} if ($ADD==10000) {$hh='remoteagent'; echo "Agentes Remotos";} if ($ADD==100000) {$hh='usergroups'; echo "Grupos De Usuario";} if ($ADD==1000000) {$hh='scripts'; echo "Escrituras";} @@ -2020,6 +2466,9 @@ if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GRUPO DE ALIAS LISTA";} if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "LISTA DE SERVIDORES";} if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF lista de plantillas";} if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "LISTA DE TRANSPORTISTA";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS LISTA INSCRITOS";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "MÚSICA EN ESPERA LISTA DE ENTRADA";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "LISTA DE CORREO DE VOZ CAJAS";} if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "LISTA DE CONFERENCIAS";} if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL LISTA DE CONFERENCIAS";} if ($ADD==550) {$hh='users'; echo "Formulario De Búsqueda";} @@ -2216,53 +2665,53 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### BEGIN get inbound groups listing for checkboxes ##### $xfer_groupsSQL=''; if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) - { - $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - $xfer_groups = $row[1]; - $xfer_groups = preg_replace("/ -$/","",$xfer_groups); - $XFERgroups = explode(" ", $xfer_groups); - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } - if ($ADD==41) - { - $p=0; - $XFERgroup_ct = count($XFERgroups); - while ($p < $XFERgroup_ct) { - $xfer_groups .= " $XFERgroups[$p]"; - $p++; + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; } - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } if ($ADD==3) - { - $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; # $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; @@ -2390,10 +2839,10 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get inbound groups listing for checkboxes ##### - ##### BEGIN get campaigns listing for checkboxes ##### - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) { - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) { $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -2415,26 +2864,26 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; $qc_groups_value=''; $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; - $p=0; - while ($p<100) + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) { - if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) - { - $campaigns_list.=" CHECKED"; - $campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) - { - $qc_campaigns_list.=" CHECKED"; - $qc_campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-GROUPS',$qc_groups[$p])) - { - $qc_groups_list.=" CHECKED"; - $qc_groups_value .= " -ALL-GROUPS- -"; - } - $p++; + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } $campaigns_list.="> ALL-CAMPAIGNS - LOS USUARIOS PUEDEN VISIÓN CUALQUIER CAMPAÑA</B><BR>\n"; $qc_campaigns_list.="> ALL-CAMPAIGNS - USUARIOS PUEDEN CC CUALQUIER CAMPAÑA</B><BR>\n"; $qc_groups_list.="> ALL-GROUPS - USUARIOS PUEDEN CC entrantes CUALQUIER GRUPO</B><BR>\n"; @@ -2452,9 +2901,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; $p=0; - while ($p<100) + while ($p<1000) { - if ($campaign_id_value == $campaigns[$p]) + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) { # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; $campaigns_list .= " CHECKED"; @@ -2485,9 +2934,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $group_name_value = $rowx[1]; $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; $p=0; - while ($p<100) + while ($p<2000) { - if ($group_id_value == $qc_groups[$p]) + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) { $qc_groups_list .= " CHECKED"; $qc_groups_value .= " $group_id_value"; @@ -2505,7 +2954,7 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get campaigns listing for checkboxes ##### - if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) { ##### get server listing for dynamic pulldown $stmt="SELECT server_ip,server_description from servers order by server_ip"; @@ -2540,1360 +2989,1452 @@ $NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"AYUDA\" ALI ###################### if ($ADD==99999) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "
VICIDIAL ADMIN: AYUDA


\n"; - -?> -VICIDIAL_USUARIOS TABLA

- -
-Identificación del usuario - este campo es donde usted pone el número de la identificación del usuario de VICIDIAL, puede ser hasta 8 dígitos en longitud, debe ser por lo menos 2 caracteres en longitud. - -
-
-
-Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. - -
-
-
-Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. - -
-
-
-Nivel de usuario - este menú es donde usted selecciona el nivel de usuario de los usuarios de VICIDIAL. Debe ser un nivel de 1 a registrar en VICIDIAL, debe ser llano mayor de 2 a abrirse una sesión como más cercano, deben ser el nivel de usuario 8 o mayor conseguir en la sección de la tela del admin. - -
-
-
-Grupo de usuario - este menú es donde usted selecciona a grupo de usuarios de VICIDIAL que este usuario pertenecerá a. Esto no tiene ninguna restricciones en este tiempo, éste es justo subdividir a usuarios y permitir las características futuras basadas sobre él. - -
-
-
-Conexión del teléfono - aquí es para donde usted puede fijar un valor de la conexión del teléfono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará el phone_login automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexión de vicidial.php. - -
-
-
-Paso del teléfono - aquí es para donde usted puede fijar un valor del paso del teléfono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará los phone_pass automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexión de vicidial.php. - -
-
-
-Activo - Este campo define si el usuario está activo en el sistema y puede utilizar VICIDIAL recursos. Y es por defecto - -
-
-
-Hot Keys activo - esta opción si el sistema a 1 permite que el usuario utilice la función ra'pida-dispositioning de Hot Keys adentro vicidial.php. - -
-
-
-El agente elige Ingroups - esta opción si el sistema a 1 permite que el usuario elija los ingroups de los cuales recibirán llamadas cuando ellos conexión a una campaña MÁS CERCANA o DE ENTRADA. Si no el encargado necesitará fijar esto en su pantalla del detalle del usuario de la página del admin. - -
-
-
-Servicios repetidos programar - esta opción no prohibe a agente a la disposición una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado. - -
-
-
-Servicios repetidos del Agente-Solamente - esta opción permite que un agente fije un servicio repetido de modo que sean el único agente que puede llamar la parte posteriora del cliente. Esto también permite que el agente vea sus listados del servicio repetido y los llame detrás cualquier momento desean a. - -
-
-
-Manual de la llamada del agente - esta opción permite que un agente incorpore manualmente un nuevo plomo en el sistema y los llame. Esto también permite llamar de cualquier número de teléfono de su pantalla vicidial y pone esa llamada en su sesión. Utilice esta opción con la precaución. - -
-
-
-Grabación de Vicidial - esta opción puede evitar que un agente haga cualquier grabación después de que se abran una sesión a vicidial. Esta opción debe estar encendido para que vicidial siga la sesión de la grabación de la campaña. - -
-
-
-Vicidial transfiere - esta opción puede evitar que un agente abra la transferencia - la sesión de la conferencia de vicidial. Si esto es lisiado, el agente no puede llamada de los terceros o la transferencia oculta cualquiera llama. - - 0) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: AYUDA


\n"; + ?> + VICIDIAL_USUARIOS TABLA

+
-
+ Identificación del usuario - este campo es donde usted pone el número de la identificación del usuario de VICIDIAL, puede ser hasta 8 dígitos en longitud, debe ser por lo menos 2 caracteres en longitud. +
- Un defecto más cercano mezclado - esta opción omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexión. - +
+
+ Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. -
-
-
-Invalidación de la grabación de VICIDIAL - esta opción seeliminará lo que es la opción en la campaña para la grabación.LISIADO no eliminará el ajuste de la grabación de la campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. +
+
+
+ Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. -
-
-
-Agente de Cambio observancia Sobrescribir - Esta configuración anular cualquiera que sea el grupo de usuarios de los usuarios se ha fijado para Mayús Observancia. MINUSVALIDOS utilizará el grupo de usuarios de configuración. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. Desactivado por defecto. +
+
+
+ Nivel de usuario - este menú es donde usted selecciona el nivel de usuario de los usuarios de VICIDIAL. Debe ser un nivel de 1 a registrar en VICIDIAL, debe ser llano mayor de 2 a abrirse una sesión como más cercano, deben ser el nivel de usuario 8 o mayor conseguir en la sección de la tela del admin. -
-
-
-Alerta Activado - Este campo muestra si el agente tiene el navegador web habilitado para alertas cuando pide entrar en su período de sesiones vicidial.php. Por defecto es 0 para el NO. +
+
+
+ Grupo de usuario - este menú es donde usted selecciona a grupo de usuarios de VICIDIAL que este usuario pertenecerá a. Esto no tiene ninguna restricciones en este tiempo, éste es justo subdividir a usuarios y permitir las características futuras basadas sobre él. -
-
-
-La campaña alinea - en esta sección usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank. También en esta sección son la WEB VARs para cada campaña. Estas permiten a cada agente tiene una cadena de la variable que se puede agregar a la WEB DE GUIÓN ficha URL o simplemente poniendo - A - web_vars - B - como le pondría en cualquier otra esfera. +
+
+
+ Conexión del teléfono - aquí es para donde usted puede fijar un valor de la conexión del teléfono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará el phone_login automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexión de vicidial.php. -
-
-
-Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. Usted también podrá fijar la fila, o el nivel de habilidad, en estasección para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico. También en esta sección está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opción seselecciona en la pantalla del en-grupo. También en esta sección son la WEB VARs para cada campaña. Estas permiten a cada agente tiene una cadena de la variable que se puede agregar a la WEB DE GUIÓN ficha URL o simplemente poniendo - A - web_vars - B - como le pondría en cualquier otra esfera. +
+
+
+ Paso del teléfono - aquí es para donde usted puede fijar un valor del paso del teléfono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará los phone_pass automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexión de vicidial.php. -
-
-
-El agente altera la invalidación de los datos del cliente - estaopción se eliminará lo que es la opción en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa qué es elajuste de la campaña. El defecto es NOT_ACTIVE. +
+
+
+ Activo - Este campo define si el usuario está activo en el sistema y puede utilizar VICIDIAL recursos. Y es por defecto -
-
-
-Modificar Agente Cliente Teléfono Sobreescribe - Esta opción será el que la opción está en la campaña para modificar el número de teléfono del cliente. NOT_ACTIVE utilizará cualquier ajuste es para la presente campaña. ALLOW_ALTER siempre permiten el agente de alterar el número de teléfono del cliente, no importa lo que la campaña de ajuste. El valor predeterminado es NOT_ACTIVE. +
+
+
+ De correo electrónico, el código de usuario y Territorio - Estos son los campos opcionales. -
-
-
-Altere las opciones de interfaz del agente - esta opción si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php. +
+
+
+ Hot Keys activo - esta opción si el sistema a 1 permite que el usuario utilice la función ra'pida-dispositioning de Hot Keys adentro vicidial.php. -
-
-
-Usuarios de la cancelación - esta opción si el sistema a 1 permite que el usuario suprima a otros usuarios del igual o de poco nivel de usuario del sistema. +
+
+
+ El agente elige Ingroups - esta opción si el sistema a 1 permite que el usuario elija los ingroups de los cuales recibirán llamadas cuando ellos conexión a una campaña MÁS CERCANA o DE ENTRADA. Si no el encargado necesitará fijar esto en su pantalla del detalle del usuario de la página del admin. -
-
-
-Suprima a grupos de usuario - esta opción si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema. +
+
+
+ Agente Elija territorios - Esta opción si se establece en 1 permite al usuario elegir los territorios que van a recibir llamadas de los usuarios cuando ingresan a un manual o campaña Entrantes_MAN. De lo contrario el usuario será configurado para utilizar todos los territorios que se establecen a pertenecer a los territorios de usuario administrativos sección. -
-
-
-La cancelación enumera - esta opción si el sistema a 1 permite que el usuario suprima listas vicidial del sistema. +
+
+
+ Scheduled Callbacks - Esta opción permite que un agente a disposición de una llamada como CALLBK y elegir la fecha y hora en que el plomo se vuelva a activar. -
-
-
-La cancelación hace campaña - esta opción si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema. +
+
+
+ Servicios repetidos del Agente-Solamente - esta opción permite que un agente fije un servicio repetido de modo que sean el único agente que puede llamar la parte posteriora del cliente. Esto también permite que el agente vea sus listados del servicio repetido y los llame detrás cualquier momento desean a. -
-
-
-En-Grupos de la cancelación - esta opción si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema. +
+
+
+ Manual de la llamada del agente - esta opción permite que un agente incorpore manualmente un nuevo plomo en el sistema y los llame. Esto también permite llamar de cualquier número de teléfono de su pantalla vicidial y pone esa llamada en su sesión. Utilice esta opción con la precaución. -
-
-
-Suprima los agentes alejados - esta opción si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema. +
+
+
+ Grabación de Vicidial - esta opción puede evitar que un agente haga cualquier grabación después de que se abran una sesión a vicidial. Esta opción debe estar encendido para que vicidial siga la sesión de la grabación de la campaña. - 0) - { +
+
+
+ Vicidial transfiere - esta opción puede evitar que un agente abra la transferencia - la sesión de la conferencia de vicidial. Si esto es lisiado, el agente no puede llamada de los terceros o la transferencia oculta cualquiera llama. + + 0) + { + ?> +
+
+
+ Un defecto más cercano mezclado - esta opción omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexión. + +
-
+
- La carga conduce - esta opción si el sistema a 1 permite que el usuario cargue los plomos vicidial en la tabla del vicidial_list por el cargador basado tela del plomo. - + Invalidación de la grabación de VICIDIAL - esta opción seeliminará lo que es la opción en la campaña para la grabación.LISIADO no eliminará el ajuste de la grabación de la campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. -
-
-
-Detalle de la campaña - esta opción si el sistema a 1 permite que el usuario visión y modifique los elementos de la pantalla del detalle de la campaña. +
+
+
+ Agente de Cambio observancia Sobrescribir - Esta configuración anular cualquiera que sea el grupo de usuarios de los usuarios se ha fijado para Mayús Observancia. MINUSVALIDOS utilizará el grupo de usuarios de configuración. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. Desactivado por defecto. -
-
-
-Acceso de AGC Admin - esta opción si el sistema a 1 permite a usuario a la conexión a las páginas astGUIclient del admin. +
+
+
+ Alerta Activado - Este campo muestra si el agente tiene el navegador web habilitado para alertas cuando pide entrar en su período de sesiones vicidial.php. Por defecto es 0 para el NO. -
-
-
-La cancelación de AGC telefona - esta opción si el sistema a 1 permite que el usuario suprima entradas del teléfono en las páginas astGUIclient del admin. +
+
+
+ Permitir Alertas - Este campo le da la capacidad para permitir navegador agente de alertas para ser habilitado por el agente para cuando las llamadas entran en su período de sesiones vicidial.php. Por defecto es 0 para el NO. -
-
-
-Escrituras de la cancelación - esta opción si el sistema a 1 permite que el usuario suprima las escrituras de la campaña en la pantalla de la modificación de la escritura. +
+
+
+ La campaña alinea - en esta sección usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank. También en esta sección son la WEB VARs para cada campaña. Estas permiten a cada agente tiene una cadena de la variable que se puede agregar a la WEB DE GUIÓN ficha URL o simplemente poniendo - A - web_vars - B - como le pondría en cualquier otra esfera. -
-
-
-Modifique los plomos - esta opción si el sistema a 1 permite que el usuario modifique los plomos en la página de los resultados de la búsqueda del plomo de la sección del admin. +
+
+
+ Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. Usted también podrá fijar la fila, o el nivel de habilidad, en estasección para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico. También en esta sección está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opción seselecciona en la pantalla del en-grupo. También en esta sección son la WEB VARs para cada campaña. Estas permiten a cada agente tiene una cadena de la variable que se puede agregar a la WEB DE GUIÓN ficha URL o simplemente poniendo - A - web_vars - B - como le pondría en cualquier otra esfera. -
-
-
-Cambie la campaña del agente - esta opción si el sistema a 1 permite que el usuario altere la campaña que un agente está registrado en mientras que se registran en él. +
+
+
+ El agente altera la invalidación de los datos del cliente - estaopción se eliminará lo que es la opción en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa qué es elajuste de la campaña. El defecto es NOT_ACTIVE. - 0) - { +
+
+
+ Modificar Agente Cliente Teléfono Sobreescribe - Esta opción será el que la opción está en la campaña para modificar el número de teléfono del cliente. NOT_ACTIVE utilizará cualquier ajuste es para la presente campaña. ALLOW_ALTER siempre permiten el agente de alterar el número de teléfono del cliente, no importa lo que la campaña de ajuste. El valor predeterminado es NOT_ACTIVE. + +
+
+
+ Los campos de usuario personalizada - Estos cinco campos se puede utilizar para diversos fines, y que se puede rellenar en el formulario web y direcciones de secuencias de comandos como user_custom_one y así sucesivamente. + +
+
+
+ Altere las opciones de interfaz del agente - esta opción si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php. + +
+
+
+ Usuarios de la cancelación - esta opción si el sistema a 1 permite que el usuario suprima a otros usuarios del igual o de poco nivel de usuario del sistema. + +
+
+
+ Suprima a grupos de usuario - esta opción si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema. + +
+
+
+ La cancelación enumera - esta opción si el sistema a 1 permite que el usuario suprima listas vicidial del sistema. + +
+
+
+ La cancelación hace campaña - esta opción si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema. + +
+
+
+ En-Grupos de la cancelación - esta opción si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema. + +
+
+
+ Suprima los agentes alejados - esta opción si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema. + + 0) + { + ?> +
+
+
+ La carga conduce - esta opción si el sistema a 1 permite que el usuario cargue los plomos vicidial en la tabla del vicidial_list por el cargador basado tela del plomo. + +
-
+
- La cancelación se filtra - esta opción permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema. - + Detalle de la campaña - esta opción si el sistema a 1 permite que el usuario visión y modifique los elementos de la pantalla del detalle de la campaña. -
-
-
-Tiempos de la llamada de la cancelación - esta opción permite que elusuario pueda suprimir expedientes vicidial de los tiempos de lallamada y expedientes vicidial de los tiempos de la llamada del estadodel sistema. +
+
+
+ Acceso de AGC Admin - esta opción si el sistema a 1 permite a usuario a la conexión a las páginas astGUIclient del admin. -
-
-
-Modifique los tiempos de la llamada - esta opción permite que elusuario visión y modifique los expedientes de los tiempos de lallamada y de los tiempos de la llamada del estado. Un usuario nonecesita esta opción permitida si necesitan solamente cambiar laopción de los tiempos de la llamada en la pantalla de las campañas. +
+
+
+ La cancelación de AGC telefona - esta opción si el sistema a 1 permite que el usuario suprima entradas del teléfono en las páginas astGUIclient del admin. -
-
-
-Modifique las secciones - estas opciones permiten que el usuariovisión y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la sección, perono el detalle o la pantalla de la modificación de un expediente enesa sección. +
+
+
+ Escrituras de la cancelación - esta opción si el sistema a 1 permite que el usuario suprima las escrituras de la campaña en la pantalla de la modificación de la escritura. -
-
-
-La visión divulga - esta opción permite que el usuario visión losinformes de VICIDIAL. +
+
+
+ Modifique los plomos - esta opción si el sistema a 1 permite que el usuario modifique los plomos en la página de los resultados de la búsqueda del plomo de la sección del admin. - 0) - { +
+
+
+ Cambie la campaña del agente - esta opción si el sistema a 1 permite que el usuario altere la campaña que un agente está registrado en mientras que se registran en él. + + 0) + { + ?> +
+
+
+ La cancelación se filtra - esta opción permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema. + -
-
-
- CC Activado - Esta opción permite al usuario acceder a la pantalla de control de calidad de agente.
-
+
- Nivel de Usuario de CC - Este ajuste define lo que el agente de control de calidad de nivel de usuario es. Este dictará el nivel de funcionalidad para el agente en la sección de CC:
- 1 - Modificar Nada
- 2 - Modificar Nada Salvo Estado
- 3 - Modificar todos los campos
- 4 - Compruebe la primera ronda de CC
- 5 - Ver estadísticas de CC
- 6 - Capacidad para modificar los registros acabado
- 7 - Gestor de Nivel
+ Tiempos de la llamada de la cancelación - esta opción permite que elusuario pueda suprimir expedientes vicidial de los tiempos de lallamada y expedientes vicidial de los tiempos de la llamada del estadodel sistema.
-
+
- CC Actas Pass - Esta opción permite al agente para especificar que un registro ha pasado la primera ronda de control de calidad después de examinar el expediente. + Modifique los tiempos de la llamada - esta opción permite que elusuario visión y modifique los expedientes de los tiempos de lallamada y de los tiempos de la llamada del estado. Un usuario nonecesita esta opción permitida si necesitan solamente cambiar laopción de los tiempos de la llamada en la pantalla de las campañas.
-
+
- Registro de control de calidad en Finalizar - Esta opción permite al agente para especificar que un registro ha terminado la segunda ronda de control de calidad después de revisar el pasado registro. + Modifique las secciones - estas opciones permiten que el usuariovisión y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la sección, perono el detalle o la pantalla de la modificación de un expediente enesa sección.
-
+
- Registro de control de calidad Compro - Esta opción permite al agente para especificar que un registro se ha cometido en el control de la calidad. Ya no puede ser modificado por cualquiera. - + La visión divulga - esta opción permite que el usuario visión losinformes de VICIDIAL. -
-
-
-AñadirReloj de tiempo Registrarse Expediente - Esta opción permite al usuario añadir registros a la timeclock registro. + 0) + { + ?> +
+
+
+ CC Activado - Esta opción permite al usuario acceder a la pantalla de control de calidad de agente. -
-
-
-ModificarReloj de tiempo Registrarse Expediente - Esta opción permite al usuario modificar los registros en el registro timeclock. +
+
+
+ Nivel de Usuario de CC - Este ajuste define lo que el agente de control de calidad de nivel de usuario es. Este dictará el nivel de funcionalidad para el agente en la sección de CC:
+ 1 - Modificar Nada
+ 2 - Modificar Nada Salvo Estado
+ 3 - Modificar todos los campos
+ 4 - Compruebe la primera ronda de CC
+ 5 - Ver estadísticas de CC
+ 6 - Capacidad para modificar los registros acabado
+ 7 - Gestor de Nivel
-
-
-
-EliminarReloj de tiempo Registrarse Expediente - Esta opción permite al usuario borrar los registros en el registro timeclock. +
+
+
+ CC Actas Pass - Esta opción permite al agente para especificar que un registro ha pasado la primera ronda de control de calidad después de examinar el expediente. -
-
-
-Agente de acceso a la API - Esta opción permite que la cuenta que se utilizará con el agente de la API de comandos vicidial. +
+
+
+ Registro de control de calidad en Finalizar - Esta opción permite al agente para especificar que un registro ha terminado la segunda ronda de control de calidad después de revisar el pasado registro. -
-
-
-Gerente de Turno observancia Sobrescribir - Este ajuste, si se pone a 1 permitirá que un administrador de entrar en su usuario y contraseña en una pantalla de agente para anular las restricciones sobre el desplazamiento de un agente período de sesiones si el agente está intentando iniciar sesión fuera de su turno. El valor predeterminado es 0. - -
-
-
-Download Listas - Este ajuste, si se establece en 1 para permitir que un administrador haga clic en la lista de descargas en la parte inferior de la pantalla una lista de modificaciones a la exportación de todo el contenido de una lista a un archivo de datos plana. El valor predeterminado es 0. - -
-
-
-Informes de exportación - Este ajuste, si se pone a 1 permitirá un gerente de exportación para acceder a la llamada de los informes sobre la INFORMES pantalla. El valor predeterminado es 0. Pide para el Informe de Exportación, para el siguiente campo se utiliza para las exportaciones:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds - - - - - - -



- -VICIDIAL_CAMPAIGNS TABLA

-
-
-Identificación de la campaña - Úste es el nombre corto de la campaña, él no es editable después de la sumisión inicial, no puede contener espacios y debe estar entre 2 y 8 caracteres en longitudh. - -
-
-
-Nombre de la campaña - Ésta es la descripción de la campaña, debe estar entre 6 y 40 caracteres en longitud. - -
-
-
-Descripción de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud. - -
-
-
-Fecha del cambio de la campaña - ésta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera. - -
-
-
-La fecha pasada de la conexión de la campaña - ésta es la vezúltima que un agente fue registrado en esta campaña. - -
-
-
-Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva. - -
-
-
-Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en él. - -
-
-
-Extensión del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cerciórese de que la extensión esté en lugar en el extensions.conf y eso que señala al nombre de fichero abajo. - -
-
-
-Nombre del archivo del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cerciórese de que el nombre de fichero sea 10 caracteres en longitud o menos y que el archivo está en lugar en el directorio de /var/lib/asterisk/sounds. - -
-
-
-Forma del Web - aquí es donde usted puede fijar el Web page de encargo que será abierto cuando el usuario chasca encendido el botón de la FORMA del WEB. Para personalizar la cadena de la consulta después de que el formulario web, basta con iniciar el formulario web con VAR y, a continuación, la URL que desee utilizar, en sustitución de las variables con el nombre de las variables que desee utilizar - A - phone_number - B -- al igual que en la pestaña de la sección ESCRITURAS. - -
-
-
-Formulario Webs Meta- Este es donde usted puede establecer el marco de página web personalizada de la web de forma que se abrirá cuando el usuario hace clic en el botón formulario Web. El valor predeterminado es _blank. - -
-
-
-Permita Closers - aquí es donde usted puede fijar si los usuarios de esta campaña tendrán la opción para enviar la llamada a un más cercano. - -
-
-
-Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. - -
-
-
-Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opción demuestre para arriba. - - 0) - { +
+
+
+ Registro de control de calidad Compro - Esta opción permite al agente para especificar que un registro se ha cometido en el control de la calidad. Ya no puede ser modificado por cualquiera. + -
-
-
- Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opción para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijó esto a N.Default es N.
-
+
- Estado del dial - aquí es adonde usted fija los estados que usted está deseando marcar encendido dentro de las listas que son activas para la campaña abajo. Para agregar otro estado al dial, selecciónelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar. + AñadirReloj de tiempo Registrarse Expediente - Esta opción permite al usuario añadir registros a la timeclock registro.
-
+
- Orden de la lista - Este menú es donde usted selecciona cómo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo: -
  - DOWN: seleccione los primeros plomos cargados en la tabla del vicidial_list -
  - UP: seleccione los plomos pasados cargados en la tabla del vicidial_list -
  - UP PHONE: seleccione el número y los trabajos más altos de teléfono su manera abajo -
  - DOWN PHONE: seleccione el número y los trabajos más bajos de teléfono su manera para arriba -
  - UP LAST NAME: comienzo con los nombres pasados comenzando con Z y trabajos su manera abajo -
  - DOWN LAST NAME: comienzo con los nombres pasados comenzando con A y trabajos su manera para arriba -
  - UP COUNT: comienzo con los plomos y los trabajos llamados su manera abajo -
  - DOWN COUNT: comienzo con menos plomos y trabajos llamados su manera para arriba -
  - DOWN COUNT 2nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada otro lead(Must para no tener NEW seleccionado en los estados del dial) -
  - DOWN COUNT 3nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada tercer lead(Must para no tener NEW seleccionado en los estados del dial) -
  - DOWN COUNT 4th NEW: comienzo con menos plomos y trabajos llamados que su manera para arriba que inserta un NEW plomo en cada adelante conduzca (no debe tener NEW seleccionado en los estados del dial) + ModificarReloj de tiempo Registrarse Expediente - Esta opción permite al usuario modificar los registros en el registro timeclock.
-
+
- Tolva llana - éste es cuántos conducen los intentos de la escritura de VDhopper para mantener la tabla del vicidial_hopper para esta campaña. Si funciona la escritura de VDhopper cada minuto, haga esto levemente mayor que el número de plomos que usted entra a través en un minuto. + EliminarReloj de tiempo Registrarse Expediente - Esta opción permite al usuario borrar los registros en el registro timeclock.
-
+
- Filtro del plomo - éste es un método de filtrar sus plomos usando un fragmento de una pregunta del SQL. Utilice esta característica con la precaución, él es fácil de parar el marcar accidentalmente con la alteración más leve a la declaración del SQL. El defecto no es NINGUNO. + Agente de acceso a la API - Esta opción permite que la cuenta que se utilizará con el agente de la API de comandos vicidial.
-
+
- Reajuste de la fuerza de la tolva - esto permite que usted limpie fuera del contenido de la tolva sobre la sumisión de la forma. Debe ser llenada otra vez cuando la escritura de VDhopper funciona. + Gerente de Turno observancia Sobrescribir - Este ajuste, si se pone a 1 permitirá que un administrador de entrar en su usuario y contraseña en una pantalla de agente para anular las restricciones sobre el desplazamiento de un agente período de sesiones si el agente está intentando iniciar sesión fuera de su turno. El valor predeterminado es 0.
-
+
- Método del dial - Este campo es la manera de definir cómo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el método del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y después no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos métodos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los métodos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profético. Entrantes_MAN permite que el agente de marcación manual de lugar a las llamadas de una campaña de la lista, mientras que ser capaz de tomar las llamadas entrantes entre marcación manual de llamadas. + Download Listas - Este ajuste, si se establece en 1 para permitir que un administrador haga clic en la lista de descargas en la parte inferior de la pantalla una lista de modificaciones a la exportación de todo el contenido de una lista a un archivo de datos plana. El valor predeterminado es 0.
-
+
- Nivel auto del dial - aquí es adonde usted fija cuántos alinea VICIDIAL debe utilizar por medios del agente activo cero 0 que el marcar del automóvil está apagado y los agentes chascarán para marcar cada número. Si no VICIDIAL mantendrá líneas que marcan iguales a los agentes activos multiplicados por el nivel del dial para llegar cuántas líneas debe permitir esta campaña en cada servidor. El checkbox de la INVALIDACIÓN del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el método del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente. + Informes de exportación - Este ajuste, si se pone a 1 permitirá un gerente de exportación para acceder a la llamada de los informes sobre la INFORMES pantalla. El valor predeterminado es 0. Pide para el Informe de Exportación, para el siguiente campo se utiliza para las exportaciones:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner
-
+
- Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N. + Eliminar de las listas de DNC - Este ajuste, si se establece en 1 permitirá a un administrador para quitar los números de teléfono de las listas de DNC en el sistema de Vicidial. + + + + + + +



+ + VICIDIAL_CAMPAIGNS TABLA

+
+
+ Identificación de la campaña - Úste es el nombre corto de la campaña, él no es editable después de la sumisión inicial, no puede contener espacios y debe estar entre 2 y 8 caracteres en longitudh.
-
+
- Límite del porcentaje de la gota - este campo es donde usted fijó ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un método adaptante-profe'tico del dial, NO MANUAL o delCOCIENTE. + Nombre de la campaña - Ésta es la descripción de la campaña, debe estar entre 6 y 40 caracteres en longitud.
-
+
- El máximo adapta el dial llano - este campo es donde usted fijó ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un método adaptante-profe'tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales. + Descripción de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud.
-
+
- El tiempo más último del servidor - este campo es utilizadosolamente por el método del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a cómo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado. + Fecha del cambio de la campaña - ésta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera.
-
+
- Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profética más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los métodos del dial del MANUALo del COCIENTE. + La fecha pasada de la conexión de la campaña - ésta es la vezúltima que un agente fue registrado en esta campaña.
-
+
- Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los métodos del dial del MANUAL o del COCIENTE. + Última fecha de convocatoria de la Campaña - Esta es la última vez que una llamada fue manejado por un agente registrado en esta campaña.
-
+
- Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMÓVIL. Este campo no es utilizado por el método MANUAL del dial. + Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva.
-
+
- Cola de prioridad - Este valor se utiliza para definir el orden en que las llamadas salientes de esta campaña debe responderse en relación con las llamadas entrantes si esta campaña está en el modo de mezcla. + Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en él.
-
+
- Alt-Nu'mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA métodos del dial cuando no hay contacto en elnúmero de teléfono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el métodoMANUAL del dial. PRORROGADO suplentes números son números cargados en el sistema fuera de la pantalla de información estándar. PRORROGADO utilizando usted puede tener cientos de números de teléfono de un solo registro de cliente. + Extensión del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cerciórese de que la extensión esté en lugar en el extensions.conf y eso que señala al nombre de fichero abajo.
-
+
- Descanso del dial - si está definido, llamadas que normalmente retraso después de que el descanso definido en extensions.conf en lugar de otro descanso en esta cantidad de segundos si es menos que el descanso de extensions.conf. Esto permite descansos del dial rápidamente que cambian del servidor al servidor y a limitar los efectos a una sola campaña. Si usted está teniendo muchos de llamadas del contestador automático o de Buzón de Voz usted puede desear intentar cambiar este valor entre a 21-26 y ver si los resultados mejoran. + Nombre del archivo del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cerciórese de que el nombre de fichero sea 10 caracteres en longitud o menos y que el archivo está en lugar en el directorio de /var/lib/asterisk/sounds.
-
+
- Campaña de extensión VDAD - Este campo permite una transferencia personalizada VDAD extensión. Esto le permite utilizar diferentes métodos de gestión de llamadas en función de su campaña. -- 8364 - 8368 misma que -- 8365 - Se envía la llamada a un sólo agente en el mismo servidor que la llamada está en -- 8366 - Utilizado para la prensa-1 y las campañas de estudio -- 8367 - ¿Se tratará de enviar la primera llamada a un agente en el servidor local, entonces se verá en otros servidores - - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on -- 8369 - Se utiliza para Contestador automático de detección después de que, el mismo comportamiento como 8368 -- 8373 - Se utiliza para Contestador automático de detección después de que el mismo comportamiento de 8366 + Forma del Web - aquí es donde usted puede fijar el Web page de encargo que será abierto cuando el usuario chasca encendido el botón de la FORMA del WEB. Para personalizar la cadena de la consulta después de que el formulario web, basta con iniciar el formulario web con VAR y, a continuación, la URL que desee utilizar, en sustitución de las variables con el nombre de las variables que desee utilizar - A - phone_number - B -- al igual que en la pestaña de la sección ESCRITURAS.
-
+
- Mensaje del contestador automático - este campo está para entrar en una extensión para cegar llamadas de la transferencia a cuando el agente consigue un contestador automático y chasca encendido el botón del mensaje del contestador automático en el marco de la conferencia de la transferencia. Usted debe fijar esto exten para arriba en el dial plan - extensions.conf - y se cerciora de que juega un archivo audio después que cuelga para arriba. + Formulario Webs Meta- Este es donde usted puede establecer el marco de página web personalizada de la web de forma que se abrirá cuando el usuario hace clic en el botón formulario Web. El valor predeterminado es _blank.
-
+
- AMD envían a la VM exten - este menú permite que usted defina si un mensaje esté dejado en un contestador automático cuando se detecta la llamada será remitido inmediatamente a la extensión del Contestar-Ma'quina-Mensaje si AMD es activo y se determina que la llamada es un contestador automático. + Permita Closers - aquí es donde usted puede fijar si los usuarios de esta campaña tendrán la opción para enviar la llamada a un más cercano.
-
+
- CPD AMD Acción - Si está utilizando el Sangoma ParaXip software de detección de llamadas Progreso entonces usted desea habilitar esta configuración, o bien se DISPO a que la llamada disposición como AA y colgar la llamada si se está procesando y no se ha enviado aún a un agente o un mensaje que envía la llamada al contestador automático de mensajes definidos para esta campaña. Desactivado por defecto. + Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente.
-
+
- El marcar numérico del Alt del agente - esta opción permite que un agente marque manualmente el número de teléfono o el campo alterno address3 después de que se haya llamado el número principal. + Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opción demuestre para arriba. + + 0) + { + ?> +
+
+
+ Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opción para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijó esto a N.Default es N. + +
+
+
+ Estado del dial - aquí es adonde usted fija los estados que usted está deseando marcar encendido dentro de las listas que son activas para la campaña abajo. Para agregar otro estado al dial, selecciónelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar. + +
+
+
+ Orden de la lista - Este menú es donde usted selecciona cómo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo: +
  - DOWN: seleccione los primeros plomos cargados en la tabla del vicidial_list +
  - UP: seleccione los plomos pasados cargados en la tabla del vicidial_list +
  - UP PHONE: seleccione el número y los trabajos más altos de teléfono su manera abajo +
  - DOWN PHONE: seleccione el número y los trabajos más bajos de teléfono su manera para arriba +
  - UP LAST NAME: comienzo con los nombres pasados comenzando con Z y trabajos su manera abajo +
  - DOWN LAST NAME: comienzo con los nombres pasados comenzando con A y trabajos su manera para arriba +
  - UP COUNT: comienzo con los plomos y los trabajos llamados su manera abajo +
  - DOWN COUNT: comienzo con menos plomos y trabajos llamados su manera para arriba +
  - DOWN COUNT 2nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada otro lead(Must para no tener NEW seleccionado en los estados del dial) +
  - DOWN COUNT 3nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada tercer lead(Must para no tener NEW seleccionado en los estados del dial) +
  - DOWN COUNT 4th NEW: comienzo con menos plomos y trabajos llamados que su manera para arriba que inserta un NEW plomo en cada adelante conduzca (no debe tener NEW seleccionado en los estados del dial) +
  - RANDOM: coge al azar de plomo en los estados y las listas definidas +
  - Subir llamada: Ordena por el tiempo más reciente de la llamada local para los conductores +
  - En Baja los Ultimos llamada: Ordena por el tiempo más antiguo de la llamada local para los conductores +
  - UP RANK: Comienza con la más alta categoría y se abre camino hacia abajo +
  - DOWN RANK: Comienza con el rango más bajo y se abre camino hasta +
  - UP OWNER: Comienza con los propietarios de inicio con Z y obras de su camino hacia abajo +
  - DOWN OWNER: Comienza con los propietarios empiezan con la letra y se abre camino hasta +
  - UP TIMEZONE: Comienza con las zonas horarias del Este y del Oeste de obras +
  - DOWN TIMEZONE: Comienza con las zonas horarias occidental y oriental de obras + +
+
+
+ Tolva llana - éste es cuántos conducen los intentos de la escritura de VDhopper para mantener la tabla del vicidial_hopper para esta campaña. Si funciona la escritura de VDhopper cada minuto, haga esto levemente mayor que el número de plomos que usted entra a través en un minuto. + +
+
+
+ Filtro del plomo - éste es un método de filtrar sus plomos usando un fragmento de una pregunta del SQL. Utilice esta característica con la precaución, él es fácil de parar el marcar accidentalmente con la alteración más leve a la declaración del SQL. El defecto no es NINGUNO. + +
+
+
+ Tiempo de caída de bloqueo - Este es un número de horas que DROP abandonar pide se le impida que se está marcando, para establecer inhabilitar a 0. Esta opción es muy útil en países como el Reino Unido, donde existen normas que impiden la tentativa de llamar a los clientes dentro de las 72 horas de abandono, o DROP. Por defecto es 0. + +
+
+
+ Reajuste de la fuerza de la tolva - esto permite que usted limpie fuera del contenido de la tolva sobre la sumisión de la forma. Debe ser llenada otra vez cuando la escritura de VDhopper funciona. + +
+
+
+ Método del dial - Este campo es la manera de definir cómo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el método del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y después no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos métodos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los métodos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profético. Entrantes_MAN permite que el agente de marcación manual de lugar a las llamadas de una campaña de la lista, mientras que ser capaz de tomar las llamadas entrantes entre marcación manual de llamadas. + +
+
+
+ Nivel auto del dial - aquí es adonde usted fija cuántos alinea VICIDIAL debe utilizar por medios del agente activo cero 0 que el marcar del automóvil está apagado y los agentes chascarán para marcar cada número. Si no VICIDIAL mantendrá líneas que marcan iguales a los agentes activos multiplicados por el nivel del dial para llegar cuántas líneas debe permitir esta campaña en cada servidor. El checkbox de la INVALIDACIÓN del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el método del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente. + +
+
+
+ Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N. + +
+
+
+ Límite del porcentaje de la gota - este campo es donde usted fijó ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un método adaptante-profe'tico del dial, NO MANUAL o delCOCIENTE. + +
+
+
+ El máximo adapta el dial llano - este campo es donde usted fijó ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un método adaptante-profe'tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales. + +
+
+
+ El tiempo más último del servidor - este campo es utilizadosolamente por el método del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a cómo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado. + +
+
+
+ Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profética más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los métodos del dial del MANUALo del COCIENTE. + +
+
+
+ Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los métodos del dial del MANUAL o del COCIENTE. + +
+
+
+ Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMÓVIL. Este campo no es utilizado por el método MANUAL del dial. + +
+
+
+ Cola de prioridad - Este valor se utiliza para definir el orden en que las llamadas salientes de esta campaña debe responderse en relación con las llamadas entrantes si esta campaña está en el modo de mezcla. + +
+
+
+ Varias campañas Drop Rate Grupo - Esta característica le permite establecer una campaña como miembro de una campaña de la velocidad de descenso del Grupo, o un grupo de campañas cuyas llamadas contestadas y llamadas Humanos Drop para todas las campañas en el grupo se combinarán en un porcentaje de caída compartida, o tasa de abandono. Esto le permite ejecutar varias campañas a la vez y más fácil de controlar su tasa de caída. Esto es particularmente útil en el Reino Unido, donde las regulaciones lo permiten esta disminución método del tipo de cálculo con la campaña de la agrupación por la misma empresa, incluso si hay varias campañas que la empresa está ejecutando en el mismo día. Para habilitar esta para una campaña, sólo tienes que seleccionar un grupo de la lista. Hay 10 grupos definidos en el sistema por defecto, puede ponerse en contacto con el administrador del sistema para añadir más. Desactivado por defecto. + +
+
+
+ Alt-Nu'mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA métodos del dial cuando no hay contacto en elnúmero de teléfono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el métodoMANUAL del dial. PRORROGADO suplentes números son números cargados en el sistema fuera de la pantalla de información estándar. PRORROGADO utilizando usted puede tener cientos de números de teléfono de un solo registro de cliente. + +
+
+
+ Descanso del dial - si está definido, llamadas que normalmente retraso después de que el descanso definido en extensions.conf en lugar de otro descanso en esta cantidad de segundos si es menos que el descanso de extensions.conf. Esto permite descansos del dial rápidamente que cambian del servidor al servidor y a limitar los efectos a una sola campaña. Si usted está teniendo muchos de llamadas del contestador automático o de Buzón de Voz usted puede desear intentar cambiar este valor entre a 21-26 y ver si los resultados mejoran. + +
+
+
+ Campaña de extensión VDAD - Este campo permite una transferencia personalizada VDAD extensión. Esto le permite utilizar diferentes métodos de gestión de llamadas en función de su campaña. + - 8364 - 8368 misma que + - 8365 - Se envía la llamada a un sólo agente en el mismo servidor que la llamada está en + - 8366 - Utilizado para la prensa-1 y las campañas de estudio + - 8367 - ¿Se tratará de enviar la primera llamada a un agente en el servidor local, entonces se verá en otros servidores + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Se utiliza para Contestador automático de detección después de que, el mismo comportamiento como 8368 + - 8373 - Se utiliza para Contestador automático de detección después de que el mismo comportamiento de 8366 + +
+
+
+ Mensaje del contestador automático - Este campo es para entrar en el sistema para jugar cuando el agente recibe un contestador automático y hace clic en el botón Responder a máquina contestadora en el marco de conferencias de transferencia. Debe establecer que esto sea un archivo de audio en la tienda de audio o un sistema TTS TTS si está habilitada en su sistema de. + +
+
+
+ Opciones WaitForSilence - Si Wait For silencio es deseada en las llamadas que se detectan como Contestadoras entonces este campo tiene esas opciones. Hay dos opciones separadas por una coma, la primera opción es el tiempo para detectar silencio en milisegundos y la segunda opción es para cuántas veces se detecta que antes de reproducir el mensaje. Por defecto está vacío para discapacitados. Un valor estándar para este sería esperar 2 segundos de silencio en dos ocasiones: 2000,2 + +
+
+
+ AMD envían a la VM exten - este menú permite que usted defina si un mensaje esté dejado en un contestador automático cuando se detecta la llamada será remitido inmediatamente a la extensión del Contestar-Ma'quina-Mensaje si AMD es activo y se determina que la llamada es un contestador automático. + +
+
+
+ CPD AMD Acción - Si está utilizando el Sangoma ParaXip software de detección de llamadas Progreso entonces usted desea habilitar esta configuración, o bien se DISPO a que la llamada disposición como AA y colgar la llamada si se está procesando y no se ha enviado aún a un agente o un mensaje que envía la llamada al contestador automático de mensajes definidos para esta campaña. Desactivado por defecto. + +
+
+
+ El marcar numérico del Alt del agente - esta opción permite que un agente marque manualmente el número de teléfono o el campo alterno address3 después de que se haya llamado el número principal. + +
+
+
+ Segundos de la llamada de la gota - el número de segundos a partirdel tiempo que la línea de cliente se escoge encima de hasta que lallamada se considera una GOTA, sólo se aplica a las llamadas desalida. + +
+
+
+ Acción gota - Este menú le permite elegir lo que le sucede a una llamada cuando se ha estado esperando durante más de lo establecido en la Convocatoria de caída Segundos campo. Colgar simplemente colgar la llamada, enviar el mensaje de llamar a la Extensión de caída que ha definido a continuación, Buzón de voz se envía la llamada a la casilla de voz que ha definido a continuación y IN_GROUP enviará la convocatoria a la entrada del Grupo que se define a continuación + +
+
+
+ seguro puerto Exten - este ser dial plan extensión que desear seguropuerto audio archivo ser localizar en en su servidor. + +
+
+
+ Buzón de Voz - si estuvieron definidas, las llamadas que CAERÍAN normalmente en lugar de otro serían ordenadas a esta caja del voicemail para oír y para dejar un mensaje. + +
+
+
+ Grupo de Transferencia de gota - En caso de caída de Acción se establece en IN_GROUP, la llamada será enviada a este grupo entrantes si llega a soltar Convocatoria Segundos. + +
+
+
+ Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexión a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta función no se necesita encampañas de CLOSER-type. El defecto es N. + +
+
+
+ N marcado Hopper - Si esta opción está activada, la tolva no se ejecutará para esta campaña. Esta opción sólo está disponible cuando el método de línea se establece en Manual o Entrantes_MAN. Se recomienda que no habilite esta opción si usted tiene una base de datos de plomo muy grande, más de 100.000 clientes potenciales. Con n marcado Hopper, las características siguientes no funcionan: reciclaje de plomo, auto-alt-marcación, la mezcla lista, lista de pedido con X NEW. Si desea utilizar único dueño de marcado no debe tener marcado Hopper habilitado. Por defecto es n para discapacitados. + +
+
+
+ Único propietario de marcado - Si esta opción está activada, el agente sólo recibirá las pistas que están dentro de los parámetros de la propiedad. Si esto se establece a usuario entonces el agente debe ser definida por el usuario en la base de datos como el propietario de este lugar. Si esto se establece en territorio que entonces el dueño de la iniciativa debe coincidir con el territorio que figuran en la pantalla de modificación del usuario de este agente. Si esto se establece a USER_GROUP entonces el dueño de la iniciativa debe coincidir con el grupo de usuarios que el agente es un miembro de. Para que esta característica funcione el método de línea se debe establecer en Manual o Entrantes_MAN marcado Hopper y no debe estar activado. El valor predeterminado es NINGUNO para discapacitados. + + 0) + { + ?> +
+
+
+ Agente Seleccione territorios - Si esta opción está activada y el agente pertenece a al menos un territorio, el agente tendrá la opción de selección de territorios a los cables de línea. El agente podrá ver una lista de los territorios disponibles a inicio de sesión y tendrán la capacidad de volver a la lista territorio cuando se detuvo a cambiar sus territorios. Para esta función a la labor del único dueño de marcado opción debe configurarse con el territorio y territorios de usuario debe estar habilitado en la configuración del sistema. + + +
+
+
+ Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en lasección del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO. + +
+
+
+ Identificación de la mezcla de la lista - identificación de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuación especial. + +
+
+
+ Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud. + +
+
+
+ Detalle de la mezcla de la lista - la composición de la entrada de lamezcla de la lista. Contiene la identificación de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada. + +
+
+
+ Método de la mezcla de la lista - el método de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER. + +
+
+
+ Agente de pantalla ampliada Alt Dial - Esta característica permite a los agentes el acceso ampliado a los números de teléfono de suplentes lleva más allá de la norma Alt Teléfono y Address3 campos que pueden ser utilizados en VICIDIAL más allá de los números de teléfono de los principales número de teléfono. La extensión números de teléfono se puede marcar automáticamente utilizando la auto-Alt-función Marcación VICIDIAL en la configuración de la campaña, pero activar esta función de agente de pantalla también permitirá que el agente a llamar a estos números de la pantalla de su mandatario, así como editar su información. + +
+
+
+ Primera encuesta de archivo de audio - Este es el nombre de archivo de audio que se reproduce en cuanto el cliente coge el teléfono cuando se ejecuta una campaña de estudio. + +
+
+
+ Encuesta dígitos DTMF - Este campo es donde se define los dígitos que un cliente puede pulsar como una opción en una encuesta sobre la campaña. válidos son los dígitos DTMF0123456789*#. Todas las opciones excepto la no interesados, Tercera y Cuarta opciones de dígitos se trasladará a la ruta de la llamada método de encuesta. + +
+
+
+ No encuesta interesadas dígitos - Este campo es donde se define el cliente presiona dígitos que indican que no están interesados. + +
+
+
+ Estudio de estado no le interesa - Este es un campo en el que seleccione el estado que debe utilizarse para no estoy interesado. Si se utiliza DNC y la campaña está configurada para utilizar DNC entonces el número de teléfono se añade automáticamente a la lista VICIDIAL interior DNC.y, posiblemente, la campaña específica de DNC lista. + +
+
+
+ Encuesta de Opt-in de archivos de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha decidido participar en la encuesta, no esta opción, o no respondió si la respuesta no-acción se establece a OptOut. Después de este archivo de audio se reproduce, el método de encuesta se toman medidas. + +
+
+
+ No encuesta interesadas archivo de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha optado-de la encuesta, no ha optado-o no respondió si la respuesta no-acción se establece en OptIn. Después de este archivo de audio se reproduce, la llamada se colgó. + +
+
+
+ Método de encuesta - Esta opción se define lo que sucede a una convocatoria después de que el cliente ha optado-en. AGENT_XFER enviará la convocatoria a la siguiente agente disponible. Buzón de voz se envía la llamada al buzón de voz de la caja que se especifica en el campo de voz. EXTENSIÓN enviará al cliente a la extensión se define en la Encuesta Xfer campo Extensión. Colgar se cuelgue el cliente. CAMPREC_60_WAV enviará al cliente a tener una grabación con su respuesta, esta grabación se coloca en una carpeta con el nombre de la campaña dentro de la Campaña de Estudio de grabación Directorio. + +
+
+
+ Estudio n-Respuesta Acción - Este es donde se define lo que ocurrirá si no hay respuesta a la pregunta de la encuesta. OptIn sólo enviar la llamada al método de encuesta si el cliente pulsa una dígitos DTMF. OptOut enviará al cliente en el método de encuesta, aun cuando no presiona una dígitos DTMF. + +
+
+
+ Respuesta encuesta dígitos Mapa - Esta es la sección donde usted puede definir una descripción para ir dígitos DTMF con cada opción que el cliente puede seleccionar. + +
+
+
+ Encuesta Xfer Extensión - Si el método de encuesta de EXTENSIÓN se selecciona entonces la llamada de cliente se dirige a esta extensión dialplan. + +
+
+
+ Estudio de grabación Campaña Directorio - Si el método de encuesta de CAMPREC_60_WAV luego se selecciona la respuesta de los clientes se registran y se coloca en un directorio llamado después de la campaña dentro de este directorio. + +
+
+
+ Encuesta tercer dígito - Esto permite una ruta de la tercera convocatoria, si el tercer dígito tal como se define en este campo es presionado por el cliente. + +
+
+
+ Digit Cuarta Encuesta - Esto permite una ruta cuarta convocatoria, si la cuarta cifra tal como se define en este campo es presionado por el cliente. + +
+
+
+ Tercera Encuesta de archivos de audio - Este es el archivo de audio tercero que se jugó con la selección por parte del cliente de la opción del tercer dígito. + +
+
+
+ Tercera Encuesta de Situación - Esta es la situación de terceros utilizado para la convocatoria a la selección por parte del cliente de la opción del tercer dígito. + +
+
+
+ Tercer Estudio de Extensión - Esta es la tercera ampliación utilizados para el llamado a la selección por parte del cliente de la opción del tercer dígito. El valor predeterminado es 8300 que inmediatamente se cuelga la llamada después de que se jugó el mensaje de audio de archivo. + +
+
+
+ Agente de pantalla Dialable Leads - Esta opción se mostrará si está habilitado el número de derivaciones dialable disponibles en la campaña en la pantalla del agente. Este segundo número se actualiza en el sistema una vez por minuto y se actualiza en la pantalla del agente por cada par de. + +
-
+
- Segundos de la llamada de la gota - el número de segundos a partirdel tiempo que la línea de cliente se escoge encima de hasta que lallamada se considera una GOTA, sólo se aplica a las llamadas desalida. + Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible: +
  - random: órdenes por el valor al azar de la actualización en la tabla de los vicidial_live_agents +
  - oldest_call_start: las órdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. +
  - oldest_call_finish: las órdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. +
  - overall_user_level: las órdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. +
  - campaign_rank: órdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls: órdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - longest_wait_time: pedidos por la cantidad de tiempo que el agente ha estado activamente la espera de una llamada de.
-
+
- Acción gota - Este menú le permite elegir lo que le sucede a una llamada cuando se ha estado esperando durante más de lo establecido en la Convocatoria de caída Segundos campo. Colgar simplemente colgar la llamada, enviar el mensaje de llamar a la Extensión de caída que ha definido a continuación, Buzón de voz se envía la llamada a la casilla de voz que ha definido a continuación y IN_GROUP enviará la convocatoria a la entrada del Grupo que se define a continuación + Tiempo de la llamada local - aquí es adonde usted fijó durante qué horas usted quisiera marcar, según lo determinado por el tiempo local en está en cuál usted está llamando. Esto es controlada por código de área y ajustada por tiempo de los ahorros de la luz del día si es aplicable. Las pautas generales en los E.E.U.U. para el negocio al negocio son los 9am a los 5pm y el negocio a las llamadas del consumidor es los 9am a los 9pm.
-
+
- seguro puerto Exten - este ser dial plan extensión que desear seguropuerto audio archivo ser localizar en en su servidor. + Prefijo del dial - este campo permite más fácilmente cambiar una trayectoria de marcar a salir con un diverso método sin hacer una recarga en asterisco. El defecto es 9 basados sobre un 91NXXNXXXXXX en el dial plan - extensions.conf.
-
+
- Buzón de Voz - si estuvieron definidas, las llamadas que CAERÍAN normalmente en lugar de otro serían ordenadas a esta caja del voicemail para oír y para dejar un mensaje. + Omita el código del teléfono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N.
-
+ +
+ Campaña CallerID - este campo permite enviar de un número de encargo del callerid en las llamadas de salida. Úste es el número que demostraría para arriba en el callerid de la persona que usted está llamando. El defecto es DESCONOCIDO. Esta opción está solamente disponible si usted está utilizando PRIs - ISDN T1 o E1 - que tienen la característica de encargo del callerid se giraron. Esta característica puede también trabajar con los troncos IAX2 dependiendo de lo que admite su abastecedor. El callerID de encargo se aplica solamente a las llamadas puestas para la campaña de VICIDIAL directamente, cualquier tercer persona llama o las transferencias no enviarán el callerID de encargo. NOTA: A veces el poner DESCONOCIDO o PRIVADO en el campo rendirá enviar de su número del callerID del defecto por su portador con las llamadas. Usted puede desear probar esto y poner 0000000000 en el campo del callerid en lugar de otro si usted no desea enviarle CallerID. + +
+
+
+ Extensión de Rec de la Campaña - este campo permite para que una extensión de encargo de la grabación sea utilizada con VICIDIAL. Esto permite que usted utilice diversas extensiones dependiendo sobre cuánto tiempo usted desea permitir una grabación máxima y qué tipo de codec usted desea registrar adentro. El defecto exten es 8309 que si usted sigue los ejemplos de SCRATCH_INSTALL registrarán en el formato de WAV para hasta que una hora. Otra opción incluida en los ejemplos es 8310 que registrarán en el formato del GSM para hasta que una hora. + +
+
+
+ Grabación de la campaña - este menú permite que usted elija quénivel de la grabación se permite en esta campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. + +
+
+
+ Nombre de fichero de Rec de la campaña - este campo permite que usted modifique el nombre para requisitos particulares de la grabación cuando la grabación de la campaña es ONDEMAND o ALLCALLS. Las variables permitidas son CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. El defecto es FULLDATE_AGENTE y parecería este 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que parecería este TESTCAMP_51020103108_3125551212. 50 char max. + +
+
+
+ La registración retrasa - para la grabación de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabación en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0. + +
+
+
+ Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. + +
+
+
+ Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo'vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. + +
+
+
+ Xfer-Conf DTMF - Estos cuatro campos permiten que usted tenga dos conjuntos de transferencia de la Conferencia y presets DTMF. Cuando se carga la llamada o de la campaña, la secuencia de comandos vicidial.php mostrará dos botones en el marco de la transferencia de conferencias y rellenará de forma automática el número a marcar y el enviar los campos DTMF cuando se presiona. Si desea permitir Consultivo transferencias, un Fronter a una mayor, que el agente utiliza la casilla de consulta, que no funciona por falta de terceros Vicidial llamadas de consulta. Para aquellos que sólo tienen el agente, haga clic en el dial con el botón del cliente. Entonces, el agente puede dejar-3way-CALL y pasar a la siguiente llamada. Si desea permitir la transferencia ciega de los clientes a una secuencia de comandos AGI Vicidial para el registro o un IVR, a continuación, AXFER lugar en el número a marcar el terreno. También puede especificar una extensión personalizada después de la AXFER, por ejemplo, si usted quiere hacer una llamada a un IVR especiales que se han fijado a la extensión 83900 pondrías AXFER83900 en el número a marcar el terreno. + +
+
+
+ Rápida transferencia Button - Esta opción agrega un botón de la transferencia rápida a la pantalla por debajo de la agente de transferencia de botón Conf. que permitirá la transferencia de un solo clic ciego de llamadas a los seleccionados en Grupo o un número. IN_GROUP enviará pide al Grupo de Xfer predeterminado para esta campaña, o en grupo-si hay una llamada entrante. Las opciones predeterminadas enviará las llamadas a los preset seleccionado. Por defecto es n para discapacitados. + +
+
+
+ Transferencia de rellenar previamente Preset - Esta opción le proporcione el número telefónico al campo en el marco de la Conferencia de transferencia de la pantalla si el agente definido. Por defecto es n para discapacitados. + +
+
+
+ Temporizador de Acción de - Esta característica le permite activar acciones después de una cierta cantidad de tiempo. D1 y D2 opciones de marcación lanzará un llamamiento a la transferencia de presets Conferencia Número y enviarlos a la sesión del agente, éste se utiliza generalmente para aplicaciones sencillas de validación IVR AGI o simplemente para jugar un mensaje pregrabado. WebForm se abrirá la dirección de formulario web. MESSAGE_ONLY simplemente mostrará el mensaje de que está en el campo de abajo. Ninguna de ellas podrá deshabilitar esta característica y es el predeterminado. + +
+
+
+ Temporizador de mensaje de acción - Este es el mensaje que aparece en la pantalla del agente en el momento de la acción del temporizador se dispara. + +
+
+
+ Temporizador Segundos Acción - Esta es la cantidad de tiempo después de la llamada se conecta a los clientes que se desencadena la acción del temporizador. El valor predeterminado es -1, que también está inactivo. + +
+
+
+ Servicios repetidos programar - esta opción no prohibe a agente a la disposición una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado. + +
+
+
+ Segundos de Wrap Up - el número de los segundos para forzar un agenteesperar antes de permitir que reciban o que marquen otra llamada. Elcontador de tiempo comienza tan pronto como un agente cuelgue paraarriba en su cliente - o en el caso del número alterno que marcacuando el agente acaba el plomo - defecto sea los segundos 0. Si elcontador de tiempo funciona hacia fuera antes de que el agente tengadispositioned la llamada, el agente todavía no se mueve encendido ala llamada siguiente hasta que seleccionan una disposición. + +
+
+
+ Mensaje de Wrap up - esto es un mensaje campaña-especi'fico que seexhibirá en la pantalla del wrapup si se fijan los segundos delwrapup. + +
+
+
+ Lista interna del uso DNC - esto define si esta campaña es filtrarlos plomos contra la lista interna de DNC. Si se fija a Y, la tolvabuscará cada número de teléfono en la lista de DNC antes de ponerlaen la tolva. Si está en la lista de DNC entonces que cambiará eseconduce estado a DNCL así que no puede ser marcada. El defecto es N. La opción codigoDeArea es como la opción-y, excepto que se utiliza para filtrar también un código de área en toda América del Norte desde que se está marcando, en este caso mediante la entrada en la lista 201XXXXXXX DNC podría bloquear todas las llamadas a los 201 codigoDeArea si está habilitada. + +
+
+
+ Campaña de uso Lista DNC - Este define si esta campaña es un filtro contra el DNC lleva lista que es específico de la campaña únicamente. Si se configura a Y, la tolva se verá para cada número de teléfono en la campaña específica de DNC lista antes de colocarla en la tolva. Si es en la campaña específica de DNC se lista a continuación, cambiar de estado que llevan a DNCC por lo que no pueden ser marcados. El valor por defecto es N. La opción codigoDeArea es como la opción-y, excepto que se utiliza para filtrar también un código de área en toda América del Norte desde que se está marcando, en este caso mediante la entrada en la lista 201XXXXXXX DNC podría bloquear todas las llamadas a los 201 codigoDeArea si está habilitada. + +
+
+
+ Grupos De entrada Permitidos - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. + +
+
+
+ La pausa del agente cifra activo - permite que los agentes seleccionenun código de la pausa cuando chascan encendido el botón de PAUSA envicidial.php. Los códigos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinión de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N. Fuerza de la fuerza de los agentes para elegir un código PAUSA si hacen clic en el botón PAUSA. + +
+
+
+ Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N. + +
+
+
+ Deshabilitar Modificar Cliente Teléfono - Si se pone a Y, no cambia el número de teléfono del cliente, cuando un agente disposiciones de la llamada. Y es por defecto. Utilice la opción Ocultar para eliminar completamente el número de teléfono del cliente de la pantalla del agente de. + +
+
+
+ Agente Mostrar cola Conde - Si se establece a Y, cuando un cliente está a la espera de un agente, la cola de llamadas en la pantalla superior de la pantalla agente se iluminará en rojo y muestran el número de llamadas en espera. Y es por defecto. + +
+
+
+ Identificación manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente. + +
+
+
+ Manual de Acceso telefónico Filtro - Esto le permite filtrar las llamadas que hacen los agentes en el dial de modo de manual para esta campaña por cualquier combinación de los siguientes: DNC - a expulsar, CAMPAIGNLISTAS - el número debe estar dentro de las listas para la campaña, NINGUNA - sin filtro en el manual de marcación rápida o de marcación listas. + +
+
+
+ Agente de pantalla Portapapeles Copiar - esta función por el momento sólo se han permitido para Internet Explorer. Esta característica le permite seleccionar un campo que será copiado al portapapeles el equipo del agente ordenador a una llamada que se envían a un agente. Usos comunes para ello son para permitir la fácil pegar los números de cuenta o números de teléfono en el legado de las aplicaciones cliente en el equipo agente. + +
+
+
+ 3-Vías de salida de llamadas CallerID - Esto define lo que es enviado como el número de callerID salida de 3 vías llamadas realizadas por el agente, la costumbre CAMPAÑA usos callerID campaña, el cliente utiliza el número de cliente que está activa en la pantalla y los agentes AGENT_PHONE utiliza el callerID el teléfono para que el agente se registra en. AGENT_CHOOSE permite elegir el agente que callerID utilizar para llamadas de 3 vías a partir de una lista de opciones. + +
+
+
+ 3-Vías de llamadas Prefijo telefónico - Esto define lo que se utiliza como prefijo de marcación para las llamadas de 3 vías, por defecto está vacío por lo que la campaña se utiliza el prefijo de marcación, por lo que puede passthru oye un pitido es de 88. + + 0) + { + ?> +
+
+
+ CC Activado - Configuración Y a este campo permite que el agente de control de calidad de elementos de trabajo. El valor predeterminado es N. + +
+
+
+ CC estados - Esta zona es donde se selecciona el que lleva de estados debe ser pasado por el sistema de CC. Coloque una marca de verificación junto a la situación que desea revisar CC. + +
+
+
+ CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de registros de control de calidad para una campaña. Los días de la semana no se tienen en cuenta para estas funciones. + +
+
+
+ CC Obtener Registro de lanzamiento- Esto permite que una de las siguientes acciones, que se activará en un agente de control de la calidad de recibir un nuevo registro. + +
+
+
+ Mostrar control de la calidad de grabación - , lo que permite una grabación que puede estar vinculado con el control de la calidad de registro que se mostrará en pantalla el agente de control de calidad. + +
+
+
+ CC Webform Dirección - Esta es la dirección del sitio web que un agente de control de calidad puede ir a al hacer clic en el enlace Formulario de Asistencia en la pantalla de control de calidad. + +
+
+
+ CC Escritura - Este es el script que puede ser utilizada por agentes de control de la calidad en la secuencia de comandos en la ficha de CC pantalla. + + +
+
+
+ Buscar Vtiger Categoría - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si vtiger_search.php la página de búsqueda para el número de teléfono que se inscribió. Hay 4 opciones que pueden utilizarse en este campo: LEAD-Esta opción de búsqueda a través de la Vtiger sólo conduce, CUENTA-Esta opción de búsqueda a través de las cuentas y Vtiger todos los contactos y sub-contactos para el número de teléfono, VENDEDOR-Esta opción sólo a través de la búsqueda Vtiger vendedores, ACCTID-Esta opción sólo funciona para las cuentas y que se llevará a vicidial vendor_lead_code el campo y tratar de buscar el ID de cuenta Vtiger. Si se intenta sin éxito que cualquier otro método que la lista que ha seleccionado. Múltiples opciones pueden ser utilizados para cada búsqueda, pero en grandes bases de datos no es recomendable. El valor predeterminado es PLOMO. UNIFIED_CONTACT-Esta opción se utiliza la versión beta 5.1.0 Vtiger función para buscar por número de teléfono y acceder a la página de búsqueda en Vtiger. + +
+
+
+ Vtiger Buscar Dead Cuentas - Si la integración Vtiger está activado en la configuración del sistema a continuación, esta configuración definirá si las cuentas eliminadas se buscará, cuando el agente clics WEB forma de buscar en el sistema Vtiger. Con discapacidad conduce eliminados no se buscará, ASK-lleva eliminado y se buscará la página de búsqueda Web vtiger solicitará al agente si quieren hacer la cuenta Vtiger activos, resucitar-hará la cuenta eliminada activa de nuevo y tomará las agente a la pantalla de cuenta sin demora al hacer clic en Formulario Webs. Desactivado por defecto. + +
+
+
+ Crear Vtiger Registro de llamadas - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si la nueva actividad Vtiger registro se crea para la llamada cuando el agente va a la página vtiger_search. Y es por defecto. La opción de DISPO creará un registro de llamadas para la cuenta de Vtiger sin que el agente que necesitan para ir a la página de búsqueda a través de vtiger el formulario Web. + +
+
+
+ Crear Vtiger plomo Expediente - Si está habilitado Vtiger integración en la configuración del sistema y Vtiger Búsqueda Categoría incluye PLOMO entonces esta configuración definirá si un nuevo registro de conducir Vtiger es creada cuando el agente va a la página vtiger_search y no se registro determinó que la llamada número de teléfono. Y es por defecto. + +
+
+
+ Pantalla de inicio de sesión Vtiger - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si el usuario está conectado a la interfaz automáticamente Vtiger los usuarios cuando ingresan a VICIDIAL. Y es por defecto. La opción de NEW_WINDOW se abrirá una nueva ventana en la pantalla de login para el agente Vicidial. + +
+
+
+ Vtiger Estado de llamada - Si la integración Vtiger está activado en la configuración del sistema a continuación, esta configuración definirá si la situación de la Cuenta Vtiger se actualizará con el estado de la llamada Vicidial después de haber sido dispositioned. Por defecto es n. + +
+
+
+ CRM Popup Login - Si se establece en Y, la Dirección de Popup CRM se utiliza para abrir una nueva ventana de inicio de sesión agente a esta campaña. Por defecto es n. + +
+
+
+ CRM Dirección Popup - La dirección en Internet de una página de acceso de CRM, puede tener las variables de población como la dirección de formulario web, con el VAR en el frente y con la opción - A - user_custom_one - B - para definir variables. + +
+
+
+ Iniciar llamada URL - Esta web dirección URL no es visto por el agente, sino que es llamado cada vez que una llamada se envía a un agente si se poblaron. Utiliza las mismas variables que los campos de formulario web y scripts. Esta URL no puede ser una ruta relativa. La URL de inicio no funciona para las llamadas de marcación manual. Por defecto está en blanco. + +
+
+
+ Dispo Call URL - Esta web dirección URL no es visto por el agente, sino que es llamado cada vez que una llamada es dispositioned por un agente, si se poblaron. Utiliza las mismas variables que los campos de formulario web y scripts. dispo y talk_time son las variables que puede utilizar para recuperar el agente definido por la disposición de la llamada y el tiempo de conversación real en segundos de la llamada. Esta URL no puede ser una ruta relativa. Por defecto está en blanco. + +
+
+
+ Grupo Alias permitidas - Si desea permitir que su grupo de agentes a utilizar alias, entonces necesita hacer esto a Y. Grupo Alias se explican más en la sección de administración, permiten a los agentes para seleccionar diferentes callerIDs para llamadas salientes manual que se puede colocar. El valor predeterminado es N. + +
+
+
+ Grupo Alias predeterminado - Si han permitido Grupo Alias este es el grupo de alias que se ha seleccionado en primer lugar, por defecto cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA. + +
+
+
+ Agente Pide Ver en cola - Si se pone a nada, pero NINGUNO, los agentes podrán consultar los detalles de las llamadas que están esperando en la cola en la pantalla de su agente. Si se establece en un valor de número, las llamadas que aparecerá será limitada al número seleccionado. El valor predeterminado es NINGUNO. + +
+
+
+ Ver las llamadas en cola de lanzamiento - Este ajuste, si en AUTO tendrá las convocatorias en el marco de la cola aparecen en inicio de sesión por el agente en la pantalla del agente. El valor predeterminado es MANUAL. + +
+
+
+ Agente Pide Agarre en cola - Esta opción si se define Y permitirá que el agente para seleccionar la llamada que desea tomar de las llamadas en la pantalla de la cola haciendo clic en él durante la pausa. Los agentes sólo podrán coger las llamadas entrantes o las llamadas transferidas, las llamadas no de salida. Por defecto es n. + +
+
+
+ Agente de Call Re-Cola Button - Esta opción si se define Y agregará un botón Re-cliente de la cola a la pantalla del agente, permite a las agencias para enviar la llamada en una cola de AGENTDIRECT que está reservado para el único agente. Por defecto es n. + +
+
+
+ Agente de pausa después de cada llamada - Esta opción si se define como Y hará una pausa en el agente después de cada llamada automáticamente. Por defecto es n. + + + + + +



+ + VICIDIAL_LISTAS TABLA

+
+
+ Identificación de la lista - Úste es el nombre numérico de la lista, él no es editable después de la sumisión inicial, debe contener solamente números y debe estar entre 2 y 8 caracteres en longitud. Must be a number greater than 100. + +
+
+
+ Nombre de la lista - Ésta es la descripción de la lista, debe estar entre 2 y 20 caracteres en longitud. + +
+
+
+ Descripción de la lista - éste es el campo de la nota para la lista,él es opcional. + +
+
+
+ Fecha del cambio de la lista - ésta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera. + +
+
+
+ Fecha de la llamada del último de la lista - ésta es la vez últimaque conduce fue marcado de esta lista. + +
+
+
+ Campaña - Ésta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente. + +
+
+
+ Activo - esto define si la lista debe ser marcada encendido o no. + +
+
+
+ Reajuste el Conducir-Llamar-Estado para esta lista - esto reajusta todos los plomos en esta lista a N para "no llamado puesto que reajuste pasado" y significa que cualquier plomo puede ahora ser llamado si es el estado derecho según lo definido en la pantalla de la campaña. + +
+
+
+ Perdí Times - Este campo le permite poner veces, separados por un guión, que esta lista se restablece automáticamente por el sistema. Los tiempos deben estar en formato de 24 horas sin puntuacion, por ejemplo 0800-1700 se restablecer la lista de las 8 AM y las 5 PM todos los días. Por defecto está vacío. + +
+
+
+ Agente de secuencias de comandos Reemplazar - Si se establece este campo, esta será la secuencia de comandos que el agente ve en su pantalla en lugar de la secuencia de comandos de campaña cuando la ventaja es de esta lista. Por defecto no se establece. + +
+
+
+ Campaña CID Override - Si se establece este campo, que reemplazarán la campaña CallerID que se establece para las llamadas que se colocan a la cabeza en esta lista. Por defecto no se establece. + +
+
+
+ Contestador automático de mensajes Override - Si se establece este campo, esto anulará el mensaje de contestador automático situado en la campaña para los clientes en esta lista. Por defecto no se establece. +
+
+
+ Drop de entrada Grupo de Override - Si se establece este campo, en este grupo se utilizará para las llamadas salientes dentro de esta lista que la caída de la campaña de salida en lugar de la caída en grupo situado en la pantalla de detalle de la campaña. Por defecto no se establece. + +
+
+
+ Xfer-Conf Número Override - Estos cinco campos permiten reemplazar la transferencia de presets Conferencia número cuando la iniciativa es de esta lista. Por defecto está en blanco. + + +
+
+
+ Lista DNC VICIDIAL - Esta lista de No Llamar contiene cada lugar que se ha establecido en un estado de la DNC en el sistema. A través de la LISTAS - AÑADIR AL NÚMERO DNC página usted puede agregar manualmente los números de esta lista a fin de que no van a ser llamados por las campañas que utilizan la lista interna DNC. También existe la opción de añadir conduce a la campaña específica de DNC listas para esas campañas que les han. Si usted tiene la opción de DNC activas de codigoDeArea a continuación, usted también puede usar el código de entradas de la zona este 201XXXXXXX como comodín para bloquear todas las llamadas a los 201 codigoDeArea cuando está activado. + + + +



+ + VICIDIAL_Entrantes_GROUPS TABLA

+
+
+ Identificación de grupo - Úste es el nombre corto del grupo de entrada, él no es editable después de la sumisión inicial, no debe contener cualquier espacio y debe estar entre 2 y 20 caracteres en longitud. + +
+
+
+ Nombre de grupo - Ésta es la descripción del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios . + +
+
+
+ Color del grupo - éste es el color que exhibe en el cliente app de VICIDIAL cuando una llamada viene adentro en este grupo. Debe estar entre 2 y 7 caracteres de largo. Si esto es una definición del color de la tuerca hexagonal usted debe recordar poner a # al principio de la secuencia o VICIDIAL no trabajará correctamente. + +
+
+
+ Activo - esto se determina si este grupo demuestra para arriba en la caja de la selección cuando un agente de VICIDIAL entra. + +
+
+
+ Forma del Web - Ésta es la dirección de encargo que el chascar en el botón de la FORMA del WEB en VICIDIAL le llevará para las llamadas que vienen adentro en este grupo. + +
+
+
+ Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible: +
  - random: órdenes por el valor al azar de la actualización en la tabla de los vicidial_live_agents +
  - oldest_call_start: las órdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. +
  - oldest_call_finish: las órdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. +
  - overall_user_level: las órdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. +
  - inbound_group_rank: órdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible. +
  - fewest_calls: órdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - campaign_rank: órdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: pedidos por la cantidad de tiempo que el agente ha estado activamente la espera de una llamada de. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Exhibición de Fronter - este campo se determina si el agente de entrada de VICIDIAL tendría el name(if del fronter allí es uno) exhibido en el campo del estado cuando la llamada viene al agente. + +
+
+
+ Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. + +
+
+
+ Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo'vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. + +
+
+
+ Xfer-Conf DTMF - Estos cuatro campos permiten que usted tenga dos conjuntos de transferencia de la Conferencia y presets DTMF. Cuando se carga la llamada o de la campaña, la secuencia de comandos vicidial.php mostrará dos botones en el marco de la transferencia de conferencias y rellenará de forma automática el número a marcar y el enviar los campos DTMF cuando se presiona. Si desea permitir Consultivo transferencias, un Fronter a una mayor, que el agente utiliza la casilla de consulta, que no funciona por falta de terceros Vicidial llamadas de consulta. Para aquellos que sólo tienen el agente, haga clic en el dial con el botón del cliente. Entonces, el agente puede dejar-3way-CALL y pasar a la siguiente llamada. Si desea permitir la transferencia ciega de los clientes a una secuencia de comandos AGI Vicidial para el registro o un IVR, a continuación, AXFER lugar en el número a marcar el terreno. También puede especificar una extensión personalizada después de la AXFER, por ejemplo, si usted quiere hacer una llamada a un IVR especiales que se han fijado a la extensión 83900 pondrías AXFER83900 en el número a marcar el terreno. + +
+
+
+ Temporizador de Acción de - Esta característica le permite activar acciones después de una cierta cantidad de tiempo. D1 y D2 opciones de marcación lanzará un llamamiento a la transferencia de presets Conferencia Número y enviarlos a la sesión del agente, éste se utiliza generalmente para aplicaciones sencillas de validación IVR AGI o simplemente para jugar un mensaje pregrabado. WebForm se abrirá la dirección de formulario web. MESSAGE_ONLY simplemente mostrará el mensaje de que está en el campo de abajo. Ninguna de ellas podrá deshabilitar esta característica y es el predeterminado. Esta configuración anula la configuración de la campaña. + +
+
+
+ Temporizador de mensaje de acción - Este es el mensaje que aparece en la pantalla del agente en el momento de la acción del temporizador se dispara. + +
+
+
+ Temporizador Segundos Acción - Esta es la cantidad de tiempo después de la llamada se conecta a los clientes que se desencadena la acción del temporizador. El valor predeterminado es -1, que también está inactivo. + +
+
+
+ Llame a gota Segundos - el número de segundos de una llamada se quedará en la cola antes de ser considerado uno de DROP. + +
+
+
+ Acción gota - Este menú le permite elegir lo que le sucede a una llamada cuando se ha estado esperando durante más de lo establecido en la Convocatoria de caída Segundos campo. Colgar simplemente colgar la llamada, enviar el mensaje de llamar a la Extensión de caída que ha definido a continuación, Buzón de voz se envía la llamada a la casilla de voz que ha definido a continuación y IN_GROUP enviará la convocatoria a la entrada del Grupo que se define a continuación. + +
+
+
+ Caída Extensión - En caso de caída de acción se fija a un mensaje, este es el dial plan de ampliación que la convocatoria se enviará a si llega a soltar Convocatoria Segundos. + +
+
+
+ Buzón de Voz - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+

Grupo de Transferencia de gota - En caso de caída de Acción se establece en IN_GROUP, la llamada será enviada a este grupo entrantes si llega a soltar Convocatoria Segundos.
-
+
- Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexión a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta función no se necesita encampañas de CLOSER-type. El defecto es N. + Tiempo de la llamada - éste es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours.
-
+
- Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en lasección del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO. + Horas después de Acción - La acción para llevar a cabo si es después de horas, tal como se definen en el tiempo de atención para este grupo entrante. Colgar inmediatamente colgar la llamada, MESSASGE de reproducir el archivo en el mensaje después de las horas Filenam campo, EXTENSIÓN enviará la llamada a la extensión del horario en el dialplan de voz y se envía la llamada al buzón de voz que figuran en el cuadro Después de horas de voz sobre el terreno , IN_GROUP enviará la convocatoria a la entrada seleccionada en el grupo después de las horas Grupo de Transferencia de seleccionar la lista. El valor predeterminado es MENSAJE.
-
+
- Identificación de la mezcla de la lista - identificación de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuación especial. + Después del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la acción se fija alMENSAJE. El defecto es VM-ADIO'S
-
+
- Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud. + Después de la extensión de las horas - la extensión dialplan paraenviar la llamada si la acción se fija a la EXTENSIÓN. El defecto es8300.
-
+
- Detalle de la mezcla de la lista - la composición de la entrada de lamezcla de la lista. Contiene la identificación de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada. + Después de las horas Buzón de Voz - la caja del voicemail para enviar lallamada si la acción se fija a VOICEMAIL.
-
+
- Método de la mezcla de la lista - el método de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER. + Horas después de la transferencia Grupo - Si después de las horas de Acción se establece en IN_GROUP, la llamada será enviada a este grupo de entrada si ésta entra en el grupo de fuera de la convocatoria régimen de tiempo definido para el grupo en -.
-
+
- Agente de pantalla ampliada Alt Dial - Esta característica permite a los agentes el acceso ampliado a los números de teléfono de suplentes lleva más allá de la norma Alt Teléfono y Address3 campos que pueden ser utilizados en VICIDIAL más allá de los números de teléfono de los principales número de teléfono. La extensión números de teléfono se puede marcar automáticamente utilizando la auto-Alt-función Marcación VICIDIAL en la configuración de la campaña, pero activar esta función de agente de pantalla también permitirá que el agente a llamar a estos números de la pantalla de su mandatario, así como editar su información. + N de colas n Agentes - Si este campo está establecido en Y o NO_PAUSED entonces no se pide se pondrá en la cola de este grupo en si no hay agentes conectado y las llamadas se vaya a la agente n Ninguna acción de la cola. La opción NO_PAUSED no se envían también las personas que llaman a la cola si sólo hay una pausa en los agentes en el grupo. Por defecto es n.
-
+
- Primera encuesta de archivo de audio - Este es el nombre de archivo de audio que se reproduce en cuanto el cliente coge el teléfono cuando se ejecuta una campaña de estudio. + No No Acción cola de agente - Si está activada ninguna cola Ningún Agente, entonces este campo se define en la llamada pasará si no hay agentes en la A-Group. Por defecto es el mensaje, este reproduce los archivos de sonido en el campo el valor de acción y luego cuelga el.
-
+
- Encuesta dígitos DTMF - Este campo es donde se define los dígitos que un cliente puede pulsar como una opción en una encuesta sobre la campaña. válidos son los dígitos DTMF0123456789*# + No hay ninguna cola Acción Agente Valor - Este es el valor de la acción anterior. El valor predeterminado es nbdy-avail-to-take-call|vm-goodbye.
-
+
- No encuesta interesadas dígitos - Este campo es donde se define el cliente presiona dígitos que indican que no están interesados. + Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE ---. Este campo como con los otros campos de audio en In-grupos, con la excepción del nombre de archivo de alerta de agente, puede tener múltiples archivos de audio reproducido si se pone un tubo de lista separada de los archivos de audio en el campo.
-
+
- Estudio de estado no le interesa - Este es un campo en el que seleccione el estado que debe utilizarse para no estoy interesado. Si se utiliza DNC y la campaña está configurada para utilizar DNC entonces el número de teléfono se añade automáticamente a la lista VICIDIAL interior DNC.y, posiblemente, la campaña específica de DNC lista. + Reproducir Mensaje de Bienvenida - Esta configuración seleccione para jugar cuando se define el mensaje de bienvenida, SIEMPRE desempeñará cada vez, NUNCA nunca jugar, IF_WAIT_ONLY sólo reproducirá el mensaje de bienvenida si la llamada no ir inmediatamente a un agente , y siempre YES_UNLESS_NODELAY reproducir el mensaje de bienvenida NO_DELAY menos que el ajuste está activado. El valor predeterminado es SIEMPRE.
-
+
- Encuesta de Opt-in de archivos de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha decidido participar en la encuesta, no esta opción, o no respondió si la respuesta no-acción se establece a OptOut. Después de este archivo de audio se reproduce, el método de encuesta se toman medidas. + Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto.
-
+
- No encuesta interesadas archivo de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha optado-de la encuesta, no ha optado-o no respondió si la respuesta no-acción se establece en OptIn. Después de este archivo de audio se reproduce, la llamada se colgó. + En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud.
-
+
- Método de encuesta - Esta opción se define lo que sucede a una convocatoria después de que el cliente ha optado-en. AGENT_XFER enviará la convocatoria a la siguiente agente disponible. Buzón de voz se envía la llamada al buzón de voz de la caja que se especifica en el campo de voz. EXTENSIÓN enviará al cliente a la extensión se define en la Encuesta Xfer campo Extensión. Colgar se cuelgue el cliente. CAMPREC_60_WAV enviará al cliente a tener una grabación con su respuesta, esta grabación se coloca en una carpeta con el nombre de la campaña dentro de la Campaña de Estudio de grabación Directorio. + En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60. Para desactivar la espera El símbolo, definir el intervalo a 0.
-
+
- Estudio n-Respuesta Acción - Este es donde se define lo que ocurrirá si no hay respuesta a la pregunta de la encuesta. OptIn sólo enviar la llamada al método de encuesta si el cliente pulsa una dígitos DTMF. OptOut enviará al cliente en el método de encuesta, aun cuando no presiona una dígitos DTMF. + Lugar jugar en línea - Este define si la persona que llama escuchará su lugar en la línea cuando entran en la cola, así como cuando escuchan la announcemend. El valor predeterminado es N.
-
+
- Respuesta encuesta dígitos Mapa - Esta es la sección donde usted puede definir una descripción para ir dígitos DTMF con cada opción que el cliente puede seleccionar. + Juega Mantenga Tiempo estimado - Este define si la persona que llama escuchará la estimación de tiempo de espera antes de ser transferido a un agente. El valor predeterminado es N. Si el cliente está en espera y escucha este mensaje de tiempo de espera estimado, el tiempo mínimo que se jugará es de 15 segundos.
-
+
- Encuesta Xfer Extensión - Si el método de encuesta de EXTENSIÓN se selecciona entonces la llamada de cliente se dirige a esta extensión dialplan. + Mantenga la opción Tiempo - Esto le permite especificar la ruta de la llamada si el tiempo de espera estimado es superior a la cantidad de segundos que se especifican a continuación. El valor predeterminado es NINGUNA.
-
+
- Estudio de grabación Campaña Directorio - Si el método de encuesta de CAMPREC_60_WAV luego se selecciona la respuesta de los clientes se registran y se coloca en un directorio llamado después de la campaña dentro de este directorio. + Mantenga la opción Tiempo Segundos - Si el tiempo de la opción se establece en algo, pero ninguno, este es el número de segundos de tiempo de espera estimado que el tiempo de activar la opción. El valor por defecto es 360 segundos. - +
+
+
+ Mantenga la opción Tiempo de Extensión - Si el tiempo de la opción se fija a la extensión, esta es la extensión dialplan que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. -
-
-
-Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible: -
  - random: órdenes por el valor al azar de la actualización en la tabla de los vicidial_live_agents -
  - oldest_call_start: las órdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. -
  - oldest_call_finish: las órdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. -
  - overall_user_level: las órdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. -
  - campaign_rank: órdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. -
  - fewest_calls: órdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
+
+
+ Mantenga la opción Tiempo de voz - Si el tiempo de la opción está establecida en voz, esta voz es la caja que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. -
-
-
-Tiempo de la llamada local - aquí es adonde usted fijó durante qué horas usted quisiera marcar, según lo determinado por el tiempo local en está en cuál usted está llamando. Esto es controlada por código de área y ajustada por tiempo de los ahorros de la luz del día si es aplicable. Las pautas generales en los E.E.U.U. para el negocio al negocio son los 9am a los 5pm y el negocio a las llamadas del consumidor es los 9am a los 9pm. +
+
+
+ Opción de Transferencia de celebrar Tiempo-Grupo A - Si el tiempo de la opción está establecida en IN_GROUP, este es el grupo de entrada que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. -
-
-
-Prefijo del dial - este campo permite más fácilmente cambiar una trayectoria de marcar a salir con un diverso método sin hacer una recarga en asterisco. El defecto es 9 basados sobre un 91NXXNXXXXXX en el dial plan - extensions.conf. +
+
+
+ Mantenga la opción Tiempo de llamada de archivo - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, este es el símbolo del nombre de archivo que se juega antes de la llamada se registra como un nuevo lugar a la lista de identificación se especifican a continuación si el tiempo de espera estimado es superior a la Mantenga la opción Tiempo Segundos. -
-
-
-Omita el código del teléfono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N. +
+
+
+ Mantenga la opción Tiempo de llamada Lista ID - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, esta es la lista de ID de la llamada, se añadirá como un nuevo lugar si el tiempo de espera estimado es superior a la opción Tiempo de Espera Segundos. -
-
-
-Campaña CallerID - este campo permite enviar de un número de encargo del callerid en las llamadas de salida. Úste es el número que demostraría para arriba en el callerid de la persona que usted está llamando. El defecto es DESCONOCIDO. Esta opción está solamente disponible si usted está utilizando PRIs - ISDN T1 o E1 - que tienen la característica de encargo del callerid se giraron. Esta característica puede también trabajar con los troncos IAX2 dependiendo de lo que admite su abastecedor. El callerID de encargo se aplica solamente a las llamadas puestas para la campaña de VICIDIAL directamente, cualquier tercer persona llama o las transferencias no enviarán el callerID de encargo. NOTA: A veces el poner DESCONOCIDO o PRIVADO en el campo rendirá enviar de su número del callerID del defecto por su portador con las llamadas. Usted puede desear probar esto y poner 0000000000 en el campo del callerid en lugar de otro si usted no desea enviarle CallerID. +
+
+
+ Agente de Alerta Nombre de archivo - El archivo de audio a jugar a un agente de anunciar que una llamada está llegando a su agente. Para no utilizar esta función establezca este valor por defecto es a X. Ding. -
-
-
-Extensión de Rec de la Campaña - este campo permite para que una extensión de encargo de la grabación sea utilizada con VICIDIAL. Esto permite que usted utilice diversas extensiones dependiendo sobre cuánto tiempo usted desea permitir una grabación máxima y qué tipo de codec usted desea registrar adentro. El defecto exten es 8309 que si usted sigue los ejemplos de SCRATCH_INSTALL registrarán en el formato de WAV para hasta que una hora. Otra opción incluida en los ejemplos es 8310 que registrarán en el formato del GSM para hasta que una hora. +
+
+
+ La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente después de jugarencendido la extensión alerta del agente. El defecto es 1000. -
-
-
-Grabación de la campaña - este menú permite que usted elija quénivel de la grabación se permite en esta campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. +
+
+
+ Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. -
-
-
-Nombre de fichero de Rec de la campaña - este campo permite que usted modifique el nombre para requisitos particulares de la grabación cuando la grabación de la campaña es ONDEMAND o ALLCALLS. Las variables permitidas son CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. El defecto es FULLDATE_AGENTE y parecería este 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que parecería este TESTCAMP_51020103108_3125551212. 50 char max. +
+
+
+ En el Grupo de grabación Sobreescribe - Este campo permite la superposición de la campaña llamada de ajuste de grabación. Este ajuste puede ser anulado por la grabación vicidial_user sobre el establecimiento. MINUSVALIDOS no anular la campaña de ajuste de grabación. NUNCA deshabilitará la grabación en el cliente. OnDemand es el valor por defecto y permite que el agente para iniciar y detener la grabación cuando sea necesario. ALLCALLS empezará a grabar en el cliente cuando se envía una llamada a un agente. ALLFORCE empezará a grabar en el cliente cuando se envía una llamada a un agente que el agente de ninguna opción para detener la grabación. -
-
-
-La registración retrasa - para la grabación de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabación en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0. +
+
+
+ En Nombre de archivo del grupo de grabación - Este campo sobre la Campaña de grabación régimen de nombramiento de ficheros si no está definido en ninguno. La variables son permitidos CAMPAÑA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. El valor por defecto es FULLDATE_AGENTE y se vería así 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que se vería así TESTCAMP_51020103108_3125551212. 50 caracteres máx. El valor predeterminado es NINGUNA. -
-
-
-Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. + 0) + { + ?> +
+
+
+ CC Activado - Configuración Y a este campo permite que el agente de control de calidad de elementos de trabajo. El valor predeterminado es N. -
-
-
-Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo'vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. +
+
+
+ CC estados - Esta zona es donde se selecciona el que lleva de estados debe ser pasado por el sistema de CC. Coloque una marca de verificación junto a la situación que desea revisar CC. -
-
-
-Xfer-Conf DTMF - Estos cuatro campos permiten para que usted tenga dos sistemas de conferencia de la transferencia y de precolocaciones de DTMF. Cuando se carga la llamada o la campaña, la escritura de vicidial.php demostrará dos botones en el marco de la transferir-conferencia y automo'vil-poblara' el nu'mero-a-dial y los campos del enviar-dtmf cuando está presionada. Si usted desea permitir transferencias consultivas, un fronter a unmás cercano, usted puede colocar CXFER pues uno de lasprecolocaciones del nu'mero-a-dial y del dial string apropiado seráenviado para hacer una transferencia consultiva local, entonces lalata LEAVE-3WAY-CALL justo del agente y movimiento encendido a sullamada siguiente. Si usted desea permitir transferencias ocultas declientes a una escritura de VICIDIAL AGI para registrar o un IVR,entonces coloque AXFER en el campo del nu'mero-a-dial. Usted puedetambién especificar una extensión de encargo después del AXFER odel CXFER, por ejemplo si usted desea hacer transferencias consultivasinternas en vez de local que usted pondría CXFER90009 en el campo delnu'mero-a-dial. +
+
+
+ CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de un control de calidad para los registros inbound_group. Los días de la semana no se tienen en cuenta para estas funciones. -
-
-
-Servicios repetidos programar - esta opción no prohibe a agente a la disposición una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado. +
+
+
+ CC Obtener Registro de lanzamiento- Esto permite que una de las siguientes acciones, que se activará en un agente de control de la calidad de recibir un nuevo registro. -
-
-
-Segundos de Wrap Up - el número de los segundos para forzar un agenteesperar antes de permitir que reciban o que marquen otra llamada. Elcontador de tiempo comienza tan pronto como un agente cuelgue paraarriba en su cliente - o en el caso del número alterno que marcacuando el agente acaba el plomo - defecto sea los segundos 0. Si elcontador de tiempo funciona hacia fuera antes de que el agente tengadispositioned la llamada, el agente todavía no se mueve encendido ala llamada siguiente hasta que seleccionan una disposición. +
+
+
+ Mostrar control de la calidad de grabación - , lo que permite una grabación que puede estar vinculado con el control de la calidad de registro que se mostrará en pantalla el agente de control de calidad. -
-
-
-Mensaje de Wrap up - esto es un mensaje campaña-especi'fico que seexhibirá en la pantalla del wrapup si se fijan los segundos delwrapup. +
+
+
+ CC Webform Dirección - Esta es la dirección del sitio web que un agente de control de calidad puede ir a al hacer clic en el enlace Formulario de Asistencia en la pantalla de control de calidad. -
-
-
-Lista interna del uso DNC - esto define si esta campaña es filtrarlos plomos contra la lista interna de DNC. Si se fija a Y, la tolvabuscará cada número de teléfono en la lista de DNC antes de ponerlaen la tolva. Si está en la lista de DNC entonces que cambiará eseconduce estado a DNCL así que no puede ser marcada. El defecto es N. - -
-
-
-Campaña de uso Lista DNC - Este define si esta campaña es un filtro contra el DNC lleva lista que es específico de la campaña únicamente. Si se configura a Y, la tolva se verá para cada número de teléfono en la campaña específica de DNC lista antes de colocarla en la tolva. Si es en la campaña específica de DNC se lista a continuación, cambiar de estado que llevan a DNCC por lo que no pueden ser marcados. El valor por defecto es N. - -
-
-
-Grupos De entrada Permitidos - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. - -
-
-
-La pausa del agente cifra activo - permite que los agentes seleccionenun código de la pausa cuando chascan encendido el botón de PAUSA envicidial.php. Los códigos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinión de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N. Fuerza de la fuerza de los agentes para elegir un código PAUSA si hacen clic en el botón PAUSA. - -
-
-
-Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N. - -
-
-
-Deshabilitar Modificar Cliente Teléfono - Si se pone a Y, no cambia el número de teléfono del cliente, cuando un agente disposiciones de la llamada. Y es por defecto. - -
-
-
-Agente Mostrar cola Conde - Si se establece a Y, cuando un cliente está a la espera de un agente, la cola de llamadas en la pantalla superior de la pantalla agente se iluminará en rojo y muestran el número de llamadas en espera. Y es por defecto. - -
-
-
-Identificación manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente. - -
-
-
-Manual de Acceso telefónico Filtro - Esto le permite filtrar las llamadas que hacen los agentes en el dial de modo de manual para esta campaña por cualquier combinación de los siguientes: DNC - a expulsar, CAMPAIGNLISTAS - el número debe estar dentro de las listas para la campaña, NINGUNA - sin filtro en el manual de marcación rápida o de marcación listas. - -
-
-
-Agente de pantalla Portapapeles Copiar - esta función por el momento sólo se han permitido para Internet Explorer. Esta característica le permite seleccionar un campo que será copiado al portapapeles el equipo del agente ordenador a una llamada que se envían a un agente. Usos comunes para ello son para permitir la fácil pegar los números de cuenta o números de teléfono en el legado de las aplicaciones cliente en el equipo agente. - -
-
-
-3-Vías de salida de llamadas CallerID - Esto define lo que es enviado como el número de callerID salida de 3 vías llamadas realizadas por el agente, la costumbre CAMPAÑA usos callerID campaña, el cliente utiliza el número de cliente que está activa en la pantalla y los agentes AGENT_PHONE utiliza el callerID el teléfono para que el agente se registra en. AGENT_CHOOSE permite elegir el agente que callerID utilizar para llamadas de 3 vías a partir de una lista de opciones. - -
-
-
-3-Vías de llamadas Prefijo telefónico - Esto define lo que se utiliza como prefijo de marcación para las llamadas de 3 vías, por defecto está vacío por lo que la campaña se utiliza el prefijo de marcación, por lo que puede passthru oye un pitido es de 88. - - 0) - { +
+
+
+ CC Escritura - Este es el script que puede ser utilizada por agentes de control de la calidad en la secuencia de comandos en la ficha de CC pantalla. + -
-
-
- CC Activado - Configuración Y a este campo permite que el agente de control de calidad de elementos de trabajo. El valor predeterminado es N.
-
+
- CC estados - Esta zona es donde se selecciona el que lleva de estados debe ser pasado por el sistema de CC. Coloque una marca de verificación junto a la situación que desea revisar CC. + Recordatorio de Transferencia de celebrar en Grupo - Si un cliente pide de nuevo a este grupo en más de una vez y esto no está establecido en NINGUNO, entonces la llamada será automáticamente enviado al Grupo de In-seleccionado en este campo . El valor predeterminado es NINGUNA.
-
+
- CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de registros de control de calidad para una campaña. Los días de la semana no se tienen en cuenta para estas funciones. + N Retraso de llamada Ruta - Configuración Y esto eliminará todos los tiempos de espera y anuncios de audio y tratar de enviar la llamada a un agente de la derecha. No anula el mensaje de bienvenida o celebrar la configuración rápida. El valor predeterminado es N.
-
+
- CC Obtener Registro de lanzamiento- Esto permite que una de las siguientes acciones, que se activará en un agente de control de la calidad de recibir un nuevo registro. + Estadísticas Porcentaje de llamadas respondidas dentro de X segundos - Este campo le permite ajustar el número de segundos que tienen las estadísticas en tiempo real de la pantalla se utiliza para calcular el porcentaje de llamadas que fueron contestadas respuesta en el plazo de X número de segundos en espera.
-
+
- Mostrar control de la calidad de grabación - , lo que permite una grabación que puede estar vinculado con el control de la calidad de registro que se mostrará en pantalla el agente de control de calidad. + Iniciar llamada URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank.
-
+
- CC Webform Dirección - Esta es la dirección del sitio web que un agente de control de calidad puede ir a al hacer clic en el enlace Formulario de Asistencia en la pantalla de control de calidad. + Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank.
-
+
- CC Escritura - Este es el script que puede ser utilizada por agentes de control de la calidad en la secuencia de comandos en la ficha de CC pantalla. - - -
-
-
-Buscar Vtiger Categoría - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si vtiger_search.php la página de búsqueda para el número de teléfono que se inscribió. Hay 4 opciones que pueden utilizarse en este campo: LEAD-Esta opción de búsqueda a través de la Vtiger sólo conduce, CUENTA-Esta opción de búsqueda a través de las cuentas y Vtiger todos los contactos y sub-contactos para el número de teléfono, VENDEDOR-Esta opción sólo a través de la búsqueda Vtiger vendedores, ACCTID-Esta opción sólo funciona para las cuentas y que se llevará a vicidial vendor_lead_code el campo y tratar de buscar el ID de cuenta Vtiger. Si se intenta sin éxito que cualquier otro método que la lista que ha seleccionado. Múltiples opciones pueden ser utilizados para cada búsqueda, pero en grandes bases de datos no es recomendable. El valor predeterminado es PLOMO. - -
-
-
-Crear Vtiger Registro de llamadas - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si la nueva actividad Vtiger registro se crea para la llamada cuando el agente va a la página vtiger_search. Y es por defecto. - -
-
-
-Crear Vtiger plomo Expediente - Si está habilitado Vtiger integración en la configuración del sistema y Vtiger Búsqueda Categoría incluye PLOMO entonces esta configuración definirá si un nuevo registro de conducir Vtiger es creada cuando el agente va a la página vtiger_search y no se registro determinó que la llamada número de teléfono. Y es por defecto. - -
-
-
-Pantalla de inicio de sesión Vtiger - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si el usuario está conectado a la interfaz automáticamente Vtiger los usuarios cuando ingresan a VICIDIAL. Y es por defecto. - -
-
-
-Grupo Alias permitidas - Si desea permitir que su grupo de agentes a utilizar alias, entonces necesita hacer esto a Y. Grupo Alias se explican más en la sección de administración, permiten a los agentes para seleccionar diferentes callerIDs para llamadas salientes manual que se puede colocar. El valor predeterminado es N. - -
-
-
-Grupo Alias predeterminado - Si han permitido Grupo Alias este es el grupo de alias que se ha seleccionado en primer lugar, por defecto cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA. - - - - - -



- -VICIDIAL_LISTAS TABLA

-
-
-Identificación de la lista - Úste es el nombre numérico de la lista, él no es editable después de la sumisión inicial, debe contener solamente números y debe estar entre 2 y 8 caracteres en longitud. Must be a number greater than 100. - -
-
-
-Nombre de la lista - Ésta es la descripción de la lista, debe estar entre 2 y 20 caracteres en longitud. - -
-
-
-Descripción de la lista - éste es el campo de la nota para la lista,él es opcional. - -
-
-
-Fecha del cambio de la lista - ésta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera. - -
-
-
-Fecha de la llamada del último de la lista - ésta es la vez últimaque conduce fue marcado de esta lista. - -
-
-
-Campaña - Ésta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente. - -
-
-
-Activo - esto define si la lista debe ser marcada encendido o no. - -
-
-
-Reajuste el Conducir-Llamar-Estado para esta lista - esto reajusta todos los plomos en esta lista a N para "no llamado puesto que reajuste pasado" y significa que cualquier plomo puede ahora ser llamado si es el estado derecho según lo definido en la pantalla de la campaña. - -
-
-
-Lista DNC VICIDIAL - Esta lista de No Llamar contiene cada lugar que se ha establecido en un estado de la DNC en el sistema. A través de la LISTAS - AÑADIR AL NÚMERO DNC página usted puede agregar manualmente los números de esta lista a fin de que no van a ser llamados por las campañas que utilizan la lista interna DNC. También existe la opción de añadir conduce a la campaña específica de DNC listas para esas campañas que les han. - - - -



- -VICIDIAL_Entrantes_GROUPS TABLA

-
-
-Identificación de grupo - Úste es el nombre corto del grupo de entrada, él no es editable después de la sumisión inicial, no debe contener cualquier espacio y debe estar entre 2 y 20 caracteres en longitud. - -
-
-
-Nombre de grupo - Ésta es la descripción del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios . - -
-
-
-Color del grupo - éste es el color que exhibe en el cliente app de VICIDIAL cuando una llamada viene adentro en este grupo. Debe estar entre 2 y 7 caracteres de largo. Si esto es una definición del color de la tuerca hexagonal usted debe recordar poner a # al principio de la secuencia o VICIDIAL no trabajará correctamente. - -
-
-
-Activo - esto se determina si este grupo demuestra para arriba en la caja de la selección cuando un agente de VICIDIAL entra. - -
-
-
-Forma del Web - Ésta es la dirección de encargo que el chascar en el botón de la FORMA del WEB en VICIDIAL le llevará para las llamadas que vienen adentro en este grupo. - -
-
-
-Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible: -
  - random: órdenes por el valor al azar de la actualización en la tabla de los vicidial_live_agents -
  - oldest_call_start: las órdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. -
  - oldest_call_finish: las órdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. -
  - overall_user_level: las órdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. -
  - inbound_group_rank: órdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible. -
  - fewest_calls: órdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. -
  - campaign_rank: órdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. -
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. -
- -
-
-
-Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. - -
-
-Exhibición de Fronter - este campo se determina si el agente de entrada de VICIDIAL tendría el name(if del fronter allí es uno) exhibido en el campo del estado cuando la llamada viene al agente. - -
-
-
-Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. - -
-
-
-Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo'vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. - -
-
-
-Xfer-Conf DTMF - Estos cuatro campos permiten para que usted tenga dos sistemas de conferencia de la transferencia y de precolocaciones de DTMF. Cuando se carga la llamada o la campaña, la escritura de vicidial.php demostrará dos botones en el marco de la transferir-conferencia y automo'vil-poblara' el nu'mero-a-dial y los campos del enviar-dtmf cuando está presionada. Si usted desea permitir transferencias consultivas, un fronter a unmás cercano, usted puede colocar CXFER pues uno de lasprecolocaciones del nu'mero-a-dial y del dial string apropiado seráenviado para hacer una transferencia consultiva local, entonces lalata LEAVE-3WAY-CALL justo del agente y movimiento encendido a sullamada siguiente. Si usted desea permitir transferencias ocultas declientes a una escritura de VICIDIAL AGI para registrar o un IVR,entonces coloque AXFER en el campo del nu'mero-a-dial. Usted puedetambién especificar una extensión de encargo después del AXFER odel CXFER, por ejemplo si usted desea hacer transferencias consultivasinternas en vez de local que usted pondría CXFER90009 en el campo delnu'mero-a-dial. - -
-
-
-Llame a gota Segundos - el número de segundos de una llamada se quedará en la cola antes de ser considerado uno de DROP. - -
-
-
-Acción gota - Este menú le permite elegir lo que le sucede a una llamada cuando se ha estado esperando durante más de lo establecido en la Convocatoria de caída Segundos campo. Colgar simplemente colgar la llamada, enviar el mensaje de llamar a la Extensión de caída que ha definido a continuación, Buzón de voz se envía la llamada a la casilla de voz que ha definido a continuación y IN_GROUP enviará la convocatoria a la entrada del Grupo que se define a continuación. - -
-
-
-Caída Extensión - En caso de caída de acción se fija a un mensaje, este es el dial plan de ampliación que la convocatoria se enviará a si llega a soltar Convocatoria Segundos. - -
-
-
-Buzón de Voz - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. - -
-
-
-Grupo de Transferencia de gota - En caso de caída de Acción se establece en IN_GROUP, la llamada será enviada a este grupo entrantes si llega a soltar Convocatoria Segundos. - -
-
-
-Tiempo de la llamada - éste es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours. - -
-
-
-Horas después de Acción - La acción para llevar a cabo si es después de horas, tal como se definen en el tiempo de atención para este grupo entrante. Colgar inmediatamente colgar la llamada, MESSASGE de reproducir el archivo en el mensaje después de las horas Filenam campo, EXTENSIÓN enviará la llamada a la extensión del horario en el dialplan de voz y se envía la llamada al buzón de voz que figuran en el cuadro Después de horas de voz sobre el terreno , IN_GROUP enviará la convocatoria a la entrada seleccionada en el grupo después de las horas Grupo de Transferencia de seleccionar la lista. El valor predeterminado es MENSAJE. - -
-
-
-Después del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la acción se fija alMENSAJE. El defecto es VM-ADIO'S - -
-
-
-Después de la extensión de las horas - la extensión dialplan paraenviar la llamada si la acción se fija a la EXTENSIÓN. El defecto es8300. - -
-
-
-Después de las horas Buzón de Voz - la caja del voicemail para enviar lallamada si la acción se fija a VOICEMAIL. - -
-
-
-Horas después de la transferencia Grupo - Si después de las horas de Acción se establece en IN_GROUP, la llamada será enviada a este grupo de entrada si ésta entra en el grupo de fuera de la convocatoria régimen de tiempo definido para el grupo en -. - -
-
-
-Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE --- - -
-
-
-Reproducir Mensaje de Bienvenida - Esta configuración seleccione para jugar cuando se define el mensaje de bienvenida, SIEMPRE desempeñará cada vez, NUNCA nunca jugar, IF_WAIT_ONLY sólo reproducirá el mensaje de bienvenida si la llamada no ir inmediatamente a un agente , y siempre YES_UNLESS_NODELAY reproducir el mensaje de bienvenida NO_DELAY menos que el ajuste está activado. El valor predeterminado es SIEMPRE. - -
-
-
-Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto. - -
-
-
-En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud. - -
-
-
-En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60. Para desactivar la espera El símbolo, definir el intervalo a 0. - -
-
-
-Lugar jugar en línea - Este define si la persona que llama escuchará su lugar en la línea cuando entran en la cola, así como cuando escuchan la announcemend. El valor predeterminado es N. - -
-
-
-Juega Mantenga Tiempo estimado - Este define si la persona que llama escuchará la estimación de tiempo de espera antes de ser transferido a un agente. El valor predeterminado es N. - -
-
-
-Mantenga la opción Tiempo - Esto le permite especificar la ruta de la llamada si el tiempo de espera estimado es superior a la cantidad de segundos que se especifican a continuación. El valor predeterminado es NINGUNA. - -
-
-
-Mantenga la opción Tiempo Segundos - Si el tiempo de la opción se establece en algo, pero ninguno, este es el número de segundos de tiempo de espera estimado que el tiempo de activar la opción. El valor por defecto es 360 segundos. - -
-
-
-Mantenga la opción Tiempo de Extensión - Si el tiempo de la opción se fija a la extensión, esta es la extensión dialplan que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. - -
-
-
-Mantenga la opción Tiempo de voz - Si el tiempo de la opción está establecida en voz, esta voz es la caja que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. - -
-
-
-Opción de Transferencia de celebrar Tiempo-Grupo A - Si el tiempo de la opción está establecida en IN_GROUP, este es el grupo de entrada que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. - -
-
-
-Mantenga la opción Tiempo de llamada de archivo - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, este es el símbolo del nombre de archivo que se juega antes de la llamada se registra como un nuevo lugar a la lista de identificación se especifican a continuación si el tiempo de espera estimado es superior a la Mantenga la opción Tiempo Segundos. - -
-
-
-Mantenga la opción Tiempo de llamada Lista ID - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, esta es la lista de ID de la llamada, se añadirá como un nuevo lugar si el tiempo de espera estimado es superior a la opción Tiempo de Espera Segundos. - -
-
-
-Extensión alerta del agente - la extensión a enviar en la sesióndel agente para anunciar que una llamada está viniendo al agente.Esta extensión debe tener un aparato de lectura de un archivo audio.No utilizar esta función fijó esto a X. Default es X. - -
-
-
-La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente después de jugarencendido la extensión alerta del agente. El defecto es 1000. - -
-
-
-Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. - -
-
-
-En el Grupo de grabación Sobreescribe - Este campo permite la superposición de la campaña llamada de ajuste de grabación. Este ajuste puede ser anulado por la grabación vicidial_user sobre el establecimiento. MINUSVALIDOS no anular la campaña de ajuste de grabación. NUNCA deshabilitará la grabación en el cliente. OnDemand es el valor por defecto y permite que el agente para iniciar y detener la grabación cuando sea necesario. ALLCALLS empezará a grabar en el cliente cuando se envía una llamada a un agente. ALLFORCE empezará a grabar en el cliente cuando se envía una llamada a un agente que el agente de ninguna opción para detener la grabación. - -
-
-
-En Nombre de archivo del grupo de grabación - Este campo sobre la Campaña de grabación régimen de nombramiento de ficheros si no está definido en ninguno. La variables son permitidos CAMPAÑA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. El valor por defecto es FULLDATE_AGENTE y se vería así 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que se vería así TESTCAMP_51020103108_3125551212. 50 caracteres máx. El valor predeterminado es NINGUNA. - - 0) - { - ?> -
-
-
- CC Activado - Configuración Y a este campo permite que el agente de control de calidad de elementos de trabajo. El valor predeterminado es N. - -
-
-
- CC estados - Esta zona es donde se selecciona el que lleva de estados debe ser pasado por el sistema de CC. Coloque una marca de verificación junto a la situación que desea revisar CC. - -
-
-
- CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de un control de calidad para los registros inbound_group. Los días de la semana no se tienen en cuenta para estas funciones. - -
-
-
- CC Obtener Registro de lanzamiento- Esto permite que una de las siguientes acciones, que se activará en un agente de control de la calidad de recibir un nuevo registro. - -
-
-
- Mostrar control de la calidad de grabación - , lo que permite una grabación que puede estar vinculado con el control de la calidad de registro que se mostrará en pantalla el agente de control de calidad. - -
-
-
- CC Webform Dirección - Esta es la dirección del sitio web que un agente de control de calidad puede ir a al hacer clic en el enlace Formulario de Asistencia en la pantalla de control de calidad. - -
-
-
- CC Escritura - Este es el script que puede ser utilizada por agentes de control de la calidad en la secuencia de comandos en la ficha de CC pantalla. - - -
-
-
-Recordatorio de Transferencia de celebrar en Grupo - Si un cliente pide de nuevo a este grupo en más de una vez y esto no está establecido en NINGUNO, entonces la llamada será automáticamente enviado al Grupo de In-seleccionado en este campo . El valor predeterminado es NINGUNA. - -
-
-
-N Retraso de llamada Ruta - Configuración Y esto eliminará todos los tiempos de espera y anuncios de audio y tratar de enviar la llamada a un agente de la derecha. No anula el mensaje de bienvenida o celebrar la configuración rápida. El valor predeterminado es N. - -
-
-
-Estadísticas Porcentaje de llamadas respondidas dentro de X segundos - Este campo le permite ajustar el número de segundos que tienen las estadísticas en tiempo real de la pantalla se utiliza para calcular el porcentaje de llamadas que fueron contestadas respuesta en el plazo de X número de segundos en espera. - -
-
-
-Grupo Alias predeterminado - Si han permitido Alias Grupo para la campaña de que el agente se registra en este grupo es el alias que se ha seleccionado en primer lugar por incumplimiento de una llamada procedente de este grupo entrante cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA. - - - - - -



- -VICIDIAL_Entrantes_DIDS TABLA

-
-
-
-Extensión DID - Este es el número, extensión o DID que hará que esta entrada y que va a la ruta en el sistema que utiliza esta función. Hay un DID reservados por defecto que puede utilizar que es sólo la palabra-por defecto-, sin los guiones, que permiten el envío de cualquier llamada que no coincida con cualquier otro de los modelos existentes por defecto DID. - -
-
-
-Descripción DID - Esta es la descripción de la entrada de rutas DID. - -
-
-
-DID activa - Este es el campo en el que configurar la entrada a DID activa o no. Y es por defecto. - -
-
-
-Ruta DID - Este es el tipo de ruta que establezca el uso de DID. EXTEN enviará las llamadas a la extensión entró a continuación, enviará las llamadas de voz directamente a la caja de voz entró a continuación, AGENTE enviará las llamadas a un agente VICIDIAL si está conectado, TELÉFONO enviará la llamada a un teléfono de entrada, seleccione a continuación, se IN_GROUP enviar las llamadas directamente a la entrada del grupo especificado. El valor predeterminado es EXTEN. - -
-
-
-Extensión - Si se ha seleccionado como EXTEN DID la ruta, entonces esta es la extensión que llama dialplan se enviará a. El valor predeterminado es 9998811112, no hay servicio. - -
-
-
-Extensión Contexto - Si se ha seleccionado como EXTEN DID la Ruta, este es el contexto en el que pide dialplan se enviará a. El valor por defecto es por defecto. - -
-
-
-Buzón de voz Caja - Si se ha seleccionado como voz de la DID de carreteras, este es el buzón de voz que llama a la casilla se enviará a. Por defecto está vacío. - -
-
-
-Teléfono Extensión - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la extensión del teléfono que las llamadas se enviarán a. - -
-
-
-Teléfono IP del servidor - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la IP del servidor para la extensión del teléfono que las llamadas se enviarán a. - -
-
-
-Agente de usuario - Si se ha seleccionado como Agente de la DID de carreteras, este es el Agente VICIDIAL pide que se enviará a. - -
-
-
-Usuario no disponible Acción - Si se ha seleccionado como Agente de la Ruta de DID, y el usuario no está conectado o disponible, entonces este es el camino que las convocatorias se. - -
-
-
-En Configuración de usuario Ruta-Grupo - Si se ha seleccionado como Agente de la DID de carreteras, este es el grupo en que se utilizará para la configuración de la cola como la persona que llama está a la espera de ser enviado a la agente. El valor predeterminado es AGENTDIRECT. - -
-
-
-En el Grupo-ID - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el grupo en que las llamadas se enviarán a. - -
-
-
-En llamada de grupo Manipule Método - Si se ha seleccionado como IN_GROUP DID la ruta, entonces este es el llamado método utilizado para la manipulación de estas llamadas. CID se añada un nuevo registro de conducir en cada llamada mediante la CallerID como el número de teléfono, CIDLOOKUP tratará de buscar el número de teléfono por el CallerID en todo el sistema, CIDLOOKUPRL se attampt a buscar el número de teléfono por el CallerID en una sola lista especificada , CIDLOOKUPRC se attampt a buscar el número de teléfono por el CallerID en las listas de todos los que pertenecen a la campaña se especifica, más cerca se especifica para VICIDIAL pide más estrecha, ANI se añada un nuevo registro de conducir en cada llamada mediante la ANI como el número de teléfono, ANILOOKUP tratará de buscar el número de teléfono de la ANI en todo el sistema, ANILOOKUPRL se attampt a buscar el número de teléfono de la ANI en una sola lista especificada, XDIGITID impulsará la persona que llama para una X dígitos antes de la llamada se pondrá en la cola. El valor predeterminado es CID. - -
-
-
-En Grupo Agente Método de búsqueda - Si se ha seleccionado como IN_GROUP la ruta DID, este agente es el método de búsqueda para ser utilizado por el grupo de entrada, la LO es equilibrado de carga-y-Rebose intentará enviar la convocatoria a un agente en el servidor local antes de intentar enviar a un agente en otro servidor, LB es equilibrado de carga-y se trata de enviar la convocatoria a la siguiente agente, sin importar lo que ellos están en el servidor, el SO es el servidor y sólo se sólo intenta enviar las llamadas a los agentes en el servidor que la llamada se produjo en el. El valor predeterminado es LB. - -
-
-
--En la lista Grupo de Identificación - Si se ha seleccionado como IN_GROUP DID la ruta, entonces esta es la lista de ID que lleva puede ser buscado a través de y que se lleva inserta en caso necesario. - -
-
-
-En el Grupo-ID de campaña - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el ID de campaña que lleva pueden ser buscadas en si la llamada es manejar método CIDLOOKUPRC. - -
-
-
-En el Grupo-Teléfono Código - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el Teléfono Código utilizarse si el plomo es un nuevo creado. - - - - -



- -VICIDIAL_REMOTE_AGENTS TABLA

-
-
-Comienzo de la identificación del usuario - Ésta es la identificación del usuario que comienza se utiliza que cuando las entradas alejadas del agente se insertan en el sistema. Si el número de líneas se fija más altamente de 1, este número es incrementado por uno hasta que cada línea tiene una entrada. Se cerciora de usted crear una nueva cuenta del usuario de VICIDIAL con un nivel de usuario de 4 o grande si usted quisiera que pudieran utilizar la página de vdremote.php para el acceso alejado de la tela de esta cuenta. - -
-
-
-Número de líneas - el define cuánto crea el agente alejado las entradas el sistema, y se determina cuántas líneas piensa que puede enviar con seguridad al número debajo. - -
-
-
-IP del servidor - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea. - -
-
-
-Extensión externa - éste es el número que usted desea las llamadas remitidas a. Cerciórese de que sea un número dial plan completo y que si usted necesita 9 al principio usted lo pone adentro aquí. Pruebe marcando este número de un teléfono en el sistema. - -
-
-
-Estado - aquí es donde usted da vuelta al agente alejado por intervalos. Tan pronto como el agente sea activo el sistema asume que puede enviarle llamadas. Puede tomar hasta 30 segundos una vez que usted cambie el estado a inactivo para parar el recibir de llamadas. - -
-
-
-Campaña - aquí es donde usted selecciona la campaña que estos agentes alejados serán registrados en. Necesidades de entrada de utilizar la campaña MÁS CERCANA y de seleccionar las campañas de entrada debajo de ésa que usted desea recibir llamadas de. - -
-
-
-Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. - - -



- -VICIDIAL_CAMPAIGN_LISTAS

-
-
-Las listas dentro de esta campaña se enumeran aquí, si son activas son denotadas por la Y o N y usted pueden ir a la pantalla de la lista chascando en la identificación de la lista en la primera columna. - - -



- -VICIDIAL_CAMPAIGN_STATUSES TABLA

-
-
-Con el uso de los estados de encargo de la campaña, usted puede tener estados que existan solamente para una campaña específica. El estado debe ser 1-8 caracteres en longitud, la descripción debe ser 2-30 caracteres en longitud y seleccionable define si demuestra para arriba en VICIDIAL como disposición. Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas. La opción de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico. - - - - 0) - { - ?> -



- - VICIDIAL_CAMPAIGN_HOTKEYS TABLA

-
-
- Con el uso de los hot keys de encargo de la campaña, los agentes que utilizan el retraso vicidial de la lata del tela-cliente y la disposición llama apenas presionando una sola llave en su teclado. Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de teléfono alterno que marca, ALTPH2 de HotKey - el dialcaliente del teléfono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen. + Grupo Alias predeterminado - Si han permitido Alias Grupo para la campaña de que el agente se registra en este grupo es el alias que se ha seleccionado en primer lugar por incumplimiento de una llamada procedente de este grupo entrante cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA. @@ -3901,10 +4442,191 @@ if ($SSoutbound_autodial_active > 0)



- VICIDIAL_LEAD_RECYCLE TABLA

-
+ VICIDIAL_Entrantes_DIDS TABLA


- Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. +
+
+ Extensión DID - Este es el número, extensión o DID que hará que esta entrada y que va a la ruta en el sistema que utiliza esta función. Hay un DID reservados por defecto que puede utilizar que es sólo la palabra-por defecto-, sin los guiones, que permiten el envío de cualquier llamada que no coincida con cualquier otro de los modelos existentes por defecto DID. + +
+
+
+ Descripción DID - Esta es la descripción de la entrada de rutas DID. + +
+
+
+ DID activa - Este es el campo en el que configurar la entrada a DID activa o no. Y es por defecto. + +
+
+
+ Ruta DID - Este es el tipo de ruta que establezca el uso de DID. EXTEN enviará las llamadas a la extensión entró a continuación, enviará las llamadas de voz directamente a la caja de voz entró a continuación, AGENTE enviará las llamadas a un agente VICIDIAL si está conectado, TELÉFONO enviará la llamada a un teléfono de entrada, seleccione a continuación, se IN_GROUP enviar las llamadas directamente a la entrada del grupo especificado. El valor predeterminado es EXTEN. CALLMENU enviará la llamada a definir el menú de llamadas. + +
+
+
+ Extensión - Si se ha seleccionado como EXTEN DID la ruta, entonces esta es la extensión que llama dialplan se enviará a. El valor predeterminado es 9998811112, no hay servicio. + +
+
+
+ Extensión Contexto - Si se ha seleccionado como EXTEN DID la Ruta, este es el contexto en el que pide dialplan se enviará a. El valor por defecto es por defecto. + +
+
+
+ Buzón de voz Caja - Si se ha seleccionado como voz de la DID de carreteras, este es el buzón de voz que llama a la casilla se enviará a. Por defecto está vacío. + +
+
+
+ Teléfono Extensión - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la extensión del teléfono que las llamadas se enviarán a. + +
+
+
+ Teléfono IP del servidor - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la IP del servidor para la extensión del teléfono que las llamadas se enviarán a. + +
+
+
+ Llame Menú - CALLMENU Si se selecciona como la Ruta de DID, entonces este es el menú de llamada que las llamadas serán enviados a. + +
+
+
+ Agente de usuario - Si se ha seleccionado como Agente de la DID de carreteras, este es el Agente VICIDIAL pide que se enviará a. + +
+
+
+ Usuario no disponible Acción - Si se ha seleccionado como Agente de la Ruta de DID, y el usuario no está conectado o disponible, entonces este es el camino que las convocatorias se. + +
+
+
+ En Configuración de usuario Ruta-Grupo - Si se ha seleccionado como Agente de la DID de carreteras, este es el grupo en que se utilizará para la configuración de la cola como la persona que llama está a la espera de ser enviado a la agente. El valor predeterminado es AGENTDIRECT. + +
+
+
+ En el Grupo-ID - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el grupo en que las llamadas se enviarán a. + +
+
+
+ In-Group Call Handle Method - IN_GROUP Si se selecciona como la Ruta de DID, entonces este es el llamado método de control utilizado para estas llamadas. Cid agregar un registro de conducir nuevo con cada llamada mediante la CallerID como el número de teléfono, CIDLOOKUP intentará buscar el número de teléfono por el CallerID en todo el sistema, CIDLOOKUPRL intentará buscar el número de teléfono por el CallerID en una sola lista especificada , CIDLOOKUPRC intentará buscar el número de teléfono por el CallerID en todas las listas que pertenecen a la campaña especificada, más cerca se especifica para Vicidial Closer llamadas, ANI añadirá un nuevo registro de conducir con cada llamada mediante la ANI como el número de teléfono, ANILOOKUP intentará buscar el número de teléfono de la ANI en todo el sistema, ANILOOKUPRL intentará buscar el número de teléfono de la ANI en una sola lista especificada, XDIGITID pedirá la llamada de un código de dos dígitos X antes de la llamada se pondrá en la cola, VIDPROMPT pedirá la persona que llama por su número de identificación y creará un registro de conducir nuevo con el CallerID como el número de teléfono y el ID como el identificador de proveedor, VIDPROMPTLOOKUP intentará buscar el ID en todo el sistema, VIDPROMPTLOOKUPRL intentará búsqueda del proveedor de identificación de la identificación en una sola lista se especifica, VIDPROMPTLOOKUPRC tratará de buscar el proveedor de identificación de la identificación en todas las listas que pertenecen a la campaña especificado. El valor predeterminado es CID. + +
+
+
+ En Grupo Agente Método de búsqueda - Si se ha seleccionado como IN_GROUP la ruta DID, este agente es el método de búsqueda para ser utilizado por el grupo de entrada, la LO es equilibrado de carga-y-Rebose intentará enviar la convocatoria a un agente en el servidor local antes de intentar enviar a un agente en otro servidor, LB es equilibrado de carga-y se trata de enviar la convocatoria a la siguiente agente, sin importar lo que ellos están en el servidor, el SO es el servidor y sólo se sólo intenta enviar las llamadas a los agentes en el servidor que la llamada se produjo en el. El valor predeterminado es LB. + +
+
+
+ -En la lista Grupo de Identificación - Si se ha seleccionado como IN_GROUP DID la ruta, entonces esta es la lista de ID que lleva puede ser buscado a través de y que se lleva inserta en caso necesario. + +
+
+
+ En el Grupo-ID de campaña - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el ID de campaña que lleva pueden ser buscadas en si la llamada es manejar método CIDLOOKUPRC. + +
+
+
+ En el Grupo-Teléfono Código - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el Teléfono Código utilizarse si el plomo es un nuevo creado. + + + + +



+ + VICIDIAL_CALL MENU TABLA

+
+
+ Menú ID - Este es el ID para este paso del menú de llamada. Esto también se mostrará como el contexto que se utiliza en el dialplan para esta convocatoria de menú. + +
+
+
+ Nombre de menú - Este campo es el nombre descriptivo para el menú de llamada. + +
+
+
+ Menú del sistema - Este campo contiene el nombre de archivo del sistema de audio para jugar en el comienzo de este menú. Puede introducir propmts múltiples en este campo y los demás ámbitos del sistema mediante la separación de ellos con un carácter de canalización. + +
+
+
+ Menú de tiempo de espera - Este campo es donde se define el tiempo de espera en segundos que debe esperar el menú de la persona que llama a entrar en una opción de DTMF. Establecer este campo a cero 0 significa que no habrá tiempo de espera después de que el sistema se juega. + +
+
+
+ Menú de tiempo de espera del sistema - Este campo contiene el nombre de archivo del sistema de audio a jugar cuando el tiempo de espera ha sido alcanzado. El valor predeterminado es NINGUNO para jugar sin audio en tiempo de espera. + +
+
+
+ Menú del sistema no válido - Este campo contiene el nombre de archivo del sistema de audio para que suene cuando la llamada se ha seleccionado una opción válida. El valor predeterminado es NINGUNO para jugar sin audio en inválida. + +
+
+
+ Repita Menú - Este campo es donde se define el número de veces que el menú se reproducirá después de la primera opción válida si no se hace por la persona que llama. Por defecto es de 1 a repetir el menú una vez. + +
+
+
+ Menú Hora Hora - Este campo es donde se puede seleccionar si desea restringir el acceso de llamadas del menú a la hora específica creada en el tiempo seleccionado de llamadas. Si el tiempo de atención está en blanco, este ajuste será ignorado. Por defecto es 0 para discapacitados. + +
+
+
+ Identificación Del Tiempo De la Llamada - Este es el ID de tiempo de atención que se utilizarán para restringir los tiempos de llamada si se activa la opción de menú Hora Hora. + +
+
+
+ Pide pista en tiempo real Informe - Este campo es donde se puede seleccionar si desea que el llamado a un seguimiento en la pantalla en tiempo real como una llamada entrante IVR tipo. El valor predeterminado es 1 para los activos. + +
+
+
+ Grupo de seguimiento de - Esta es la identificación que se puede utilizar para rastrear las llamadas a este menú de llamada cuando se mira al Informe de IVR. La lista incluye CALLMENU como predeterminado, así como todos los Grupos de In -. + +
+
+
+ Valor de la opción - Este campo es donde se define la opción de menú, las opciones posibles son: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. El TIMECHECK opción especial sólo puede utilizarse si tiene menú Hora Hora activado y hay un tiempo de atención definido para el menú de. Para eliminar una opción, establezca la ruta quitar y la opción se borrará cuando usted haga clic en el botón ENVIAR. + +
+
+
+ Opción Descripción - Este campo es donde se puede describir la opción, esta descripción se pondrá en el dialplan como un comentario sobre la opción. + +
+
+
+ Opción Ruta - Este menú contiene las opciones de a dónde enviar la llamada si se selecciona esta opción: CALLMENU, endogrupo, DID, Hangup, EXTENSION, teléfono. Para CALLMENU, el valor de ruta debe ser el ID del menú de llamadas que desea que la convocatoria enviada a. Por grupo interno, el grupo interno que desea que el llamado a ser enviado a las necesidades para ser seleccionada, así como las otras 5 opciones que se deben establecer correctamente la ruta de una llamada a un grupo de entrada. Para DID, el valor de ruta debe ser el patrón de DID que desea enviar la llamada. Para HANGUP, el valor de ruta pueden ser el nombre de un archivo de audio para jugar antes de colgar la llamada. Por extensión, el valor de ruta debe ser la extensión dialplan que desea enviar la llamada a, y el contexto de valor de ruta es el contexto que se encuentra en la extensión, si se deja en blanco el contexto de forma predeterminada por defecto. Por teléfono, el valor de ruta debe ser el valor de inicio de sesión de teléfono de la entrada de los teléfonos que desea enviar la llamada. Para correo de voz, el valor de ruta debe ser el número del buzón de correo de voz, el mesage disponible será jugado. Para AGI, el valor de ruta debe ser el script de AGI y los valores que deben pasar a ella. + +
+
+
+ Opción Ruta Valor - Este campo es donde se introduce el valor que se define en la opción seleccionada la ruta que la convocatoria debe ser dirigida a la. + +
+
+
+ Opción Ruta valor de contexto - Este campo es opcional y sólo se utiliza para las rutas opción de prórroga. + +
+
+
+ Custom Dilplan entrada - Este campo le permite entrar en los elementos dialplan que desea para el menú de llamada. @@ -3912,1127 +4634,1415 @@ if ($SSoutbound_autodial_active > 0)



- ESTADOS AUTO DEL DIAL DE VICIDIAL ALT

-
+ VICIDIAL_REMOTE_AGENTS TABLA

+

- Si se fija el campo que marca del Alt-Nu'mero auto, después losplomos que son dispositioned bajo estos estados del dial del alt delautomóvil tendrán su alt_phone y-o los campos address3 marcadosdespués de que cualesquiera de estos ninguno-contesten a estados sefijan. - - - - - -



- -VICIDIAL CÓDIGOS DE LA PAUSA DEL AGENTE

-
-
-Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos códigos de la pausa cuandochascan encendido el botón de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El códigode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del código de la pausa puede estar nomás de largo de 30 caracteres. - - - - - -



- -VICIDIAL_USER_GROUPS TABLA

-
-
-Grupo de usuario - éste es el nombre corto de un grupo de usuario de Vicidial, intento para no utilizar ningunos espacios o puntuación para los caracteres de este máximo 20 del campo, mínimo de 2 caracteres. - -
-
-
-Nombre de grupo - Ésta es la descripción del máximo vicidial del grupo de usuario de 40 caracteres. - -
-
-
-FuerzaReloj de tiempo Login - Esta opción le permite no dejar que un agente acceder a la interfaz de agente VICIDIAL si no han iniciado sesión en el timeclock. El valor por defecto es N. Hay una opción para eximir a los usuarios de administración, los niveles 8 y 9. - -
-
-
-Cambio de título ejecutivo - Esta opción le permite restringir el acceso basado en agente de los cambios que se seleccione a continuación. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. El valor predeterminado es desactivado. - -
-
-
-Grupo de cambios - Esta es una lista de cambios seleccionables que pueden limitar el tiempo de acceso de agentes en el sistema. - -
-
-
-Campañas permitidas - ésta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesión. La opción de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesión a cualquiercampaña en el sistema. - - 0) - { - ?> -
-
-
- CC permitidas Campañas - Esta es una lista de seleccionables Campañas que los miembros de este grupo de usuarios podrá CC. El ALL-CAMPAÑAS opción permite a los usuarios en este grupo para cualquier campaña de control de la calidad en el sistema. + Comienzo de la identificación del usuario - Ésta es la identificación del usuario que comienza se utiliza que cuando las entradas alejadas del agente se insertan en el sistema. Si el número de líneas se fija más altamente de 1, este número es incrementado por uno hasta que cada línea tiene una entrada. Se cerciora de usted crear una nueva cuenta del usuario de VICIDIAL con un nivel de usuario de 4 o grande si usted quisiera que pudieran utilizar la página de vdremote.php para el acceso alejado de la tela de esta cuenta.
-
+
- CC permitidas entrantes Grupos - Esta es una lista de seleccionables de entrada que los miembros de grupos de este grupo de usuarios podrá CC. TODOS LOS GRUPOS-La opción permite a los usuarios en este grupo de usuarios a cualquier entrada del grupo de CC en el sistema. - + Número de líneas - el define cuánto crea el agente alejado las entradas el sistema, y se determina cuántas líneas piensa que puede enviar con seguridad al número debajo. + +
+
+
+ IP del servidor - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea. + +
+
+
+ Extensión externa - éste es el número que usted desea las llamadas remitidas a. Cerciórese de que sea un número dial plan completo y que si usted necesita 9 al principio usted lo pone adentro aquí. Pruebe marcando este número de un teléfono en el sistema. + +
+
+
+ Estado - aquí es donde usted da vuelta al agente alejado por intervalos. Tan pronto como el agente sea activo el sistema asume que puede enviarle llamadas. Puede tomar hasta 30 segundos una vez que usted cambie el estado a inactivo para parar el recibir de llamadas. + +
+
+
+ Campaña - aquí es donde usted selecciona la campaña que estos agentes alejados serán registrados en. Necesidades de entrada de utilizar la campaña MÁS CERCANA y de seleccionar las campañas de entrada debajo de ésa que usted desea recibir llamadas de. + +
+
+
+ Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. - - -



- -VICIDIAL_ESCRITURAS TABLA

-
-
-Identificación de la escritura - Éste es el nombre corto de una escritura de Vicidial. Éste necesita ser un identificador único. Intente no utilizar ningunos espacios o puntuación para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. - -
-
-Nombre de la escritura - éste es el título de una escritura de Vicidial. Éste es un resumen corto de los caracteres del máximo 50 de la escritura, mínimo de 2 caracteres. No debe haber espacios o puntuación de la clase en campo de los theis. - -
-
-Comentarios de la escritura - éste es tal como donde usted puede poner los comentarios para una escritura de Vicidial - cambiantes para liberar mejora de sept. el 23 -. caracteres del máximo 255, mínimo de 2 caracteres. - -
-
-Texto de la escritura - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: - -
-<iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&phone=--A--phone--B--" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> -</iframe> -
- -
-
-
-Activo - esto se determina si esta escritura se puede seleccionar para ser utilizado por una campaña. - - - - - - 0) - { - ?>



- VICIDIAL_LEAD_FILTROS TABLA

-
+ VICIDIAL_CAMPAIGN_LISTAS

+

- Identificación del filtro - Éste es el nombre corto de un filtro del plomo de Vicidial. Éste necesita ser un identificador único. No utilice ningunos espacios o puntuación para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. + Las listas dentro de esta campaña se enumeran aquí, si son activas son denotadas por la Y o N y usted pueden ir a la pantalla de la lista chascando en la identificación de la lista en la primera columna. + +



+ + VICIDIAL_CAMPAIGN_STATUSES TABLA

+

-
- Nombre del filtro - éste es un nombre más descriptivo del filtro. Éste es un resumen corto de los caracteres del máximo 30 del filtro, mínimo de 2 caracteres. + Con el uso de los estados de encargo de la campaña, usted puede tener estados que existan solamente para una campaña específica. El estado debe ser 1-8 caracteres en longitud, la descripción debe ser 2-30 caracteres en longitud y seleccionable define si demuestra para arriba en VICIDIAL como disposición. Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas. La opción de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico. -
-
- El filtro comenta - aquí es tal como donde usted puede poner los comentarios para un filtro de Vicidial - las llamadas todos los plomos de California -. los caracteres del máximo 255, mínimo de 2 caracteres. -
-
- Filtro SQL - Aquí es adonde usted pone el fragmento de la pregunta del SQL que usted desea filtrar cerca no comienza o el extremo con Y, eso será agregado por la escritura del cron de la tolva automáticamente. una pregunta del SQL del ejemplo que trabajaría aquí es el called_count 4 y called_count. - + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS TABLA

+
+
+ Con el uso de los hot keys de encargo de la campaña, los agentes que utilizan el retraso vicidial de la lata del tela-cliente y la disposición llama apenas presionando una sola llave en su teclado. Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de teléfono alterno que marca, ALTPH2 de HotKey - el dialcaliente del teléfono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen. -



-VICIDIAL_TIEMPOS DE LA LLAMADA TABLA

-
-
-Identificación del tiempo de la llamada - éste es el nombre corto deuna definición del tiempo de la llamada de Vicidial. Éste necesitaser un identificador único. No utilice ningunos espacios opuntuación para los caracteres de este máximo 10 del campo, mínimode 2 caracteres. +



-
-
-Nombre del tiempo de la llamada - éste es un nombre más descriptivode la definición del tiempo de la llamada. Éste es un resumen cortode los caracteres del máximo 30 de la definición del tiempo de lallamada, mínimo de 2 caracteres. - -
-
-El tiempo de la llamada comenta - aquí es donde usted puede poner loscomentarios para una definición del tiempo de la llamada de Vicidialtal como -10am hasta los 4pm con restricciones adicionales del estadode la llamada -. los caracteres del máximo 255. - -
-
-Tiempos del comienzo y de parada del defecto - éste es el tiempo dedefecto paran que el llamar será permitido que sea comenzado o dentrode esta definición del tiempo de la llamada si la hora de salida dela di'a-de-$$$-SEMANA no se define. 0 es medianoche. Evitar el llamarfijó totalmente este campo a 2400 y fijó el tiempo de parada deldefecto a 2400. Permitir el llamar 24 horas al día fijó la hora desalida a 0 y el tiempo de parada a 2400. - -
-
-Tiempos del comienzo y de parada del día laborable - éstos son lostiempos de encargo por el día que se puede fijar para la definicióndel tiempo de la llamada que las mismas reglas se aplican como con lostiempos del comienzo y de parada del defecto. - -
-
-Definiciones del tiempo de la llamada del estado - ésta es la listade las definiciones específicas del tiempo de la llamada del estadoque se siguen en esta definición del tiempo de la llamada. - -
-
-Estado del tiempo de la llamada del estado - éste es el código dedos letras para el estado que esta definición del tiempo que llamaestá para. Para que esto sea en efecto la llamada local mida eltiempo que se fija en la campaña debe tener este expediente deltiempo de la llamada del estado en él así como todos los plomos quetienen dos códigos del estado de la letra en ellos. + VICIDIAL_LEAD_RECYCLE TABLA

+
+
+ Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. -



-VICIDIAL_SHIFTS TABLA

-
-
-Cambio de ID - Este es el nombre corto de un Vicidial Mayús Definición. Este debe ser un identificador único. No utilice espacios ni puntuacion para este campo. 20 caracteres como máximo, mínimo de 2 caracteres. +



-
-
-Cambio de nombre - Este es un nombre más descriptivo de la Definición Mayúsculas. Este es un breve resumen de la definición Mayús. 50 caracteres como máximo, mínimo de 2 caracteres. + ESTADOS AUTO DEL DIAL DE VICIDIAL ALT

+
+
+ Si se fija el campo que marca del Alt-Nu'mero auto, después losplomos que son dispositioned bajo estos estados del dial del alt delautomóvil tendrán su alt_phone y-o los campos address3 marcadosdespués de que cualesquiera de estos ninguno-contesten a estados sefijan. -
-
-Hora de inicio cambio - Este es el momento en que comienza la campaña por turnos. Sólo deben ser números, serían las 9:30 AM y 5:00 AM 0930 sería 1700. - -
-
-Longitud cambio - Este es el tiempo en horas y minutos que dura la campaña por turnos. 8 horas sería 08:00 y 7 horas y 30 minutos sería 07:30. - -
-
-Cambio semana - En esta sección usted debe elegir los días de la semana que este cambio está activo. - - - - 0) - { + + +



- FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE VICIDIAL

-
+ VICIDIAL CÓDIGOS DE LA PAUSA DEL AGENTE

+

- El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidación de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. También, cerciórese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo: -
    -
  1. Código del plomo del vendedor - demuestra para arriba en el campo de la identificación del vendedor del GUI -
  2. Código de fuente - uso interno solamente para los admins y DBAs -
  3. Identificación de la lista - el número de la lista que estos plomos demostrarán para arriba debajo -
  4. Código del teléfono - el prefijo para el teléfono number(1 para los E.E.U.U., 01144 para Reino Unido, 01161 para AUS, el etc) -
  5. Número de teléfono - debe ser por lo menos 8 dígitos de largo -
  6. Título - título del customer(Mr. Ms señ., etc...) -
  7. Nombre -
  8. Inicial Media -
  9. Apellidos -
  10. Dirección, línea 1 -
  11. Dirección, línea 2 -
  12. Dirección, línea 3 -
  13. Ciudad -
  14. Estado - limitado a 2 caracteres -
  15. Provincia -
  16. Código Postal -
  17. País -
  18. Sexo -
  19. Fecha de nacimiento -
  20. Número De Teléfono Alternativo -
  21. Dirección Email -
  22. Frase De Seguridad -
  23. Comentarios -
+ Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos códigos de la pausa cuandochascan encendido el botón de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El códigode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del código de la pausa puede estar nomás de largo de 30 caracteres. -
NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. También, los módulos de un Perl de los pares sedeben cargar para ella para trabajar también -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en éstos mirando suarchivo del error_log de apache. También, para los cheques deduplicación contra gampaign enumera, la lista que tiene nuevos plomosel entrar él necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos.



- - - - - -TABLA DE LOS TELÉFONOS

-
-
-Extensión del teléfono - este campo es donde usted pone los nombres del teléfono que aparecen al marcar con asterisco no incluyendo el protocolo o la barra vertical del principio. Por ejemplo: para el teléfono SIP/test101 del SIP la extensión del teléfono sería test101. También, para los teléfonos IAX2 compruebe que usted utiliza el nombre del teléfono completo: IAX2/IAXphone1@IAXphone1 sería IAXphone1@IAXphone1. Para zap los teléfonos compruebe que usted pone el canal completo: Zap/25-1 sería 25-1. Otra nota, compruebe que usted fija el protocolo abajo correctamente para su tipo de teléfono. - -
-
-
-Número del Dial plan - este campo está para el número que usted marca para tener el anillo del teléfono. Este número se define en el archivo de extensions.conf de su servidor asterisco - -
-
-
-Caja de Buzón de Voz - este campo es para la caja del buzón de voz donde van los mensajes para al usuario de este teléfono. Utilizamos esto para comprobar los mensajes del buzón de voz y para que el usuario pueda acceder al Buzón de Voz desde astGUIclient. - -
-
-
-CallerID de salida - este campo es donde usted incorporara el número del callerID que usted quiera que aparezca en las llamadas de salida. Esto no funciona en las líneas RTB(non-PRI) T1/E1. - -
-
-
-Dirección IP del teléfono - este campo es para la dirección IP del teléfono si es un teléfono de VOZIP. Este es un campo opcional - -
-
-
-Dirección IP del ordenador - este campo es para la dirección IP del ordenador del usuario. Es un campo opcional - -
-
-
-IP del servidor - Este menú es donde usted selecciona en que servidor está el teléfono activo. - -
-
-
-Conexión - la conexión usada para el usuario del teléfono a laconexión a los usos del cliente. - -
-
-
-Contraseña - la contraseña usada para el usuario del teléfono a laconexión a los usos del cliente. - -
-
-
-Estado - el estado del teléfono en el sistema, puede ser ACTIVO y ADMIN permiten que los clientes del GUI trabajen. ADMIN permite el acceso a este Web site de administración. El resto de los estados no permiten el acceso al GUI o al Web de Admin. - -
-
-
-Cuenta activa - si el teléfono está activado ponerla en la lista del cliente del GUI. - -
-
-
-Tipo de teléfono - solamente para información administrativas. - -
-
-
-Nombre completo - usado por el GUIclient en la lista de teléfonos activos. - -
-
-
-Compañía - solamente para las notas administrativas. - -
-
-
-Cuadro - todavía no puesto en ejecución. - -
-
-
-Nuevos mensajes - número de los nuevos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco. - -
-
-
-Viejos mensajes - número de los viejos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco. - -
-
-
-Protocolo del cliente - el protocolo que el teléfono utiliza para conectar con el servidor del asterisco: El Sip, IAX2, Zap. También, para los números External remotos o los números SpeedDial que usted desea enumerar como teléfonos. - -
-
-
-GMT local - La diferencia a partir del tiempo malo del ZULÚ del time(or de Greenwich) donde se localiza el teléfono. NO AJUSTE POR TIEMPO DE LOS AHORROS DE LA LUZ DEL DÍA. Esto es utilizada por la campaña de VICIDIAL para exhibir exactamente el tiempo y el tiempo del cliente. - -
-
-
-Conexión del encargado - Ésta es la conexión que los clientes del GUI para este teléfono utilizarán tener acceso a la base de datos donde residen los datos del servidor. - -
-
-
-Secreto del encargado - Ésta es la contraseña que los clientes del GUI para este teléfono utilizarán tener acceso a la base de datos donde residen los datos del servidor. - -
-
-
-Usuario del defecto de VICIDIAL - éste debe poner un valor prefijado en el campo del usuario de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún usuario. - -
-
-
-Paso del defecto de VICIDIAL - éste debe poner un valor prefijado en el campo de la contraseña de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún paso. - -
-
-
-Campaña del defecto de VICIDIAL - éste debe poner un valor prefijado en el campo de la campaña de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ninguna campaña. - -
-
-
-Parque Exten - Ésta es la extensión del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. - -
-
-
-Extensión de la conferencia - Ésta es la extensión del parque de la conferencia del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. - -
-
-
-Parque Exten de VICIDIAL - Ésta es la extensión del estacionamiento del defecto para el cliente app de VICIDIAL. Verifique que diverso trabaje antes de que usted cambie esto. - -
-
-
-Archivo del parque de VICIDIAL - éste es el nombre del archivo de la extensión del parque del defecto VICIDIAL para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie éste limitado a 10 caracteres. - -
-
-
-Prefijo del monitor - éste es el prefijo dial plan para supervisar de zap los canales automáticamente dentro del app astGUIclient. Cambie solamente según los expedientes de extensiones de extensions.conf ZapBarge. - -
-
-
-Grabación Exten - Ésta es la extensión dial plan para la extensión de la grabación que se utiliza para caer en conferencias del meetme para registrarlas. Dura generalmente hasta que una hora si no parada verifica con el archivo de extensions.conf antes de cambiar. - -
-
-
-VMAIL Exten principal - Ésta es la extensión dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar. - -
-
-
-Descarga Exten de VMAIL - éste es el prefijo dial plan usado para enviar llamadas directamente al voicemail de un usuario de una llamada viva en el app. astGUIclient verifica con el archivo de extensions.conf antes de cambiar. - -
-
-
-Contexto de Exten - éste es el contexto dial plan que este teléfono utiliza sobre todo. Se asume que todos los números marcados por los apps del cliente están utilizando este contexto así que es una buena idea cerciorarse de que éste es el contexto más amplio posible verifica con el archivo de extensions.conf antes de cambiar. - -
-
-
-DTMF envían el canal - Ésta es la secuencia del canal usada para enviar sonidos de DTMF en conferencias del meetme de los apps del cliente. Verifique que exten y contexto con el archivo de extensions.conf. - -
-
-
-Grupo de salida de la llamada - éste es el grupo de canal que las llamadas de salida de este teléfono están puestas de. Hay rutinas de un par en los apps del cliente que utilizan esto. Para zap los canales que usted desea utilizar algo como Zap/g2, porque los troncos IAX2 usted desearía utilizar el prefijo completo de IAX como IAX2/VICItest1:secret@10.10.10.15:4569. Verifique que los troncos con el file(it de extensions.conf sean generalmente lo que usted ha definido como la variable global del TRUNK en la tapa del archivo). - -
-
-
-Localización del browser - esto es aplicable solamente a los clientes de UNIX/LINUX, el camino absoluto a Mozilla o el browser de Firefox en la máquina verifica esto lanzándolo manualmente. - -
-
-
-Instale el directorio - éste es el lugar en donde las escrituras astGUIclient y de astVICIDIAL están situadas en su máquina. Para Win32 debe ser algo como C:\AST_VICI y para UNIX debe ser algo como /usr/local/perl_TK. verifica esto manualmente. - -
-
-
-URL de CallerID - Ústa es la dirección de la tela de la página usada para hacer operaciones de búsqueda de encargo del callerID que es la dirección de prueba del defecto: http://astguiclient.sf.net/test_callerid_output.php - -
-
-
-URL del defecto de VICIDIAL - Ésta es la dirección de la tela de la página usada para hacer preguntas de encargo de la forma del Web de VICIDIAL que es la dirección de prueba del defecto: http://astguiclient.sf.net/test_VICIDIAL_output.php - -
-
-
-Registración de la llamada - esto se fija para verdad si el archivo de call_log.agi está en lugar en el archivo de extensions.conf para todo el de salida y las extensiones del retraso ' h ' para registrar todo llama. Ústa debe siempre ser 1 porque es manditory para muchos astGUIclient y características de VICIDIAL a trabajar correctamente. - -
-
-
-Conmutación del usuario - fije para verdad para permitir que el usuario cambie a otra cuenta del usuario. NOTA: Si los interruptores del usuario ellos pueden iniciar la grabación en la conversación de teléfono del nuevo usuario - -
-
-
-Comunicación - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas. - -
-
-
-Retraso del Admin - sistema a verdad para permitir que el usuario pueda al retraso cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. - -
-
-
-Secuestro del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extensión cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados. - -
-
-
-Monitor del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extensión cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados y como herramienta del entrenamiento. - -
-
-
-Parque de llamada - el sistema a verdad para permitir que el usuario pueda parquear invita el asimiento astGUIclient para ser tomado por cualquier otro usuario astGUIclient en el sistema. Las llamadas permanecen en el asimiento para hasta que un retraso de la media-hora entonces. Permitido generalmente para todos. - -
-
-
-Cheque de Updater - fije para verdad para exhibir una advertencia del popup que el tiempo del updater no ha cambiado en 20 segundos. Útil para los usuarios del Admin. - -
-
-
-Af que registra - fije para verdad para registrar muchas acciones del uso astGUIclient a un archivo de texto en la computadora del usuario. - -
-
-
-La coleta permitió - al sistema verdad para hacer que los apps del cliente utilicen el sistema central de la coleta del asterisco. Requerido para VICIDIAL y recomendado para todos los usuarios. - -
-
-
-Ventana emergente del CallerID - sistema a verdad para tener en cuenta los números definidos en el archivo de extensions.conf para enviar las pantallas del popup de CallerID a los usuarios astGUIclient. - -
-
-
-Botón de VMail - fije para verdad para exhibir el botón de VOICEMAIL y los mensajes cuentan la exhibición en astGUIclient. - -
-
-
-Rápido restaure - fije para verdad para permitir un nuevo índice de restauran de la información de la llamada para el astGUIclient. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. - -
-
-
-Rápido restaure la tarifa - en milisegundos. Utilizado solamente si es rápido restaure se permite. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. - -
-
-
-Persistant MySQL - si está permitida la conexión astGUIclient seguirá conectada en vez de conectar cada segundo. Útil si usted hace que un rápido restaure la tarifa fijada. Aumentará el número de conexiones en su máquina de MySQL. - -
-
-
-Número siguiente del dial auto - si está permitido el cliente de VICIDIAL marcará el número siguiente en la lista automáticamente sobre la disposición de una llamada a menos que seleccionaran "para parar el marcar" en la pantalla de la disposición. - -
-
-
-Pare Rec después de cada llamada - si está permitido el cliente de VICIDIAL parará se está encendiendo cualquier grabación después de que haya sido cada llamada dispositioned. Útil si usted está haciendo muchos de la grabación o usted están utilizando una forma de la tela para accionar la grabación. - -
-
-
-Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.La característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. - -
-
-
-Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. - -
-
-
-Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. - -
-
-
-Usuario de DBX - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. - -
-
-
-Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. - -
-
-
-DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. - -
-
-
-Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. Secundario server, no utilizado actualmente. - -
-
-
-Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. Secundario server, no utilizado actualmente. - -
-
-
-Usuario de DBY - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. Secundario server, no utilizado actualmente. - -
-
-
-Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. Secundario server, no utilizado actualmente. - -
-
-
-DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. Secundario server, no utilizado actualmente. - -
-
-
-Alias ID - el ID de los alias utilizados para permitir el balanceo de carga de teléfono de acceso. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud. - -
-
-
-Alias Nombre - El nombre utilizado para describir un alias de teléfonos, debe ser entre 2 y 50 caracteres de longitud. - -
-
-
-Lista de teléfonos Logins - La lista separada por comas de teléfono de acceso utilizado cuando un agente en la utilización de registros de teléfono de acceso equilibrado de carga. El agente de aplicación se encuentra el servidor activo con el menor número de agentes registrados en él y hacer una llamada de ese servidor con el agente al inicio de sesión. - -
-
-
-Teléfonos E-mail - La dirección de correo electrónico asociada con la entrada de este teléfono. Esto se utiliza para configuraciones de buzón de voz. - -
-
-
-ID de la plantilla - Este es el archivo de configuración de plantilla ID que este teléfono va a utilizar para la entrada de su configuración de Asterisk. El valor por defecto es - Inexistencia --. - -
-
-
-Conf Override Settings - If populated, and the ID de plantilla is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. - -
-
-
-Grupo Alias ID - el ID del grupo de alias utilizado por los agentes a marcar llamadas desde la interfaz de agente VICIDIAL con diferentes números de identificación de llamadas. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud. - -
-
-
-Grupo Alias Nombre - El nombre utilizado para describir un grupo de alias, debe ser entre 2 y 50 caracteres de longitud. - -
-
-
-Número de identificación de llamadas - el número de identificación de llamadas se utilizan en este Grupo de Alias. Debe ser sólo cifras. - -
-
-
-Nombre de identificación de llamadas - El nombre de identificación de llamadas que se pueden enviar a cabo con este grupo de alias. Por lo que sabemos esto sólo funcionará en Canadá en los circuitos del PRI y la utilización de un bucle troncal IAX de Asterisk a través de. - - - - -



- -TABLA DE LOS SERVIDORES

-
-
-ID Del Servidor - Este campo es donde usted pone el nombre del servidor del asterisco, no tiene que ser un submarino oficial del dominio, apenas un apodo para identificar el servidor a los usuarios del Admin. - -
-
-
-Descripción del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco. - -
-
-
-IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco. - -
-
-
-Activo - fije si el servidor del asterisco es activo o inactivo. - -
-
-
-Sistema de carga - Estas dos estadísticas muestran la loadavg veces de un sistema 100 y el porcentaje de uso de la CPU del servidor y se actualiza cada minuto. El loadavg debería ser en promedio por debajo de los 100 multiplicado por el número de núcleos de CPU de su sistema, para un rendimiento óptimo. El porcentaje de uso de la CPU debería permanecer por debajo de 50 para un rendimiento óptimo. - -
-
-
-Canales en vivo - Este campo muestra el número actual de canales que son de Asterisk en vivo en el sistema ahora. Es importante señalar que el número de canales de Asterisk es generalmente mucho mayor que el número de llamadas en un sistema. Este campo se actualiza una vez cada minuto. - -
-
-
-Uso del disco - Este campo mostrará el uso del disco para cada partición en este servidor. Este campo se actualiza una vez cada minuto. - -
-
-
-Versión del asterisco - fije la versión del asterisco que usted ha instalado en este servidor. Ejemplos: ' 1.2 ', ' 1.0.8 ', ' 1.0.7 ', ' CVS_HEAD ', ' REALMENTE VIEJO ', etc... Se utiliza esto porque las versiones 1.0.8 y 1.0.9 tienen un diverso método de ocuparse del insecto local del channels(a que ha estado fijado en CVS v1.0) y necesidad de ser tratado diferentemente cuando la manipulación de su Local/ acanala. También, CVS_HEAD actual y las 1.2 aplicaciones diverso encargado y comando del árbol del lanzamiento hicieron salir así que debe ser tratado diverso también. - -
-
-
-Troncos máximos de VICIDIAL - este campo determinará el número de las líneas máximo que el auto-dialer de VICIDIAL procurará invitar este servidor. Si usted desea dedicar dos PRI llenos T1 a VICIDIALing en un servidor entonces usted fijaría esto a 46. E1 defecto es 96. - -
-
-
-Pide máximo por segundo - Esta configuración determina el número máximo de llamadas que pueden ser colocados por la salida de marcación automática de secuencia de comandos en este servidor por segundo. Debe ser de 1 a 100. El valor predeterminado es 20. - -
-
-
-Anfitrión del telnet - éste es la dirección o el nombre del servidor del asterisco y es cómo los usos del encargado conectan con él de donde están funcionando. Si están funcionando en el servidor del asterisco, después el defecto del ' localhost ' está muy bien. - -
-
-
-El telnet vira hacia el lado de babor - éste es el puerto de la conexión del encargado del servidor del asterisco y es cómo los usos del encargado conectan con ella de donde están funcionando. El defecto de ' 5038 ' está para un estándar instala muy bien. - -
-
-
-Usuario del encargado - el username o la conexión conectaba genericly con el encargado del servidor del asterisco. El defecto es 'cron' - -
-
-
-Secreto del encargado - el secreto o la contraseña conectaba genericly con el encargado del servidor del asterisco. El defecto es '1234' - -
-
-
-Usuario en modo actualización del encargado - el username o la conexión conectaba con el encargado del servidor del asterisco optimizado para las escrituras de la actualización. Omita es 'updatecron' y asume el mismo secreto que el usuario genérico. - -
-
-
-El encargado escucha usuario - el username o la conexión usada para conectar con el encargado del servidor del asterisco optimizado para las escrituras que esperan a escuchar solamente salida. Omita es 'listencron' y asume el mismo secreto que el usuario genérico. - -
-
-
-El encargado envía a usuario - el username o la conexión usada para conectar con el encargado del servidor del asterisco optimizado para las escrituras que envían solamente acciones al encargado. Omita es 'sendcron' y asume el mismo secreto que el usuario genérico. - -
-
-
-El GMT del servidor compensó - la diferencia sobre horas a partir del tiempo del GMT no ajustado según el Luz del di'a-Ahorro-Tiempo del servidor. El defecto es '-5' - -
-
-
-Descarga Exten - el prefijo de VMail de la extensión usado en este servidor para enviar llamadas directamente a través de agc a una caja específica del voicemail. El defecto es '85026666666666' - -
-
-
-Extensión del ANUNCIO de VICIDIAL - la extensión del defecto si ninguno está presente en la campaña enviar llamadas para a marcar auto de VICIDIAL. El defecto es '8365' - -
-
-
-Contexto del defecto - el contexto dial plan del defecto usado para las escrituras que funcionan para este servidor. El defecto es 'defecto' - -
-
-
-Funcionamiento del sistema - fijar esta opción a Y permitirá laregistración del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N. - -
-
-
-Registros del servidor - fijar esta opción a Y permitirá laregistración de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, también laregistración de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y. - -
-
-
-AGI hecho salir - fijar esta opción a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO. - -
-
-
-El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N. - -
-
-
-Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0. - -
-
-
-Grabación Web Link - Esta opción le permite ignorar el valor por defecto de la pantalla de la grabación enlace en la página web de administración. El valor predeterminado es server_ip. - -
-
-
-Grabación de IP del servidor alternativo - Este valor es donde usted puede poner un servidor IP o nombre de otra máquina que se puede utilizar en lugar de la server_ip en los enlaces a las grabaciones en el administrador de páginas web. Por defecto está vacío. - -
-
-
-Activa del servidor de Asterisk - de Asterisk Si no se está ejecutando en este servidor, o si VICIDIAL no deberían usar este servidor, o si sólo se utiliza este servidor para otros scripts como script de la tolva de carga que usted quiere hacer esto para N. El valor por defecto es Y. - -
-
-
-Generar los archivos de configuración - Si desea que el sistema de auto-generar conf asterisco archivos sobre la base de los teléfonos entradas, las entradas de transportista y balanceo de carga dentro de la configuración VICIDIAL luego a este valor por defecto es Y. Y. - -
-
-
-Reconstruir los archivos de configuración - Si desea forzar una reconstrucción de los archivos de configuración de Asterisk o si alguno de los teléfonos o transportista entradas han cambiado esto debe establecerse en Y. Después de la configuración de archivos se han generado y se ha de Asterisk luego se vuelve a cargar esta será cambiado a N. El valor por defecto es Y. - - - - - -



- -vicidial_conf_templates TABLA

-
-
-ID de la plantilla - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar la configuración de plantillas en todo el sistema. - -
-
-
-Nombre de la plantilla - Este es el nombre descriptivo de la plantilla de archivo de configuración de entrada. - -
-
-
-Plantilla de Contenido - Este campo es donde usted puede entrar en la configuración específica para ser utilizado por todos los teléfonos o los transportistas y que están configurados para utilizar esta plantilla conf. Campos que no deben incluirse en este cuadro son: secreto, accountcode, cuenta, el nombre de usuario y buzón de correo. - - - - - -



- -vicidial_server_carriers TABLA

-
-
-Portador de Identificación - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar el soporte de esta entrada a través del sistema. - -
-
-
-Nombre del transportista - Este es el nombre descriptivo de la compañía entrada. - -
-
-
-Registro de cadena - Este campo es donde usted puede entrar en la cadena exacta necesaria en el SIP o IAX archivo de configuración de registro para el proveedor. Opcional, pero altamente recomendable si tu proveedor permite el registro. - -
-
-
-Plantilla ID - Este campo opcional permite elegir un archivo de configuración de plantilla para esta compañía aérea de entrada. - -
-
-
-Cuenta Entrar - Este campo se usa si no ha seleccionado una plantilla de usar, y es donde puede entrar en la configuración de la cuenta específica que se utilizará para esta compañía aérea. Si va a tomar en las llamadas entrantes de esta compañía aérea tronco es posible que desee establecer el contexto = trunkinbound dentro de este ámbito de modo que usted puede usar el proceso de tramitación de DID en VICIDIAL. - -
-
-
-Protocolo - Este campo le permite definir el protocolo a utilizar para el transportista entrada. Actualmente, sólo IAX y SIP son compatibles. - -
-
-
-Globals String - Este campo opcional le permite definir una variable global a utilizar para el transportista en el dialplan. - -
-
-
-Entrada Dialplan - Este campo opcional le permite definir un conjunto de entradas dialplan a usar para esta compañía aérea. - -
-
-
-IP del servidor - Este es el servidor que soporte este registro está asociado con. - -
-
-
-Activo - Esto define si el transportista se incluirán en la auto-generado o no los archivos de conf. - - - - - -



- -TABLA DE CONFERENCIAS

-
-
-Número de la conferencia - este campo es donde usted pone el número del dialpna de la conferencia del meetme. También se recomienda que el número del meetme en meetme.conf empareja este número para cada entrada. Esto está para las conferencias en astGUIclient y se utiliza para la funcionalidad de leave-3way-call en VICIDIAL. - -
-
-
-IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido. - - - - - 0) - { + VICIDIAL_USER_GROUPS TABLA

+
+
+ Grupo de usuario - éste es el nombre corto de un grupo de usuario de Vicidial, intento para no utilizar ningunos espacios o puntuación para los caracteres de este máximo 20 del campo, mínimo de 2 caracteres. + +
+
+
+ Nombre de grupo - Ésta es la descripción del máximo vicidial del grupo de usuario de 40 caracteres. + +
+
+
+ FuerzaReloj de tiempo Login - Esta opción le permite no dejar que un agente acceder a la interfaz de agente VICIDIAL si no han iniciado sesión en el timeclock. El valor por defecto es N. Hay una opción para eximir a los usuarios de administración, los niveles 8 y 9. + +
+
+
+ Cambio de título ejecutivo - Esta opción le permite restringir el acceso basado en agente de los cambios que se seleccione a continuación. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. El valor predeterminado es desactivado. + +
+
+
+ Grupo de cambios - Esta es una lista de cambios seleccionables que pueden limitar el tiempo de acceso de agentes en el sistema. + +
+
+
+ Campañas permitidas - ésta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesión. La opción de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesión a cualquiercampaña en el sistema. + +
+
+
+ Estado del agente visible Grupos - Esta es una lista seleccionable de grupos de usuarios y las funciones de usuario al que los miembros de este grupo de usuarios pueden ver el estado de las llamadas, así como la transferencia al interior de la pantalla del agente. La opción de grupo permite a los usuarios de este grupo para ver y transferir llamadas a cualquier usuario en el sistema. La campaña-AGENTES opción permite a los usuarios en este grupo para ver y transferir llamadas a cualquier usuario en la campaña que se registran en la. + +
+
+
+ Ver estado del agente de turno - Esta opción define si el agente va a ver la cantidad de tiempo que los usuarios en su barra lateral agente han sido en su estado actual. Por defecto es n sin o con discapacidad. + + 0) + { + ?> +
+
+
+ CC permitidas Campañas - Esta es una lista de seleccionables Campañas que los miembros de este grupo de usuarios podrá CC. El ALL-CAMPAÑAS opción permite a los usuarios en este grupo para cualquier campaña de control de la calidad en el sistema. + +
+
+
+ CC permitidas entrantes Grupos - Esta es una lista de seleccionables de entrada que los miembros de grupos de este grupo de usuarios podrá CC. TODOS LOS GRUPOS-La opción permite a los usuarios en este grupo de usuarios a cualquier entrada del grupo de CC en el sistema. + + + + +



- VICIDIAL_SERVER_TRONCOS TABLA

-
+ VICIDIAL_ESCRITURAS TABLA

+

- Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opciónpara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL. - + Identificación de la escritura - Éste es el nombre corto de una escritura de Vicidial. Éste necesita ser un identificador único. Intente no utilizar ningunos espacios o puntuación para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. + +
+
+ Nombre de la escritura - éste es el título de una escritura de Vicidial. Éste es un resumen corto de los caracteres del máximo 50 de la escritura, mínimo de 2 caracteres. No debe haber espacios o puntuación de la clase en campo de los theis. + +
+
+ Comentarios de la escritura - éste es tal como donde usted puede poner los comentarios para una escritura de Vicidial - cambiantes para liberar mejora de sept. el 23 -. caracteres del máximo 255, mínimo de 2 caracteres. + +
+
+ Texto de la escritura - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Activo - esto se determina si esta escritura se puede seleccionar para ser utilizado por una campaña. -



-SYSTEM_SETTINGS TABLA

-
-
-Uso No-Latino - esta opción permite que usted omita la escritura dela exhibición de la tela los caracteres del uso UTF8 y que no haganinguna expresión regular de la latino-cara'cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0. + 0) + { + ?> +



-
-
-
-Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificación seancolocados en el webroot en su web server. El defecto es 1. + VICIDIAL_LEAD_FILTROS TABLA

+
+
+ Identificación del filtro - Éste es el nombre corto de un filtro del plomo de Vicidial. Éste necesita ser un identificador único. No utilice ningunos espacios o puntuación para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. -
-
-
-El agente de VICIDIAL inhabilita la exhibición - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesión ha sido inhabilitada por el sistema, una acción del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia. +
+
+ Nombre del filtro - éste es un nombre más descriptivo del filtro. Éste es un resumen corto de los caracteres del máximo 30 del filtro, mínimo de 2 caracteres. -
-
-
-Permita los mensajes de SIPSAK - si el sistema a 1, éste permite queel ajuste de la tabla de los teléfonos trabaje correctamente, elservidor enviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. +
+
+ El filtro comenta - aquí es tal como donde usted puede poner los comentarios para un filtro de Vicidial - las llamadas todos los plomos de California -. los caracteres del máximo 255, mínimo de 2 caracteres. -
-
-
-Agente de la API de Activo - Si se pone a 1, esto permitirá a la interfaz API de agente para su funcionamiento. Por defecto es 0. - -
-
-
-URL casero del Admin - ésta es la dirección del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php. - -
-
-
-Permita el logfile de la transferencia del agente - esta opciónregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado. - -
-
-
-Reloj de tiempo Fin de Día - Este ajuste define cuando todos los usuarios se van a auto cerrado la sesión de la timeclock sistema. Sólo se ejecuta una vez al día. debe ser sólo el 4 dígitos dígitos 2 horas y 2 minutos en cifras de 24 horas. Por defecto es 0000. - -
-
-
-Última sesiónReloj de tiempo Auto - Este campo muestra la fecha de la última sesión de auto -. - -
-
-
-Agente de la pantalla de encabezado Formato de fecha - Este menú le permite elegir el formato de la fecha que aparece en la parte superior de la pantalla VICIDIAL agente. Las opciones para este ajuste son los siguientes: el valor predeterminado es MS_DASH_24HR
-MS_DASH_24HR 2008-06-24 23:59:59 - Por defecto el formato de fecha con el año mes día seguido por 24 horas
-US_SLASH_24HR 06/24/2008 23:59:59 - EE.UU. fecha con el formato mes día año seguido por 24 horas
-EU_SLASH_24HR 24/06/2008 23:59:59 - Europea con el formato de fecha día mes año seguido por 24 horas
-AL_TEXT_24HR JUN 24 23:59:59 - Texto con formato de fecha abreviado mes día seguido por 24 horas
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Por defecto el formato de fecha con el año mes día seguido por 12 horas
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - EE.UU. fecha con el formato mes día año seguido por 12 horas
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europea con el formato de fecha día mes año seguido por 12 horas
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Texto con formato de fecha abreviado mes día seguido por 12 horas
- -
-
-
-Agente del cliente Fecha Formato de pantalla - Este menú le permite elegir el formato de la fecha los clientes de zona horaria que aparece en la parte superior de la sección de información al cliente de la agencia de VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es AL_TEXT_AMPM
-MS_DASH_24HR 2008-06-24 23:59:59 - Por defecto el formato de fecha con el año mes día seguido por 24 horas
-US_SLASH_24HR 06/24/2008 23:59:59 - EE.UU. fecha con el formato mes día año seguido por 24 horas
-EU_SLASH_24HR 24/06/2008 23:59:59 - Europea con el formato de fecha día mes año seguido por 24 horas
-AL_TEXT_24HR JUN 24 23:59:59 - Texto con formato de fecha abreviado mes día seguido por 24 horas
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Por defecto el formato de fecha con el año mes día seguido por 12 horas
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - EE.UU. fecha con el formato mes día año seguido por 12 horas
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europea con el formato de fecha día mes año seguido por 12 horas
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Texto con formato de fecha abreviado mes día seguido por 12 horas
- -
-
-
-Agente Cliente Teléfono Formato de pantalla - Este menú le permite elegir el formato del cliente el número de teléfono que aparece en el estado de la agente VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es US_PARN
-US_DASH 000-000-0000 - USA guión separado el número de teléfono
-US_PARN (000)000-0000 - USA guión separados número con código de área entre paréntesis
-MS_NODS 0000000000 - N de formato
-UK_DASH 00 0000-0000 - UK guión separado el número de teléfono con el espacio después del código de ciudad
-AU_SPAC 000 000 000 - Australia espacio separado el número de teléfono
-IT_DASH 0000-000-000 - Italy guión separado el número de teléfono
-FR_SPAC 00 00 00 00 00 - France espacio separado el número de teléfono
- -
-
-
-Agent interface API Access Activo - This option allows you to enable or disable the agent interface API. Default is 0. - -
-
-
-Características de Activo CC - Esta opción le permite activar o desactivar el control de la calidad o las características de Control de Calidad. El valor por defecto es 0 para inactivos. - -
-
-
-Salida de marcación automática de Activo - Esta opción le permite activar o desactivar la marcación automática de salida dentro de VICIDIAL, en este campo a 0 se eliminará de las listas y FILTROS secciones y muchos campos de la Campaña Modificación pantallas. Manual de entrada de marcación seguirá siendo permitida dentro de la agente de la pantalla, lista de marcación, pero no será posible. El valor predeterminado es 1 para los activos. - -
-
-
-Max LLENAR Pide por segundo - Esta configuración determina el número máximo de llamadas que pueden ser colocados por la auto-LLENAR salida de marcación automática de secuencia de comandos de todos los servidores, por segundo. Debe ser de 1 a 200. El valor predeterminado es 40. - -
-
-
-Permita la registración de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0. - -
-
-
-IP del servidor de QueueMetrics - éste es el IP address de la base dedatos para su instalación de QueueMetrics. - -
-
-
-Nombre de la base de datos de QueueMetrics - éste es el nombre de labase de datos para su base de datos de QueueMetrics. - -
-
-
-Conexión de la base de datos de QueueMetrics - éste es el nombre delusuario usado para abrirse una sesión a su base de datos deQueueMetrics. - -
-
-
-Contraseña de la base de datos de QueueMetrics - ésta es lacontraseña usada para abrirse una sesión a su base de datos deQueueMetrics. - -
-
-
-URL de QueueMetrics - Ésta es la dirección del URL o del Web siteusada para conseguir a su instalación de QueueMetrics. - -
-
-
-Identificación del registro de QueueMetrics - ésta es laidentificación del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente. - -
-
-
-QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de teléfono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa. - -
-
-
-Habilitar Vtiger Integración - Este ajuste le permite activar Vtiger integración con VICIDIAL. Actualmente enlaces a Vtiger administración y búsqueda de usuarios, así como la reproducción son las únicas características disponibles integración. Por defecto es 0. - -
-
-
-PP Vtiger IP del servidor - Este es la dirección IP de la base de datos para su instalación Vtiger. - -
-
-
-Vtiger nombre de base de datos - Este es el nombre de base de datos para su base de datos Vtiger. - -
-
-
-Base de datos de inicio de sesión Vtiger - Este es el nombre de usuario utilizado para acceder a su base de datos Vtiger. - -
-
-
-Base de datos Vtiger Contraseña - Esta es la contraseña utilizada para acceder a su base de datos Vtiger. - -
-
-
-Vtiger URL - Este es el URL o dirección del sitio web utilizado para acceder a tu Vtiger instalación. - - -



- -VICIDIAL_STATUSES TABLA

-
-
-Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripción debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposición del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opción de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico. - - -



- -VICIDIAL_STATUS_CATEGORIES TABLA

-
-
-Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificación de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripción es opcional y la exhibiciónde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD. La venta y Categoría Categoría Principal Muerto son utilizados tanto por el sistema de lista de sugerencias en el análisis de estadísticas de la lista. - - - 0) - { +
+
+ Filtro SQL - Aquí es adonde usted pone el fragmento de la pregunta del SQL que usted desea filtrar cerca no comienza o el extremo con Y, eso será agregado por la escritura del cron de la tolva automáticamente. una pregunta del SQL del ejemplo que trabajaría aquí es el called_count 4 y called_count. + + + + +



- CÓDIGOS DE ESTADO VICIDIAL CC

-
+ VICIDIAL_TIEMPOS DE LA LLAMADA TABLA

+

- El Control de Calidad, sistema de control de calidad dentro de VICIDIAL tiene su propio conjunto de códigos de estado separados de los de la gestión de llamadas de funciones VICIDIAL. CC statuse códigos debe estar entre 2 y 8 caracteres de longitud y no contienen caracteres especiales, como un espacio o de colon. El código de estado de CC descripción debe estar entre 2 y 30 caracteres de longitud. - Identificación del tiempo de la llamada - éste es el nombre corto deuna definición del tiempo de la llamada de Vicidial. Éste necesitaser un identificador único. No utilice ningunos espacios opuntuación para los caracteres de este máximo 10 del campo, mínimode 2 caracteres. + +
+
+ Nombre del tiempo de la llamada - éste es un nombre más descriptivode la definición del tiempo de la llamada. Éste es un resumen cortode los caracteres del máximo 30 de la definición del tiempo de lallamada, mínimo de 2 caracteres. + +
+
+ El tiempo de la llamada comenta - aquí es donde usted puede poner loscomentarios para una definición del tiempo de la llamada de Vicidialtal como -10am hasta los 4pm con restricciones adicionales del estadode la llamada -. los caracteres del máximo 255. + +
+
+ Tiempos del comienzo y de parada del defecto - éste es el tiempo dedefecto paran que el llamar será permitido que sea comenzado o dentrode esta definición del tiempo de la llamada si la hora de salida dela di'a-de-$$$-SEMANA no se define. 0 es medianoche. Evitar el llamarfijó totalmente este campo a 2400 y fijó el tiempo de parada deldefecto a 2400. Permitir el llamar 24 horas al día fijó la hora desalida a 0 y el tiempo de parada a 2400. + +
+
+ Tiempos del comienzo y de parada del día laborable - éstos son lostiempos de encargo por el día que se puede fijar para la definicióndel tiempo de la llamada que las mismas reglas se aplican como con lostiempos del comienzo y de parada del defecto. + +
+
+ Definiciones del tiempo de la llamada del estado - ésta es la listade las definiciones específicas del tiempo de la llamada del estadoque se siguen en esta definición del tiempo de la llamada. + +
+
+ Estado del tiempo de la llamada del estado - éste es el código dedos letras para el estado que esta definición del tiempo que llamaestá para. Para que esto sea en efecto la llamada local mida eltiempo que se fija en la campaña debe tener este expediente deltiempo de la llamada del estado en él así como todos los plomos quetienen dos códigos del estado de la letra en ellos. + + + + +



+ + VICIDIAL_SHIFTS TABLA

+
+
+ Cambio de ID - Este es el nombre corto de un Vicidial Mayús Definición. Este debe ser un identificador único. No utilice espacios ni puntuacion para este campo. 20 caracteres como máximo, mínimo de 2 caracteres. + +
+
+ Cambio de nombre - Este es un nombre más descriptivo de la Definición Mayúsculas. Este es un breve resumen de la definición Mayús. 50 caracteres como máximo, mínimo de 2 caracteres. + +
+
+ Hora de inicio cambio - Este es el momento en que comienza la campaña por turnos. Sólo deben ser números, serían las 9:30 AM y 5:00 AM 0930 sería 1700. + +
+
+ Longitud cambio - Este es el tiempo en horas y minutos que dura la campaña por turnos. 8 horas sería 08:00 y 7 horas y 30 minutos sería 07:30. + +
+
+ Cambio semana - En esta sección usted debe elegir los días de la semana que este cambio está activo. + + + + + +



+
+ Audio de la tienda - Esta utilidad te permite subir archivos de audio para el servidor de forma que puedan ser distribuidos a todos los servidores de Vicidial en un multi-cluster de servidores. Una nota importante, sólo dos tipos de archivos de audio de trabajo,. Archivos WAV PCM de 16 bits que se 8k y los archivos. GSM que se 8bit 8k. Por favor, verifique que los archivos tienen el formato correcto antes de subirlos aquí. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD TABLA

+
+
+ Música en espera de identificación - Este es el nombre corto de una música en espera de entrada. Esto debe ser un identificador único. No utilice espacios ni puntuacion para este campo. 100 caracteres como máximo, mínimo de 2 caracteres de. + +
+
+ Música en espera Nombre - Este es un nombre más descriptivo de la música en espera de entrada. Este es un breve resumen de la música en espera contexto y se verá como un comentario en el musiconhold archivo vicidial.conf. máximo de 255 caracteres, mínimo de 2 caracteres. + +
+
+ Activo - Esta opción le permite definir la música en espera la entrada en activo o inactivo. Inactivo eliminará la entrada de los archivos de conf. + +
+
+ Orden aleatorio - Esta opción le permite definir la reproducción de los archivos de audio en un orden aleatorio. Si se establece a N, entonces el orden definido se utilizará. + +
+
+ Filename - Para añadir un nuevo archivo de audio a una música en espera de entrada el primer archivo debe estar en la tienda de audio, puede seleccionar el archivo y haga clic en Enviar para añadirlo a la lista de archivos. Música en espera se actualiza una vez por minuto si se han producido cambios realizados. Cualquier archivo que no figuran en la música en la entrada de reserva que están presentes en la música en la carpeta celebrar serán eliminados. + + + + +



+ + VICIDIAL_TTS_PROMPTS TABLA

+
+
+ TTS ID - Este es el nombre corto de una entrada de TTS. Esto debe ser un identificador único. No utilice espacios ni puntuacion para este campo. caracteres como máximo 50, mínimo de 2 caracteres. + +
+
+ Nombre TTS - Este es un nombre más descriptivo de la entrada TTS. Este es un breve resumen de la definición de TTS. 100 caracteres como máximo, mínimo de 2 caracteres de. + +
+
+ Activo - Esta opción le permite establecer la entrada de TTS a activos o inactivos. + +
+
+ TTS Texto - Este es el texto real de campo de datos de voz que se envía a Cepstral para la creación del archivo de audio que deben desempeñar para el cliente. Usted puede utilizar Speech Syntesis Markup Language-SSML-en este campo, por ejemplo,, <break time='1000ms'/> de 1 segundo descanso. También puede utilizar varias variables como el nombre, apellido y el título como variables Vicidial tal como lo harías en una secuencia de comandos: - A - first_name - B -. Aquí está una lista de las variables disponibles:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL TABLA

+
+
+ ID de correo de voz - Este es el identificador de todos los números de este buzón. Esto no debe ser un duplicado de un mensaje de voz existentes de identificación o la identificación del correo de voz de un teléfono en el sistema, mínimo de 2 caracteres. + +
+
+ Name - Este es el nombre asociado a este buzón de voz. 100 caracteres como máximo, mínimo de 2 caracteres de. + +
+
+ Password - Esta es la contraseña que se utiliza para acceder al buzón de voz cuando se marca para revisar los mensajes máximo 10 caracteres, mínimo de 2 caracteres. + +
+
+ Activo - Esta opción le permite configurar la casilla de correo de voz activo o inactivo. Si el cuadro está inactivo no se puede dejar mensajes en él y no se puede revisar los mensajes en él. + +
+
+ Email - Este ajuste opcional le permite tener los mensajes de correo de voz enviado a una cuenta de correo electrónico, si su sistema está configurado para enviar correo electrónico. Si este campo está vacío, entonces no los correos electrónicos se envían. + +
+
+ Eliminar correo de voz después del email - Este ajuste opcional le permite tener los mensajes de correo de voz se elimina del sistema después de haber sido enviado por correo electrónico a cabo. Por defecto es n. + + + + + 0) + { + ?> + +



+ + FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE VICIDIAL

+
+
+ El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidación de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. También, cerciórese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo: +
    +
  1. Código del plomo del vendedor - demuestra para arriba en el campo de la identificación del vendedor del GUI +
  2. Código de fuente - uso interno solamente para los admins y DBAs +
  3. Identificación de la lista - el número de la lista que estos plomos demostrarán para arriba debajo +
  4. Código del teléfono - el prefijo para el teléfono number(1 para los E.E.U.U., 01144 para Reino Unido, 01161 para AUS, el etc) +
  5. Número de teléfono - debe ser por lo menos 8 dígitos de largo +
  6. Título - título del customer(Mr. Ms señ., etc...) +
  7. Nombre +
  8. Inicial Media +
  9. Apellidos +
  10. Dirección, línea 1 +
  11. Dirección, línea 2 +
  12. Dirección, línea 3 +
  13. Ciudad +
  14. Estado - limitado a 2 caracteres +
  15. Provincia +
  16. Código Postal +
  17. País +
  18. Sexo +
  19. Fecha de nacimiento +
  20. Número De Teléfono Alternativo +
  21. Dirección Email +
  22. Frase De Seguridad +
  23. Comentarios +
+ +
NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. También, los módulos de un Perl de los pares sedeben cargar para ella para trabajar también -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en éstos mirando suarchivo del error_log de apache. También, para los cheques deduplicación contra gampaign enumera, la lista que tiene nuevos plomosel entrar él necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos. + + + + +



+ + + + + + + TABLA DE LOS TELÉFONOS

+
+
+ Extensión del teléfono - este campo es donde usted pone los nombres del teléfono que aparecen al marcar con asterisco no incluyendo el protocolo o la barra vertical del principio. Por ejemplo: para el teléfono SIP/test101 del SIP la extensión del teléfono sería test101. También, para los teléfonos IAX2 compruebe que usted utiliza el nombre del teléfono completo: IAX2/IAXphone1@IAXphone1 sería IAXphone1@IAXphone1. Para zap los teléfonos compruebe que usted pone el canal completo: Zap/25-1 sería 25-1. Otra nota, compruebe que usted fija el protocolo abajo correctamente para su tipo de teléfono. + +
+
+
+ Número del Dial plan - este campo está para el número que usted marca para tener el anillo del teléfono. Este número se define en el archivo de extensions.conf de su servidor asterisco + +
+
+
+ Caja de Buzón de Voz - este campo es para la caja del buzón de voz donde van los mensajes para al usuario de este teléfono. Utilizamos esto para comprobar los mensajes del buzón de voz y para que el usuario pueda acceder al Buzón de Voz desde astGUIclient. + +
+
+
+ CallerID de salida - este campo es donde usted incorporara el número del callerID que usted quiera que aparezca en las llamadas de salida. Esto no funciona en las líneas RTB(non-PRI) T1/E1. + +
+
+
+ Dirección IP del teléfono - este campo es para la dirección IP del teléfono si es un teléfono de VOZIP. Este es un campo opcional + +
+
+
+ Dirección IP del ordenador - este campo es para la dirección IP del ordenador del usuario. Es un campo opcional + +
+
+
+ IP del servidor - Este menú es donde usted selecciona en que servidor está el teléfono activo. + +
+
+
+ Conexión - la conexión usada para el usuario del teléfono a laconexión a los usos del cliente. + +
+
+
+ Contraseña - la contraseña usada para el usuario del teléfono a laconexión a los usos del cliente. Importante, esta es la única contraseña para la red de interfaz de usuario del agente de teléfono, para cambiar el sip.conf iax.conf o contraseña, o en secreto, para este dispositivo de teléfono que tenga que modificar el campo Archivo Secreto Conf. más abajo en esta página. + +
+
+
+ Estado - el estado del teléfono en el sistema, puede ser ACTIVO y ADMIN permiten que los clientes del GUI trabajen. ADMIN permite el acceso a este Web site de administración. El resto de los estados no permiten el acceso al GUI o al Web de Admin. + +
+
+
+ Cuenta activa - si el teléfono está activado ponerla en la lista del cliente del GUI. + +
+
+
+ Tipo de teléfono - solamente para información administrativas. + +
+
+
+ Nombre completo - usado por el GUIclient en la lista de teléfonos activos. + +
+
+
+ Compañía - solamente para las notas administrativas. + +
+
+
+ Teléfonos E-mail - La dirección de correo electrónico asociada con la entrada de este teléfono. Esto se utiliza para configuraciones de buzón de voz. + +
+
+ Eliminar correo de voz después del email - Este ajuste opcional le permite tener los mensajes de correo de voz se elimina del sistema después de haber sido enviado por correo electrónico a cabo. Por defecto es n. + +
+
+
+ Cuadro - todavía no puesto en ejecución. + +
+
+
+ Nuevos mensajes - número de los nuevos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco. + +
+
+
+ Viejos mensajes - número de los viejos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco. + +
+
+
+ Protocolo del cliente - el protocolo que el teléfono utiliza para conectar con el servidor del asterisco: El Sip, IAX2, Zap. También, para los números External remotos o los números SpeedDial que usted desea enumerar como teléfonos. + +
+
+
+ GMT local - La diferencia a partir del tiempo malo del ZULÚ del time(or de Greenwich) donde se localiza el teléfono. NO AJUSTE POR TIEMPO DE LOS AHORROS DE LA LUZ DEL DÍA. Esto es utilizada por la campaña de VICIDIAL para exhibir exactamente el tiempo y el tiempo del cliente. + +
+
+
+ Teléfono Anillo de tiempo de espera - Esta es la cantidad de tiempo, en segundos, que el teléfono sonará en el dialplan antes de enviar la llamada al buzón de voz. El valor predeterminado es 60 segundos. + +
+
+
+ Conexión del encargado - Ésta es la conexión que los clientes del GUI para este teléfono utilizarán tener acceso a la base de datos donde residen los datos del servidor. + +
+
+
+ Secreto del encargado - Ésta es la contraseña que los clientes del GUI para este teléfono utilizarán tener acceso a la base de datos donde residen los datos del servidor. + +
+
+
+ Usuario del defecto de VICIDIAL - éste debe poner un valor prefijado en el campo del usuario de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún usuario. + +
+
+
+ Paso del defecto de VICIDIAL - éste debe poner un valor prefijado en el campo de la contraseña de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún paso. + +
+
+
+ Campaña del defecto de VICIDIAL - éste debe poner un valor prefijado en el campo de la campaña de VICIDIAL siempre que este usuario del teléfono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ninguna campaña. + +
+
+
+ Parque Exten - Ésta es la extensión del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Extensión de la conferencia - Ésta es la extensión del parque de la conferencia del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Parque Exten de VICIDIAL - Ésta es la extensión del estacionamiento del defecto para el cliente app de VICIDIAL. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Archivo del parque de VICIDIAL - éste es el nombre del archivo de la extensión del parque del defecto VICIDIAL para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie éste limitado a 10 caracteres. + +
+
+
+ Prefijo del monitor - éste es el prefijo dial plan para supervisar de zap los canales automáticamente dentro del app astGUIclient. Cambie solamente según los expedientes de extensiones de extensions.conf ZapBarge. + +
+
+
+ Grabación Exten - Ésta es la extensión dial plan para la extensión de la grabación que se utiliza para caer en conferencias del meetme para registrarlas. Dura generalmente hasta que una hora si no parada verifica con el archivo de extensions.conf antes de cambiar. + +
+
+
+ VMAIL Exten principal - Ésta es la extensión dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar. + +
+
+
+ Descarga Exten de VMAIL - éste es el prefijo dial plan usado para enviar llamadas directamente al voicemail de un usuario de una llamada viva en el app. astGUIclient verifica con el archivo de extensions.conf antes de cambiar. + +
+
+
+ Contexto De Exten - Este es el contexto del plan de marcado que las solicitudes de agente, como Vicidial, principalmente el uso. Se supone que todos los números marcados por las aplicaciones cliente utilizan este contexto, por lo que es una buena idea para asegurarse de que este es el contexto más amplio posible. verificar con el archivo extensions.conf antes de cambiar. por defecto es por defecto. + +
+
+
+ Teléfono Contexto - Este es el contexto del plan de marcado que este teléfono se utiliza para marcar. Si está ejecutando un centro de llamadas y usted no desea que sus agentes sean capaces de marcar fuera de la aplicación Vicidial por ejemplo, entonces puedes establecer este campo a un contexto dialplan que no existe, algo como agente nodial. por defecto es por defecto. + +
+
+
+ Conf. Archivo Secreto - Este es el secreto o la contraseña, por el teléfono de la SIP IAX o auto-generados conf para este teléfono. Límite es el tablero de 20 caracteres alfanuméricos y de subrayado aceptado. El valor predeterminado es la prueba. + +
+
+
+ DTMF envían el canal - Ésta es la secuencia del canal usada para enviar sonidos de DTMF en conferencias del meetme de los apps del cliente. Verifique que exten y contexto con el archivo de extensions.conf. + +
+
+
+ Grupo de salida de la llamada - éste es el grupo de canal que las llamadas de salida de este teléfono están puestas de. Hay rutinas de un par en los apps del cliente que utilizan esto. Para zap los canales que usted desea utilizar algo como Zap/g2, porque los troncos IAX2 usted desearía utilizar el prefijo completo de IAX como IAX2/VICItest1:secret@10.10.10.15:4569. Verifique que los troncos con el file(it de extensions.conf sean generalmente lo que usted ha definido como la variable global del TRUNK en la tapa del archivo). + +
+
+
+ Localización del browser - esto es aplicable solamente a los clientes de UNIX/LINUX, el camino absoluto a Mozilla o el browser de Firefox en la máquina verifica esto lanzándolo manualmente. + +
+
+
+ Instale el directorio - éste es el lugar en donde las escrituras astGUIclient y de astVICIDIAL están situadas en su máquina. Para Win32 debe ser algo como C:\AST_VICI y para UNIX debe ser algo como /usr/local/perl_TK. verifica esto manualmente. + +
+
+
+ URL de CallerID - Ústa es la dirección de la tela de la página usada para hacer operaciones de búsqueda de encargo del callerID que es la dirección de prueba del defecto: http://astguiclient.sf.net/test_callerid_output.php + +
+
+
+ URL del defecto de VICIDIAL - Ésta es la dirección de la tela de la página usada para hacer preguntas de encargo de la forma del Web de VICIDIAL que es la dirección de prueba del defecto: http://astguiclient.sf.net/test_VICIDIAL_output.php + +
+
+
+ Registración de la llamada - esto se fija para verdad si el archivo de call_log.agi está en lugar en el archivo de extensions.conf para todo el de salida y las extensiones del retraso ' h ' para registrar todo llama. Ústa debe siempre ser 1 porque es manditory para muchos astGUIclient y características de VICIDIAL a trabajar correctamente. + +
+
+
+ Conmutación del usuario - fije para verdad para permitir que el usuario cambie a otra cuenta del usuario. NOTA: Si los interruptores del usuario ellos pueden iniciar la grabación en la conversación de teléfono del nuevo usuario + +
+
+
+ Comunicación - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas. + +
+
+
+ Retraso del Admin - sistema a verdad para permitir que el usuario pueda al retraso cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. + +
+
+
+ Secuestro del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extensión cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados. + +
+
+
+ Monitor del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extensión cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados y como herramienta del entrenamiento. + +
+
+
+ Parque de llamada - el sistema a verdad para permitir que el usuario pueda parquear invita el asimiento astGUIclient para ser tomado por cualquier otro usuario astGUIclient en el sistema. Las llamadas permanecen en el asimiento para hasta que un retraso de la media-hora entonces. Permitido generalmente para todos. + +
+
+
+ Cheque de Updater - fije para verdad para exhibir una advertencia del popup que el tiempo del updater no ha cambiado en 20 segundos. Útil para los usuarios del Admin. + +
+
+
+ Af que registra - fije para verdad para registrar muchas acciones del uso astGUIclient a un archivo de texto en la computadora del usuario. + +
+
+
+ La coleta permitió - al sistema verdad para hacer que los apps del cliente utilicen el sistema central de la coleta del asterisco. Requerido para VICIDIAL y recomendado para todos los usuarios. + +
+
+
+ Ventana emergente del CallerID - sistema a verdad para tener en cuenta los números definidos en el archivo de extensions.conf para enviar las pantallas del popup de CallerID a los usuarios astGUIclient. + +
+
+
+ Botón de VMail - fije para verdad para exhibir el botón de VOICEMAIL y los mensajes cuentan la exhibición en astGUIclient. + +
+
+
+ Rápido restaure - fije para verdad para permitir un nuevo índice de restauran de la información de la llamada para el astGUIclient. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. + +
+
+
+ Rápido restaure la tarifa - en milisegundos. Utilizado solamente si es rápido restaure se permite. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. + +
+
+
+ Persistant MySQL - si está permitida la conexión astGUIclient seguirá conectada en vez de conectar cada segundo. Útil si usted hace que un rápido restaure la tarifa fijada. Aumentará el número de conexiones en su máquina de MySQL. + +
+
+
+ Número siguiente del dial auto - si está permitido el cliente de VICIDIAL marcará el número siguiente en la lista automáticamente sobre la disposición de una llamada a menos que seleccionaran "para parar el marcar" en la pantalla de la disposición. + +
+
+
+ Pare Rec después de cada llamada - si está permitido el cliente de VICIDIAL parará se está encendiendo cualquier grabación después de que haya sido cada llamada dispositioned. Útil si usted está haciendo muchos de la grabación o usted están utilizando una forma de la tela para accionar la grabación. + +
+
+
+ Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.La característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. + +
+
+
+ Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. + +
+
+
+ Usuario de DBX - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. + +
+
+
+ Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. + +
+
+
+ DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. + +
+
+
+ Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. Secundario server, no utilizado actualmente. + +
+
+
+ Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. Secundario server, no utilizado actualmente. + +
+
+
+ Usuario de DBY - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. Secundario server, no utilizado actualmente. + +
+
+
+ Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. Secundario server, no utilizado actualmente. + +
+
+
+ DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. Secundario server, no utilizado actualmente. + +
+
+
+ Alias ID - el ID de los alias utilizados para permitir el balanceo de carga de teléfono de acceso. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud. + +
+
+
+ Alias Nombre - El nombre utilizado para describir un alias de teléfonos, debe ser entre 2 y 50 caracteres de longitud. + +
+
+
+ Lista de teléfonos Logins - La lista separada por comas de teléfono de acceso utilizado cuando un agente en la utilización de registros de teléfono de acceso equilibrado de carga. El agente de aplicación se encuentra el servidor activo con el menor número de agentes registrados en él y hacer una llamada de ese servidor con el agente al inicio de sesión. + +
+
+
+ ID de la plantilla - Este es el archivo de configuración de plantilla ID que este teléfono va a utilizar para la entrada de su configuración de Asterisk. El valor por defecto es - Inexistencia --. + +
+
+
+ Conf Override Settings - If populated, and the ID de plantilla is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Grupo Alias ID - el ID del grupo de alias utilizado por los agentes a marcar llamadas desde la interfaz de agente VICIDIAL con diferentes números de identificación de llamadas. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud. + +
+
+
+ Grupo Alias Nombre - El nombre utilizado para describir un grupo de alias, debe ser entre 2 y 50 caracteres de longitud. + +
+
+
+ Número de identificación de llamadas - el número de identificación de llamadas se utilizan en este Grupo de Alias. Debe ser sólo cifras. + +
+
+
+ Nombre de identificación de llamadas - El nombre de identificación de llamadas que se pueden enviar a cabo con este grupo de alias. Por lo que sabemos esto sólo funcionará en Canadá en los circuitos del PRI y la utilización de un bucle troncal IAX de Asterisk a través de. + + + + +



+ + TABLA DE LOS SERVIDORES

+
+
+ ID Del Servidor - Este campo es donde usted pone el nombre del servidor del asterisco, no tiene que ser un submarino oficial del dominio, apenas un apodo para identificar el servidor a los usuarios del Admin. + +
+
+
+ Descripción del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco. + +
+
+
+ IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco. + +
+
+
+ Activo - fije si el servidor del asterisco es activo o inactivo. + +
+
+
+ Sistema de carga - Estas dos estadísticas muestran la loadavg veces de un sistema 100 y el porcentaje de uso de la CPU del servidor y se actualiza cada minuto. El loadavg debería ser en promedio por debajo de los 100 multiplicado por el número de núcleos de CPU de su sistema, para un rendimiento óptimo. El porcentaje de uso de la CPU debería permanecer por debajo de 50 para un rendimiento óptimo. + +
+
+
+ Canales en vivo - Este campo muestra el número actual de canales que son de Asterisk en vivo en el sistema ahora. Es importante señalar que el número de canales de Asterisk es generalmente mucho mayor que el número de llamadas en un sistema. Este campo se actualiza una vez cada minuto. + +
+
+
+ Uso del disco - Este campo mostrará el uso del disco para cada partición en este servidor. Este campo se actualiza una vez cada minuto. + +
+
+
+ Versión del asterisco - fije la versión del asterisco que usted ha instalado en este servidor. Ejemplos: ' 1.2 ', ' 1.0.8 ', ' 1.0.7 ', ' CVS_HEAD ', ' REALMENTE VIEJO ', etc... Se utiliza esto porque las versiones 1.0.8 y 1.0.9 tienen un diverso método de ocuparse del insecto local del channels(a que ha estado fijado en CVS v1.0) y necesidad de ser tratado diferentemente cuando la manipulación de su Local/ acanala. También, CVS_HEAD actual y las 1.2 aplicaciones diverso encargado y comando del árbol del lanzamiento hicieron salir así que debe ser tratado diverso también. + +
+
+
+ Troncos máximos de VICIDIAL - este campo determinará el número de las líneas máximo que el auto-dialer de VICIDIAL procurará invitar este servidor. Si usted desea dedicar dos PRI llenos T1 a VICIDIALing en un servidor entonces usted fijaría esto a 46. E1 defecto es 96. + +
+
+
+ Pide máximo por segundo - Esta configuración determina el número máximo de llamadas que pueden ser colocados por la salida de marcación automática de secuencia de comandos en este servidor por segundo. Debe ser de 1 a 100. El valor predeterminado es 20. + +
+
+
+ Anfitrión del telnet - éste es la dirección o el nombre del servidor del asterisco y es cómo los usos del encargado conectan con él de donde están funcionando. Si están funcionando en el servidor del asterisco, después el defecto del ' localhost ' está muy bien. + +
+
+
+ El telnet vira hacia el lado de babor - éste es el puerto de la conexión del encargado del servidor del asterisco y es cómo los usos del encargado conectan con ella de donde están funcionando. El defecto de ' 5038 ' está para un estándar instala muy bien. + +
+
+
+ Usuario del encargado - el username o la conexión conectaba genericly con el encargado del servidor del asterisco. El defecto es 'cron' + +
+
+
+ Secreto del encargado - el secreto o la contraseña conectaba genericly con el encargado del servidor del asterisco. El defecto es '1234' + +
+
+
+ Usuario en modo actualización del encargado - el username o la conexión conectaba con el encargado del servidor del asterisco optimizado para las escrituras de la actualización. Omita es 'updatecron' y asume el mismo secreto que el usuario genérico. + +
+
+
+ El encargado escucha usuario - el username o la conexión usada para conectar con el encargado del servidor del asterisco optimizado para las escrituras que esperan a escuchar solamente salida. Omita es 'listencron' y asume el mismo secreto que el usuario genérico. + +
+
+
+ El encargado envía a usuario - el username o la conexión usada para conectar con el encargado del servidor del asterisco optimizado para las escrituras que envían solamente acciones al encargado. Omita es 'sendcron' y asume el mismo secreto que el usuario genérico. + +
+
+
+ Conf. Archivo Secreto - Este es el secreto, o la contraseña, para que el servidor en el auto iax generado conf para este servidor en otros servidores. Límite es el tablero de 20 caracteres alfanuméricos y de subrayado aceptado. El valor predeterminado es la prueba. + +
+
+
+ El GMT del servidor compensó - la diferencia sobre horas a partir del tiempo del GMT no ajustado según el Luz del di'a-Ahorro-Tiempo del servidor. El defecto es '-5' + +
+
+
+ Descarga Exten - el prefijo de VMail de la extensión usado en este servidor para enviar llamadas directamente a través de agc a una caja específica del voicemail. El defecto es '85026666666666' + +
+
+
+ Extensión del ANUNCIO de VICIDIAL - la extensión del defecto si ninguno está presente en la campaña enviar llamadas para a marcar auto de VICIDIAL. El defecto es '8365' + +
+
+
+ Contexto del defecto - el contexto dial plan del defecto usado para las escrituras que funcionan para este servidor. El defecto es 'defecto' + +
+
+
+ Funcionamiento del sistema - fijar esta opción a Y permitirá laregistración del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N. + +
+
+
+ Registros del servidor - fijar esta opción a Y permitirá laregistración de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, también laregistración de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y. + +
+
+
+ AGI hecho salir - fijar esta opción a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO. + +
+
+
+ El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N. + +
+
+
+ Balance Vicidial Rank - Este campo le permite establecer el orden en que este servidor se va a utilizar para la marcación de equilibrio, si está activada la marcación de equilibrio. El servidor con el rango más alto será usado primero en la colocación de Balance llenar las llamadas. Por defecto es 0. + +
+
+
+ Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0. + +
+
+
+ Grabación Web Link - Esta opción le permite ignorar el valor por defecto de la pantalla de la grabación enlace en la página web de administración. El valor predeterminado es server_ip. + +
+
+
+ Grabación de IP del servidor alternativo - Este valor es donde usted puede poner un servidor IP o nombre de otra máquina que se puede utilizar en lugar de la server_ip en los enlaces a las grabaciones en el administrador de páginas web. Por defecto está vacío. + +
+
+
+ Activa del servidor de Asterisk - de Asterisk Si no se está ejecutando en este servidor, o si VICIDIAL no deberían usar este servidor, o si sólo se utiliza este servidor para otros scripts como script de la tolva de carga que usted quiere hacer esto para N. El valor por defecto es Y. + +
+
+
+ Activo Server Agent - Al establecer esta opción a N de impedir que los agentes de poder acceder a este servidor a través de la pantalla del agente Vicidial. Esto es muy útil cuando se utiliza una carga de inicio de sesión de instalación del teléfono equilibrada. Por defecto es Y. + +
+
+
+ Generar los archivos de configuración - Si desea que el sistema de auto-generar conf asterisco archivos sobre la base de los teléfonos entradas, las entradas de transportista y balanceo de carga dentro de la configuración VICIDIAL luego a este valor por defecto es Y. Y. + +
+
+
+ Reconstruir los archivos de configuración - Si desea forzar una reconstrucción de los archivos de configuración de Asterisk o si alguno de los teléfonos o transportista entradas han cambiado esto debe establecerse en Y. Después de la configuración de archivos se han generado y se ha de Asterisk luego se vuelve a cargar esta será cambiado a N. El valor por defecto es Y. + +
+
+
+ Volver a generar música en espera - Si desea forzar una reconstrucción de la música en los archivos de la bodega o si la música en las entradas de espera ni entradas de servidor han cambiado entonces esto debe establecerse en Y. Después de la música en espera los archivos se han sincronizado y volver a cargar entonces esto va a ser cambiado a N. defecto es Y. + +
+
+
+ Actualización de los sonidos - Si desea forzar una comprobación de los archivos de sonido en este servidor, y el almacén central de audio está activado como una configuración del sistema, este campo permitirán a los sonidos de actualización para ejecutar en la parte superior de la siguiente minuto. Toda vez que un archivo de audio se carga desde la interfaz web de este se ajusta automáticamente a Y para todos los servidores que tienen activos de Asterisk. Por defecto es n. + +
+
+
+ Grabación Vicidial Límite - Este campo es donde se define el número máximo de minutos que una grabación de la llamada iniciada por Vicidial puede ser. Por defecto es de 60 minutos. + +
+
+
+ Portador de registro activo - Esta configuración le permite registrar todos los códigos de retorno para colgar cualquier lista de marcación saliente llamadas que están haciendo. Por defecto es N. + + + + + + +



+ + vicidial_conf_templates TABLA

+
+
+ ID de la plantilla - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar la configuración de plantillas en todo el sistema. + +
+
+
+ Nombre de la plantilla - Este es el nombre descriptivo de la plantilla de archivo de configuración de entrada. + +
+
+
+ Plantilla de Contenido - Este campo es donde usted puede entrar en la configuración específica para ser utilizado por todos los teléfonos o los transportistas y que están configurados para utilizar esta plantilla conf. Campos que no deben incluirse en este cuadro son: secreto, accountcode, cuenta, el nombre de usuario y buzón de correo. + + + + + +



+ + vicidial_server_carriers TABLA

+
+
+ Portador de Identificación - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar el soporte de esta entrada a través del sistema. + +
+
+
+ Nombre del transportista - Este es el nombre descriptivo de la compañía entrada. + +
+
+
+ Descripción Carrier - Éste se coloca en los comentarios de los archivos de conf asterisco encima del dialplan y anotaciones en cuenta. Máximo 255 caracteres. + +
+
+
+ Registro de cadena - Este campo es donde usted puede entrar en la cadena exacta necesaria en el SIP o IAX archivo de configuración de registro para el proveedor. Opcional, pero altamente recomendable si tu proveedor permite el registro. + +
+
+
+ Plantilla ID - Este campo opcional permite elegir un archivo de configuración de plantilla para esta compañía aérea de entrada. + +
+
+
+ Cuenta Entrar - Este campo se usa si no ha seleccionado una plantilla de usar, y es donde puede entrar en la configuración de la cuenta específica que se utilizará para esta compañía aérea. Si va a tomar en las llamadas entrantes de esta compañía aérea tronco es posible que desee establecer el contexto = trunkinbound dentro de este ámbito de modo que usted puede usar el proceso de tramitación de DID en VICIDIAL. + +
+
+
+ Protocolo - Este campo le permite definir el protocolo a utilizar para el transportista entrada. Actualmente, sólo IAX y SIP son compatibles. + +
+
+
+ Globals String - Este campo opcional le permite definir una variable global a utilizar para el transportista en el dialplan. + +
+
+
+ Entrada Dialplan - Este campo opcional le permite definir un conjunto de entradas dialplan a usar para esta compañía aérea. + +
+
+
+ IP del servidor - Este es el servidor que soporte este registro está asociado con. + +
+
+
+ Activo - Esto define si el transportista se incluirán en la auto-generado o no los archivos de conf. + + + + + +



+ + TABLA DE CONFERENCIAS

+
+
+ Número de la conferencia - este campo es donde usted pone el número del dialpna de la conferencia del meetme. También se recomienda que el número del meetme en meetme.conf empareja este número para cada entrada. Esto está para las conferencias en astGUIclient y se utiliza para la funcionalidad de leave-3way-call en VICIDIAL. + +
+
+
+ IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_TRONCOS TABLA

+
+
+ Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opciónpara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL. + + + + + +



+ + SYSTEM_SETTINGS TABLA

+
+
+ Uso No-Latino - esta opción permite que usted omita la escritura dela exhibición de la tela los caracteres del uso UTF8 y que no haganinguna expresión regular de la latino-cara'cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0. + +
+
+
+ Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificación seancolocados en el webroot en su web server. El defecto es 1. + +
+
+
+ El agente de VICIDIAL inhabilita la exhibición - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesión ha sido inhabilitada por el sistema, una acción del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia. + +
+
+
+ Permita los mensajes de SIPSAK - si el sistema a 1, éste permite queel ajuste de la tabla de los teléfonos trabaje correctamente, elservidor enviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Agente de la API de Activo - Si se pone a 1, esto permitirá a la interfaz API de agente para su funcionamiento. Por defecto es 0. + +
+
+
+ URL casero del Admin - ésta es la dirección del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php. + +
+
+
+ Permita el logfile de la transferencia del agente - esta opciónregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado. + +
+
+
+ Reloj de tiempo Fin de Día - Este ajuste define cuando todos los usuarios se van a auto cerrado la sesión de la timeclock sistema. Sólo se ejecuta una vez al día. debe ser sólo el 4 dígitos dígitos 2 horas y 2 minutos en cifras de 24 horas. Por defecto es 0000. + +
+
+
+ Última sesiónReloj de tiempo Auto - Este campo muestra la fecha de la última sesión de auto -. + +
+
+
+ Agente de la pantalla de encabezado Formato de fecha - Este menú le permite elegir el formato de la fecha que aparece en la parte superior de la pantalla VICIDIAL agente. Las opciones para este ajuste son los siguientes: el valor predeterminado es MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Por defecto el formato de fecha con el año mes día seguido por 24 horas
+ US_SLASH_24HR 06/24/2008 23:59:59 - EE.UU. fecha con el formato mes día año seguido por 24 horas
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europea con el formato de fecha día mes año seguido por 24 horas
+ AL_TEXT_24HR JUN 24 23:59:59 - Texto con formato de fecha abreviado mes día seguido por 24 horas
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Por defecto el formato de fecha con el año mes día seguido por 12 horas
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - EE.UU. fecha con el formato mes día año seguido por 12 horas
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europea con el formato de fecha día mes año seguido por 12 horas
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texto con formato de fecha abreviado mes día seguido por 12 horas
+ +
+
+
+ Agente del cliente Fecha Formato de pantalla - Este menú le permite elegir el formato de la fecha los clientes de zona horaria que aparece en la parte superior de la sección de información al cliente de la agencia de VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Por defecto el formato de fecha con el año mes día seguido por 24 horas
+ US_SLASH_24HR 06/24/2008 23:59:59 - EE.UU. fecha con el formato mes día año seguido por 24 horas
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europea con el formato de fecha día mes año seguido por 24 horas
+ AL_TEXT_24HR JUN 24 23:59:59 - Texto con formato de fecha abreviado mes día seguido por 24 horas
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Por defecto el formato de fecha con el año mes día seguido por 12 horas
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - EE.UU. fecha con el formato mes día año seguido por 12 horas
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europea con el formato de fecha día mes año seguido por 12 horas
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texto con formato de fecha abreviado mes día seguido por 12 horas
+ +
+
+
+ Agente Cliente Teléfono Formato de pantalla - Este menú le permite elegir el formato del cliente el número de teléfono que aparece en el estado de la agente VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es US_PARN
+ US_DASH 000-000-0000 - USA guión separado el número de teléfono
+ US_PARN (000)000-0000 - USA guión separados número con código de área entre paréntesis
+ MS_NODS 0000000000 - N de formato
+ UK_DASH 00 0000-0000 - UK guión separado el número de teléfono con el espacio después del código de ciudad
+ AU_SPAC 000 000 000 - Australia espacio separado el número de teléfono
+ IT_DASH 0000-000-000 - Italy guión separado el número de teléfono
+ FR_SPAC 00 00 00 00 00 - France espacio separado el número de teléfono
+ +
+
+
+ Agent interface API Access Activo - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Único agente de devolución de llamada Campaña de bloqueo - Esta opción define si las devoluciones de llamada AGENTONLY están bloqueadas a la campaña de que el agente creado originalmente bajo. Establecer este valor a 1 significa que el agente sólo se puede marcar desde la campaña que se establecieron en virtud de 0 significa que el agente puede acceder a ellos sin importar lo que la campaña que se inició la sesión. Por defecto es 1. + +
+
+
+ Central de control de sonido activo - Esta opción define si el sistema de sincronización de sonido está activo en todos los servidores. El valor predeterminado es 0 para los inactivos. + +
+
+
+ Sonidos de servidor Web - Este es el nombre del servidor o la dirección IP del servidor web que será el que maneja los archivos de sonido en este sistema, este debe coincidir con el nombre de servidor o dirección IP del equipo que está intentando acceder a la página web audio_store.php o no funcionará . Por defecto es 127.0.0.1. + +
+
+
+ Sounds Web Directory - Esta auto-generado nombre del directorio es creado al azar por el sistema como el lugar que la tienda de audio se mantendrá. Todos los archivos de audio residir en este directorio. + +
+
+
+ Servidor de correo de voz activo - En sistemas multi-servidor, este es el servidor que se encargará de todas las casillas de correo de voz. Este servidor es también donde la línea telefónica en mensajes generados se cargan desde el 8168 grabaciones. + +
+
+
+ Salida de marcación automática de Activo - Esta opción le permite activar o desactivar la marcación automática de salida dentro de VICIDIAL, en este campo a 0 se eliminará de las listas y FILTROS secciones y muchos campos de la Campaña Modificación pantallas. Manual de entrada de marcación seguirá siendo permitida dentro de la agente de la pantalla, lista de marcación, pero no será posible. El valor predeterminado es 1 para los activos. + +
+
+
+ Ratio Dial Limit - Este es el límite máximo de la escala de marcación automática en la pantalla de la campaña. + +
+
+
+ Max LLENAR Pide por segundo - Esta configuración determina el número máximo de llamadas que pueden ser colocados por la auto-LLENAR salida de marcación automática de secuencia de comandos de todos los servidores, por segundo. Debe ser de 1 a 200. El valor predeterminado es 40. + +
+
+
+ Permitir Custom Dialplan entradas - Esta opción le permite introducir líneas personalizadas dialplan en llamadas menús. El valor predeterminado es 0 para los inactivos. + +
+
+
+ Territorios de usuario de Activo - Esta configuración le permite habilitar la setttings territorios de usuario desde la pantalla de modificación del usuario. Esta característica se agregó para permitir una mayor integración con una instalación personalizada Vtiger pero puede tener aplicaciones en un sistema de Vicidial pura también. Por defecto es 0 para discapacitados. + +
+
+
+ Formulario de Asistencia Segunda Habilitar - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Habilitar TTS Integración - Esta configuración le permite habilitar Texto a la integración de voz con Cepstral. Esto sólo está disponible actualmente para las campañas de tipo de encuesta de salida. Por defecto es 0 para discapacitados. + +
+
+
+ Características de Activo CC - Esta opción le permite activar o desactivar el control de la calidad o las características de Control de Calidad. El valor por defecto es 0 para inactivos. + +
+
+
+ Permita la registración de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0. + +
+
+
+ IP del servidor de QueueMetrics - éste es el IP address de la base dedatos para su instalación de QueueMetrics. + +
+
+
+ Nombre de la base de datos de QueueMetrics - éste es el nombre de labase de datos para su base de datos de QueueMetrics. + +
+
+
+ Conexión de la base de datos de QueueMetrics - éste es el nombre delusuario usado para abrirse una sesión a su base de datos deQueueMetrics. + +
+
+
+ Contraseña de la base de datos de QueueMetrics - ésta es lacontraseña usada para abrirse una sesión a su base de datos deQueueMetrics. + +
+
+
+ URL de QueueMetrics - Ésta es la dirección del URL o del Web siteusada para conseguir a su instalación de QueueMetrics. + +
+
+
+ Identificación del registro de QueueMetrics - ésta es laidentificación del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente. + +
+
+
+ QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de teléfono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa. + +
+
+
+ Habilitar Vtiger Integración - Este ajuste le permite activar Vtiger integración con VICIDIAL. Actualmente enlaces a Vtiger administración y búsqueda de usuarios, así como la reproducción son las únicas características disponibles integración. Por defecto es 0. + +
+
+
+ PP Vtiger IP del servidor - Este es la dirección IP de la base de datos para su instalación Vtiger. + +
+
+
+ Vtiger nombre de base de datos - Este es el nombre de base de datos para su base de datos Vtiger. + +
+
+
+ Base de datos de inicio de sesión Vtiger - Este es el nombre de usuario utilizado para acceder a su base de datos Vtiger. + +
+
+
+ Base de datos Vtiger Contraseña - Esta es la contraseña utilizada para acceder a su base de datos Vtiger. + +
+
+
+ Vtiger URL - Este es el URL o dirección del sitio web utilizado para acceder a tu Vtiger instalación. + + +



+ + VICIDIAL_STATUSES TABLA

+
+
+ Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripción debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposición del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opción de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico. También hay 5 ajustes adicionales que definirán el tipo de estado: la venta, la DNC, póngase en contacto con los clientes, no les interesa, impracticable. + + + +



+ + VICIDIAL_STATUS_CATEGORIES TABLA

+
+
+ Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificación de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripción es opcional y la exhibiciónde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD. La venta y Categoría Categoría Principal Muerto son utilizados tanto por el sistema de lista de sugerencias en el análisis de estadísticas de la lista. + + + 0) + { + ?> +



+ + CÓDIGOS DE ESTADO VICIDIAL CC

+
+
+ El Control de Calidad, sistema de control de calidad dentro de VICIDIAL tiene su propio conjunto de códigos de estado separados de los de la gestión de llamadas de funciones VICIDIAL. CC statuse códigos debe estar entre 2 y 8 caracteres de longitud y no contienen caracteres especiales, como un espacio o de colon. El código de estado de CC descripción debe estar entre 2 y 30 caracteres de longitud. + + + + +







+







+ EL EXTREMO +
+ - - - -







-







-EL EXTREMO -
-\n"; - echo "\n"; - echo "\n"; - echo ""; - - $stmt="SELECT dial_statuses,local_call_time,lead_filter_id from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $dial_statuses = $row[0]; - $local_call_time = $row[1]; - if ($lead_filter_id=='') { - $lead_filter_id = $row[2]; - if ($lead_filter_id=='') + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') { - $lead_filter_id='NONE'; + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Demuestre La Cuenta De los Plomos De Dialable -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTAS: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; } - - $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; - $rslt=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rslt); - $camp_lists=''; - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; - if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} - } - $camp_lists = eregi_replace(".$","",$camp_lists); - - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} else - {$fSQL = '';} - - - echo "

\n"; - echo "Demuestre La Cuenta De los Plomos De Dialable -

\n"; - echo "CAMPAIGN: $campaign_id
\n"; - echo "LISTAS: $camp_lists
\n"; - echo "STATUSES: $dial_statuses
\n"; - echo "FILTER: $lead_filter_id
\n"; - echo "CALL TIME: $local_call_time

\n"; - - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - - echo "

\n"; - echo "\n"; - - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } - else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; - } -} ###################### @@ -5141,7 +6154,7 @@ if ($ADD==7111111) $country_code = 'USA'; $gender = 'M'; $date_of_birth = '1970-01-01'; - $alt_phone = '3125551212'; + $alt_phone = '3125551111'; $email = 'test@test.com'; $security_phrase = 'SECUTIRY'; $comments = 'COMMENTS FIELD'; @@ -5159,17 +6172,32 @@ if ($ADD==7111111) $RGserver_ip = '10.10.10.15'; $RGSIPexten = 'SIP/gs102'; $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; echo "\n"; echo "\n"; echo "\n"; echo ""; - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $script_name = $row[1]; - $script_text = $row[3]; + $script_text = stripslashes($row[3]); if (eregi("iframe src",$script_text)) { @@ -5210,6 +6238,21 @@ if ($ADD==7111111) $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); } $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); @@ -5250,6 +6293,21 @@ if ($ADD==7111111) $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); $script_text = eregi_replace("\n","
",$script_text); @@ -5289,6 +6347,17 @@ if ($ADD=="1") { if ($LOGmodify_users==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; @@ -5296,7 +6365,14 @@ if ($ADD=="1") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
NÚmero De Usuario: $NWB#vicidial_users-user$NWE
NÚmero De Usuario: Auto-Generated $NWB#vicidial_users-user$NWE
NÚmero De Usuario: $NWB#vicidial_users-user$NWE
Contraseña: $NWB#vicidial_users-pass$NWE
Nombre Completo: $NWB#vicidial_users-full_name$NWE
Nivel Del Usuario:
\n"; echo ""; @@ -5352,7 +6439,14 @@ if ($ADD=="1A") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -5394,26 +6488,99 @@ if ($ADD==11) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
NÚmero De Usuario: $NWB#vicidial_users-user$NWE
NÚmero De Usuario: Auto-Generated $NWB#vicidial_users-user$NWE
NÚmero De Usuario: $NWB#vicidial_users-user$NWE
Contraseña: $NWB#vicidial_users-pass$NWE
Nombre Completo: $NWB#vicidial_users-full_name$NWE
\n"; echo ""; echo "
NUEVA CAMPAÑA
\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; @@ -5424,7 +6591,11 @@ if ($ADD==11) echo "\n"; - echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID De la Campaña: $NWB#vicidial_campaigns-campaign_id$NWE
ID De la Campaña: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID De la Campaña: $NWB#vicidial_campaigns-campaign_id$NWE
Nombre de la Campaña: $NWB#vicidial_campaigns-campaign_name$NWE
Descripción De la Campaña: $NWB#vicidial_campaigns-campaign_description$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Extensión del parking: $NWB#vicidial_campaigns-park_ext$NWE
Nombre de fichero Del Parking: $NWB#vicidial_campaigns-park_file_name$NWE
Formulario Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulario Web: $NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Llamar al Siguiente Agente: $NWB#vicidial_campaigns-next_agent_call$NWE
Llamar al Siguiente Agente: $NWB#vicidial_campaigns-next_agent_call$NWE
Franja horaria de llamada: $NWB#vicidial_campaigns-local_call_time$NWE
Escritura: $NWB#vicidial_campaigns-campaign_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_campaigns-get_call_launch$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; } @@ -5444,13 +6615,31 @@ if ($ADD==12) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
CopiarUna CAMPAÑA\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID De la Campaña: $NWB#vicidial_campaigns-campaign_id$NWE
ID De la Campaña: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID De la Campaña: $NWB#vicidial_campaigns-campaign_id$NWE
Nombre de la Campaña: $NWB#vicidial_campaigns-campaign_name$NWE
Campaña De la Fuente:
\n"; echo ""; echo "
ADD A NEW LIST\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
ID De la Lista: (Solamente dígitos)$NWB#vicidial_lists-list_id$NWE
ID De la Lista: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID De la Lista: (Solamente dígitos)$NWB#vicidial_lists-list_id$NWE
Nombre De la Lista: $NWB#vicidial_lists-list_name$NWE
Descripción De la Lista: $NWB#vicidial_lists-list_description$NWE
Campaña: \n"; echo "
\n"; echo "\n"; echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } echo "\n"; echo "
List:
Números de teléfono:

(un número de teléfono por línea sólo)
$NWB#vicidial_list-dnc$NWE
Agregar o eliminar:
\n"; } @@ -5628,24 +6898,45 @@ if ($ADD==1111) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
NUEVO GRUPO DE ENTRADA\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID De Grupo: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
ID De Grupo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID De Grupo: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nombre De Grupo: $NWB#vicidial_inbound_groups-group_name$NWE
Color Del Grupo: $NWB#vicidial_inbound_groups-group_color$NWE
Activo: $NWB#vicidial_inbound_groups-active$NWE
Formulario Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Formulario Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Buzón de Voz: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Llamar al Siguiente Agente: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Llamar al Siguiente Agente: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Escritura: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; } @@ -5665,13 +6956,31 @@ if ($ADD==1211) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
GRUPO DE ENTRADA DEL COPY\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID De Grupo: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
ID De Grupo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID De Grupo: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nombre De Grupo: $NWB#vicidial_inbound_groups-group_name$NWE
Source ID De Grupo:
\n"; + echo ""; + + echo "
AGREGAR UN NUEVO CONVOCATORIA MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menú ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menú ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nombre de menú: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPIA CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menú ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menú ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nombre de menú: $NWB#vicidial_call_menu-menu_name$NWE
Menú Fuente: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + ###################### # ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN ###################### @@ -5821,13 +7238,31 @@ if ($ADD==111111) { if ($LOGmodify_usergroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
NUEVO GRUPO DE USUARIOS\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Grupo: (sin espacios o signos de puntuación)$NWB#vicidial_user_groups-user_group$NWE
Grupo: Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Grupo: (sin espacios o signos de puntuación)$NWB#vicidial_user_groups-user_group$NWE
Descripción: (Descripción del grupo)$NWB#vicidial_user_groups-group_name$NWE
\n"; @@ -5848,13 +7283,32 @@ if ($ADD==1111111) { if ($LOGmodify_scripts==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ADD NEW SCRIPT\n"; echo "\n"; + echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -5898,6 +7352,16 @@ if ($ADD==1111111) echo ""; echo ""; echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; echo ""; echo "
"; # END Insert Field @@ -5921,13 +7385,31 @@ if ($ADD==11111111) { if ($LOGmodify_filters==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Identificación De la Escritura:: (sin espacios o signos de puntuación)$NWB#vicidial_scripts-script_id$NWE
Identificación De la Escritura:: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
Identificación De la Escritura:: (sin espacios o signos de puntuación)$NWB#vicidial_scripts-script_id$NWE
Nombre de la escritura: (título de la escritura)$NWB#vicidial_scripts-script_name$NWE
Comentarios de la escritura: $NWB#vicidial_scripts-script_comments$NWE
Activo: $NWB#vicidial_scripts-active$NWE
\n"; echo ""; echo "
AGREGUE EL FILTRO NUEVO\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6051,6 +7533,17 @@ if ($ADD==11111111111) { if ($LOGast_admin_access==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Identificación Del Filtro: (sin espacios o signos de puntuación)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Identificación Del Filtro:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
Identificación Del Filtro: (sin espacios o signos de puntuación)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nombre Del Filtro: (descripción corta del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Comentarios Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; echo ""; @@ -6059,7 +7552,14 @@ if ($ADD==11111111111) echo "
\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6231,6 +7731,7 @@ if ($ADD==141111111111) echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "
Extensión del teléfono: $NWB#phones-extension$NWE
Extensión del teléfono: Auto-Generated $NWB#phones-extension$NWE
Extensión del teléfono: $NWB#phones-extension$NWE
Número De Dial plan: (Solamente dígitos)$NWB#phones-dialplan_number$NWE
Caja de voz: (Solamente dígitos)$NWB#phones-voicemail_id$NWE
CallerID De salida: (Solamente dígitos)$NWB#phones-outbound_cid$NWE
Portador de Identificación: $NWB#vicidial_server_carriers-carrier_id$NWE
Transportista Nombre: $NWB#vicidial_server_carriers-carrier_name$NWE
Descripción Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Cadena de registro: $NWB#vicidial_server_carriers-registration_string$NWE
Plantilla ID:
\n"; + echo ""; + + echo "
ADD NEW TTS ENTRADA\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
Nombre TTS: $NWB#vicidial_tts_prompts-tts_name$NWE
Activo:
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC EN ESPERA DE ENTRADA\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Música en espera de identificación: $NWB#vicidial_music_on_hold-moh_id$NWE
Música en espera Nombre: $NWB#vicidial_music_on_hold-moh_name$NWE
Orden aleatorio:
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW contestador\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ID de correo de voz: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Activo:
Correo electrónico:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + ###################### # ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN ###################### @@ -6359,6 +7952,20 @@ if ($ADD==11111111111111) if ($ADD=="2") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6371,13 +7978,14 @@ if ($ADD=="2") { $user = 'AUTOGENERA'; } - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) { - echo "
USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
el nombre completo y la contraseña deben ser por lo menos 2 caracteres de largo\n"; + echo "
USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
el nombre completo y la contraseña deben ser por lo menos 2 caracteres de largo\n"; + echo "
usted debe seleccionar un grupo de usuarios\n"; } - else + else { if (ereg('AUTOGENERA',$user)) { @@ -6495,8 +8103,8 @@ if ($ADD=="2") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6504,7 +8112,7 @@ if ($ADD=="2") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6626,6 +8234,20 @@ if ($ADD=="2") if ($ADD=="2A") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6634,14 +8256,14 @@ if ($ADD=="2A") {echo "
USUARIO NO AGREGADO - hay ya un usuario en el sistema con este número del usuario\n";} else { - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) { - echo "
USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
el nombre completo y la contraseña deben ser por lo menos 2 caracteres de largo\n"; - echo "\n"; + echo "
USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
el nombre completo y la contraseña deben ser por lo menos 2 caracteres de largo\n"; + echo "\n"; } - else + else { if (ereg('AUTOGEN',$user)) { @@ -6680,7 +8302,7 @@ if ($ADD=="2A") $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; $rslt=mysql_query($stmt, $link); } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -6763,8 +8385,8 @@ if ($ADD=="2A") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6772,7 +8394,7 @@ if ($ADD=="2A") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6899,6 +8521,20 @@ if ($ADD=="2A") if ($ADD==21) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6914,17 +8550,17 @@ if ($ADD==21) {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) { - echo "
CAMPAÚA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; - echo "
el nombre de la campaña debe estar entre 6 y 40 caracteres en longitud\n"; + echo "
CAMPAÚA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
el nombre de la campaña debe estar entre 6 y 40 caracteres en longitud\n"; } - else + else { echo "
CAMPAÑA AÑADIDA: $campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED');"; + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; @@ -6949,6 +8585,20 @@ if ($ADD==21) if ($ADD==20) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6957,41 +8607,49 @@ if ($ADD==20) {echo "
CAMPAÚA NO AGREGADA - hay ya una campaña en el sistema con esta identificación\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else { - echo "
CAMPAÚA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; - echo "
source la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; - } - else - { - echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
CAMPAÚA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
source la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias from vicidial_campaigns where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=31; @@ -7018,17 +8676,17 @@ if ($ADD==22) {echo "
ESTADO de la CAMPAÚA NO AGREGADO - hay ya un global-estado en el sistema con este nombre\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
ESTADO de la CAMPAÚA NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; - echo "
el nombre del estado debe estar entre 2 y 30 caracteres en longitud\n"; + echo "
ESTADO de la CAMPAÚA NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; + echo "
el nombre del estado debe estar entre 2 y 30 caracteres en longitud\n"; } - else + else { echo "
ESTADO DE LA CAMPAÑA AÑADIDA: $campaign_id - $status\n"; - $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -7064,13 +8722,13 @@ if ($ADD==23) {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
CAMPAÚA HOT KEY NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
hotkey must be a single character between 1 and 9 \n"; - echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; + echo "
CAMPAÚA HOT KEY NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; } - else + else { echo "
ACCESO DIRECTO A LA CAMPAÑA AÑADIDO: $campaign_id - $status - $hotkey\n"; @@ -7106,14 +8764,14 @@ if ($ADD==25) {echo "
El PLOMO de la CAMPAÑA RECICLA NO AGREGADO - hay ya unconducir-reciclaje para esta campaña con este estado\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; - echo "
la tentativa retrasa debe ser por lo menos 120 segundos y menos de 43.200 segundos o 12 horas\n"; - echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos y menos de 43.200 segundos o 12 horas\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; } - else + else { echo "
EL PLOMO DE LA CAMPAÑA RECICLA AGREGADO: $campaign_id - $status - $attempt_delay\n"; @@ -7149,12 +8807,12 @@ if ($ADD==26) {echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - hay ya una entrada para esta campaña con este estado\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
ESTADO AUTO DEL DIAL DEL ALT AGREGADO: $campaign_id - $status\n"; @@ -7195,13 +8853,13 @@ if ($ADD==27) {echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO AGREGADO - hay ya una entrada para esta campaña con este code\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
pause code must be between 1 and 6 characters in length\n"; - echo "
pause nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; + echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; } - else + else { echo "
EL CÓDIGO DE LA PAUSA DEL AGENTE AGREGÓ: $campaign_id - $pause_code - $pause_code_name\n"; @@ -7237,12 +8895,12 @@ if ($ADD==28) {echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO AGREGADO - hay ya una entrada para esta campaña con este estado\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
EL ESTADO DEL DIAL DE LA CAMPAÑA AGREGÓ: $campaign_id - $status\n"; @@ -7275,6 +8933,20 @@ if ($ADD==28) if ($ADD==211) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); @@ -7283,14 +8955,14 @@ if ($ADD==211) {echo "
LISTA NO AGREGADA - hay ya una lista en el sistema con esta ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) { - echo "
LISTA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La ID de la lista debe estar entre 2 y 8 caracteres en longitud\n"; - echo "
El nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; - echo "
ID De la Lista must be greater than 100\n"; - } - else + echo "
LISTA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La ID de la lista debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
El nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + echo "
ID De la Lista must be greater than 100\n"; + } + else { echo "
LISTA AÑADIDA: $list_id\n"; @@ -7317,6 +8989,20 @@ if ($ADD==211) if ($ADD==2111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7332,15 +9018,15 @@ if ($ADD==2111) {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) { - echo "
GRUPO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La ID de grupo debe estar entre 2 y 20 caracteres en longitud y contener no ' -+'.\n"; - echo "
El color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; + echo "
GRUPO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La ID de grupo debe estar entre 2 y 20 caracteres en longitud y contener no ' -+'.\n"; + echo "
El color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch');"; + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,web_form_address_two,start_call_url,dispo_call_url) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; @@ -7368,6 +9054,20 @@ if ($ADD==2111) if ($ADD==2011) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7376,26 +9076,34 @@ if ($ADD==2011) {echo "
GRUPO NO AGREGADO - hay ya un grupo en el sistema con esta ID\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else { - echo "
GRUPO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La ID de grupo debe estar entre 2 y 20 caracteres en longitud y contener no ' -+'.\n"; - echo "
El color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias from vicidial_inbound_groups where group_id=\"$source_group_id\";"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La ID de grupo debe estar entre 2 y 20 caracteres en longitud y contener no ' -+'.\n"; + echo "
El color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); - echo "
GRUPO AÑADIDO: $group_id\n"; + echo "
GRUPO AÑADIDO: $group_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN GRUPO DE ENTRADA DEL COPY', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN GRUPO DE ENTRADA DEL COPY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=3111; @@ -7423,12 +9131,12 @@ if ($ADD==2311) {echo "
DIDNOT AÑADIDO - ya hay un DID en el sistema con esta extensión\n";} else { - if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) { - echo "
DIDNOT AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
DIDNOT AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; $rslt=mysql_query($stmt, $link); @@ -7468,14 +9176,14 @@ if ($ADD==2411) {echo "
DIDNOT AÑADIDO - ya hay un DID en el sistema con esta extensión\n";} else { - if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) { - echo "
DIDNOT AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
DIDNOT AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code from vicidial_inbound_dids where did_id=\"$source_did\";"; + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; $rslt=mysql_query($stmt, $link); $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; @@ -7498,6 +9206,115 @@ if ($ADD==2411) } +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NO AGREGADOS - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL MENU NO AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Llame Menú de identificación debe ser entre 2 y 50 caracteres de longitud y no contienen ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL AGREGADOS MENU: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NO AGREGADOS - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL MENU NO AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Llame Menú de identificación debe ser entre 2 y 50 caracteres de longitud y no contienen ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL AGREGADOS MENU: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + ###################### # ADD=21111 adds new remote agents to the system ###################### @@ -7512,12 +9329,12 @@ if ($ADD==21111) {echo "
AGENTES ALEJADOS NO AGREGADOS - hay ya una entrada alejada de los agentes comenzando con esta ID del usuario\n";} else { - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
AGENTES ALEJADOS NO AGREGADOS - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
AGENTES ALEJADOS NO AGREGADOS - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; $rslt=mysql_query($stmt, $link); @@ -7542,6 +9359,20 @@ if ($ADD==21111) if ($ADD==211111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -7550,12 +9381,12 @@ if ($ADD==211111) {echo "
GRUPO de USUARIO NO AGREGADO - hay ya una entrada del grupo de usuario con este nombre\n";} else { - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
GRUPO de USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
GRUPO de USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; $rslt=mysql_query($stmt, $link); @@ -7621,8 +9452,8 @@ if ($ADD==211111) else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -7630,7 +9461,7 @@ if ($ADD==211111) if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -7656,6 +9487,20 @@ if ($ADD==211111) if ($ADD==2111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); @@ -7664,16 +9509,16 @@ if ($ADD==2111111) {echo "
ESCRITURA NO AGREGADA - hay ya una entrada de la escritura con este nombre\n";} else { - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
ESCRITURA NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
El nombre, la descripción y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
ESCRITURA NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre, la descripción y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else { - $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','$script_text','$active');"; + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; $rslt=mysql_query($stmt, $link); - + if ($DB > 0) {echo "|$stmt|";} echo "
ESCRITURA AGREGADA: $script_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7695,6 +9540,20 @@ if ($ADD==2111111) if ($ADD==21111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; $rslt=mysql_query($stmt, $link); @@ -7703,16 +9562,17 @@ if ($ADD==21111111) {echo "
FILTRO NO AGREGADO - hay ya una entrada del filtro con esta identificación\n";} else { - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTRO NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Filtre la identificación, nombre y el SQL debe ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
FILTRO NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Filtre la identificación, nombre y el SQL debe ser por lo menos 2 caracteres en longitud\n"; + } + else { - $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='$lead_filter_sql';"; + $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
EL FILTRO AGREGÓ: $lead_filter_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7742,15 +9602,16 @@ if ($ADD==211111111) {echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificación\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La identificación del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; - } - else + echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
TIEMPO DE LA LLAMADA AGREGADO: $call_time_id\n"; @@ -7781,15 +9642,16 @@ if ($ADD==2111111111) {echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificación\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Indique que identificación del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Indique que identificación del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
TIEMPO DE LA LLAMADA DEL ESTADO AGREGADO: $call_time_id\n"; @@ -7812,6 +9674,20 @@ if ($ADD==2111111111) if ($ADD==231111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; $rslt=mysql_query($stmt, $link); @@ -7821,14 +9697,14 @@ if ($ADD==231111111) else { $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - echo "
MAYÚS DEFINICIÓN NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Identificación y cambio de nombre debe ser al menos de 2 caracteres de longitud\n"; - echo "
Hora de inicio cambio debe ser de 4 dígitos de longitud y una hora válida\n"; - echo "
Longitud cambio debe ser de 5 caracteres de longitud y 24 horas o menos\n"; - } - else + echo "
MAYÚS DEFINICIÓN NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Identificación y cambio de nombre debe ser al menos de 2 caracteres de longitud\n"; + echo "
Hora de inicio cambio debe ser de 4 dígitos de longitud y una hora válida\n"; + echo "
Longitud cambio debe ser de 5 caracteres de longitud y 24 horas o menos\n"; + } + else { $p=0; $shift_weekdays_ct = count($shift_weekdays); @@ -7839,6 +9715,7 @@ if ($ADD==231111111) } $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
MAYÚS AÑADIDO:$shift_id\n"; @@ -7861,6 +9738,20 @@ if ($ADD==231111111) if ($ADD==21111111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; $rslt=mysql_query($stmt, $link); @@ -7883,25 +9774,36 @@ if ($ADD==21111111111) {echo "
PHONE NOT ADDED - ya existe un Teléfono de alias en el sistema con esta información de acceso\n";} else { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
TELÉFONO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a ID de correo de voz in the system with this ID\n";} + else { - echo "
EL TELÉFONO AGREGÚ\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
TELÉFONO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Los siguientes campos deben disponer de datos: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
EL TELÉFONO AGREGÚ\n"; - $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } @@ -7931,9 +9833,9 @@ if ($ADD==22111111111) {echo "
TELÉFONO ALIAS NO AÑADIDO - ya existe un Teléfono de inicio de sesión en el sistema con este ID\n";} else { - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) {echo "
TELÉFONO ALIAS NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { echo "
TELÉFONO ALIAS AÑADIDO\n"; @@ -7972,9 +9874,9 @@ if ($ADD==23111111111) {echo "
ALIAS GRUPO NO AÑADIDO - no puede usar palabras reservadas en el grupo de alias\n";} else { - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) {echo "
ALIAS GRUPO NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { echo "
GRUPO DE ALIAS AÑADIDO\n"; @@ -8009,16 +9911,16 @@ if ($ADD==211111111111) {echo "
SERVIDOR NO AGREGADO - hay ya un servidor en el sistema con esta identificación\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) {echo "
SERVIDOR NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { echo "
SERVIDOR AGREGADO\n"; $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; $rslt=mysql_query($stmtA, $link); ### LOG INSERTION Admin Log Table ### @@ -8064,14 +9966,14 @@ if ($ADD==221111111111) {echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - hay ya un expediente del servidor-tronco para esta campaña\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; - echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; - echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; } - else + else { echo "
EL EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL AGREGÓ: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; @@ -8106,9 +10008,9 @@ if ($ADD==231111111111) {echo "
CONF PLANTILLA NO AÑADIDO - ya hay una plantilla en el sistema con este ID\n";} else { - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) {echo "
CONF PLANTILLA NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { echo "
CONF PLANTILLA AÑADIDO\n"; @@ -8142,13 +10044,13 @@ if ($ADD==241111111111) {echo "
TRANSPORTISTA NO AÑADIDO - ya existe un soporte en el sistema con este ID\n";} else { - if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) {echo "
TRANSPORTISTA NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { echo "
CARRIER ADDED\n"; - $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N');"; + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; $rslt=mysql_query($stmt, $link); $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; @@ -8167,6 +10069,130 @@ if ($ADD==241111111111) } +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS entrada no AGREGADOS - ya hay una entrada de TTS en el sistema con este ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS entrada no AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
TTS añadido la entrada de\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MÚSICA EN ESPERA entrada no AGREGADOS - ya hay una entrada en el Ministerio de Salud en el sistema con este ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MÚSICA EN ESPERA entrada no AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
MÚSICA EN ESPERA añadido la entrada de\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Contestador NO AGREGADOS - ya existe un buzón de voz en el sistema con este ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Contestador NO AGREGADOS - ya hay un teléfono en el sistema de correo de voz con este ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
Contestador NO AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
Contestador AGREGADOS\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + ###################### # ADD=2111111111111 adds new conference to the system ###################### @@ -8181,9 +10207,9 @@ if ($ADD==2111111111111) {echo "
CONFERENCIA NO AGREGADA - hay ya una conferencia en el sistema con esta identificación y servidor\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
CONFERENCIA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { echo "
LA CONFERENCIA AGREGÚ\n"; @@ -8209,9 +10235,9 @@ if ($ADD==21111111111111) {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
VICIDIAL CONFERENCIA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { echo "
VICIDIAL LA CONFERENCIA AGREGÚ\n"; @@ -8244,17 +10270,17 @@ if ($ADD==221111111111111) {echo "
ESTADO DE SISTEMA NO AGREGADO - there is already a global-status in the system with this name\n";} else { - if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
ESTADO DE SISTEMA NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; - echo "
el nombre del estado debe estar entre 2 y 30 caracteres en longitud\n"; + echo "
ESTADO DE SISTEMA NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; + echo "
el nombre del estado debe estar entre 2 y 30 caracteres en longitud\n"; } - else + else { echo "
EL ESTADO DE SISTEMA AGREGÓ: $status_name - $status\n"; - $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category) values('$status','$status_name','$selectable','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -8285,13 +10311,13 @@ if ($ADD==231111111111111) {echo "
CATEGORÍA DEL ESTADO NO AGREGADA - hay ya una categoría del estado en el sistema con estaidentificación: $row[0]\n";} else { - if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) { - echo "
CATEGORÍA DEL ESTADO NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La identificación debe estar entre 2 y 20 caracteres en longitud\n"; - echo "
el nombre conocido debe estar entre 2 y 50 caracteres en longitud\n"; + echo "
CATEGORÍA DEL ESTADO NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación debe estar entre 2 y 20 caracteres en longitud\n"; + echo "
el nombre conocido debe estar entre 2 y 50 caracteres en longitud\n"; } - else + else { echo "
STATUS CATEGORÍA ADDED: $vsc_id - $vsc_name\n"; @@ -8335,13 +10361,13 @@ if ($ADD==241111111111111) {echo "
CC Código de estado no se añade- ya hay una qc código de estado en el sistema con el nombre: $row[0]\n";} else { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) { - echo "
CC Código de estado no se añade- Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
código debe estar entre 1 y 8 caracteres de longitud\n"; - echo "
nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; + echo "
CC Código de estado no se añade- Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
código debe estar entre 1 y 8 caracteres de longitud\n"; + echo "
nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; } - else + else { echo "
CC Código AÑADIDO:$code_name - $code\n"; @@ -8375,232 +10401,232 @@ if ($ADD==241111111111111) ###################### if ($ADD=="4A") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; } - echo "
USUARIO MODIFICADO - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Activo'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
USUARIO MODIFICADO - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### @@ -8608,233 +10634,232 @@ $ADD=3; # go to user modification below ###################### if ($ADD=="4B") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; } - echo "
USUARIO MODIFICADO - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Activo'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
USUARIO MODIFICADO - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3; # go to user modification below } - else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; - } -$ADD=3; # go to user modification below -} - ###################### @@ -8842,233 +10867,233 @@ $ADD=3; # go to user modification below ###################### if ($ADD==4) -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; - } - else - { - echo "
USUARIO MODIFICADO: $user\n"; + echo ""; - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; + echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) + else { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
USUARIO MODIFICADO: $user\n"; - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Activo'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# - ### user doesn't exist in vtiger, insert it - else + if ($enable_vtiger_integration > 0) { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) - { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### # ADD=41 submit campaign modifications to the system - DETAIL ###################### if ($ADD==41) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9082,7 +11107,7 @@ if ($ADD==41) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9117,6 +11142,7 @@ if ($ADD==41) $survey_xfer_exten = '8300'; $voicemail_ext = ''; $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; } if (ereg('list_activation',$stage)) { @@ -9146,20 +11172,31 @@ if ($ADD==41) } else { - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; - echo "
|$campaign_name|$active|\n"; + echo "
CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + echo "
|$campaign_name|$active|\n"; } - else + else { echo "
CAMPAÑA MODIFICADA: $campaign_id\n"; + if ( ($dial_method != 'MANUAL') and ($dial_method != 'Entrantes_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } if ($dial_method == 'MANUAL') { $auto_dial_level='0'; $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; } else { @@ -9188,7 +11225,7 @@ if ($ADD==41) if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) {$hopper_level='100';} - $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias' where campaign_id='$campaign_id';"; + $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -9217,124 +11254,127 @@ if ($ADD==41) } } } - else + else { echo "Usted no tiene permiso de visión esta página\n"; exit; } -$ADD=31; # go to campaign modification form below -} + $ADD=31; # go to campaign modification form below + } + ###################### # ADD=42 modify/delete campaign status in the system ###################### if ($ADD==42) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) - { - echo "
ESTADO de la CAMPAÚA NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; - echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; - } - else - { - if (ereg('delete',$stage)) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO: $campaign_id - $status\n"; - - $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); - - $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmtA, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
ESTADO de la CAMPAÚA NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; } - if (ereg('modify',$stage)) + else { - echo "
EL ESTADO DE ENCARGO DE LA CAMPAÑA SE MODIFICÓ: $campaign_id - $status\n"; + if (ereg('delete',$stage)) + { + echo "
ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO: $campaign_id - $status\n"; - $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
EL ESTADO DE ENCARGO DE LA CAMPAÑA SE MODIFICÓ: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below } -$SUB=22; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=43 delete campaign hotkey in the system ###################### if ($ADD==43) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
CAMPAÚA HOT KEY NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; - echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; - echo "
the campaign hotkey needs to be at least 1 characters in length\n"; - } - else - { - echo "
LA CAMPAÚA DE ENCARGO HOT KEY SUPRIMIÚ: $campaign_id - $status - $hotkey\n"; + echo ""; - $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
CAMPAÚA HOT KEY NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
LA CAMPAÚA DE ENCARGO HOT KEY SUPRIMIÚ: $campaign_id - $status - $hotkey\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Estado: $status|HotKey: $hotkey';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Estado: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below } -$SUB=23; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=44 submit campaign modifications to the system - Basic View ###################### if ($ADD==44) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9348,7 +11388,7 @@ if ($ADD==44) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9400,13 +11440,12 @@ if ($ADD==44) } else { - - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + echo "
CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; } - else + else { echo "
CAMPAÑA MODIFICADA: $campaign_id\n"; @@ -9464,153 +11503,155 @@ if ($ADD==44) } } } - else + else { echo "Usted no tiene permiso de visión esta página\n"; exit; } -$ADD=34; # go to campaign modification form below -} + $ADD=34; # go to campaign modification form below + } + ###################### # ADD=45 modify campaign lead recycle in the system ###################### if ($ADD==45) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; - echo "
la tentativa retrasa debe ser por lo menos 120 segundos y menos de 43.200 segundos o 12 horas\n"; - echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; - } - else - { - echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + echo ""; - $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos y menos de 43.200 segundos o 12 horas\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below } -$SUB=25; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=47 modify agent pause code in the system ###################### if ($ADD==47) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
pause_code must be between 1 and 6 characters in length\n"; - echo "
pause_nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; - } - else - { - echo "
AGENTE PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + echo ""; - $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; + } + else + { + echo "
AGENTE PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below } -$SUB=27; -$ADD=31; # go to campaign modification form below -} ###################### # ADD=48 modify campaign QC settings in the system ###################### if ($ADD==48) -{ + { if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
AJUSTES CC NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if (strlen($campaign_id) < 2) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
AJUSTES CC NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
AJUSTES CC MODIFICADOS: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
AJUSTES CC MODIFICADOS: $campaign_id\n"; - - $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below } -$SUB=28; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9618,39 +11659,39 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD=='40A') -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
ENCUESTA DE VALORES NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - } - else - { - echo "
ENCUESTA DE AJUSTES MODIFICADOS: $campaign_id\n"; + echo ""; - $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); + if (strlen($campaign_id) < 2) + { + echo "
ENCUESTA DE VALORES NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + } + else + { + echo "
ENCUESTA DE AJUSTES MODIFICADOS: $campaign_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below } -$SUB='20A'; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9658,143 +11699,70 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==49) -{ - if ($LOGmodify_campaigns==1) { - ##### MODIFY a list mix container entry ##### + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### if ($stage=='MODIFY') - { - echo ""; - - $Flist_mix_container = "list_mix_container_$vcl_id"; - $Fmix_method = "mix_method_$vcl_id"; - $Fstatus = "status_$vcl_id"; - $Fvcl_name = "vcl_name_$vcl_id"; - - if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} - elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} - if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} - elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} - if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} - elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} - if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} - elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} - $list_mix_container = preg_replace("/:$/","",$list_mix_container); - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name name must be between 2 and 30 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; - echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $vcl_name\n"; - } - } + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); - ##### ADD a list mix container entry ##### - if ($stage=='ADD') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $OLDlist_mix_container = $row[0]; - $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; - - $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $list_id\n"; - } - } - - ##### REMOVE a list mix container entry ##### - if ($stage=='REMOVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $MIXentries = $MT; - $MIXentries = explode(":", $row[0]); - $Ms_to_print = (count($MIXentries) - 0); - - if ($Ms_to_print < 2) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
MEZCLA DE LA LISTA NO MODIFICADA: Usted no puede suprimir la entrada pasada del list_id de una mezcla dela lista\n"; + echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); - $MIXpercentPCT = $MIXdetailsPCT[2]; - - $q=0; - while ($Ms_to_print > $q) - { - if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) - { - if ( ($q==0) and ($mix_container_item > 0) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - if ( ($q==1) and ($mix_container_item < 1) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - $NEWlist_mix_container .= "$MIXentries[$q]:"; - } - } - } - $q++; - } - $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; $rslt=mysql_query($stmt, $link); @@ -9807,114 +11775,187 @@ if ($ADD==49) if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $list_id\n"; } } - } - ##### ADD a NEW list mix ##### - if ($stage=='NEWMIX') - { - echo ""; + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) - { - echo "
MEZCLA DE LA LISTA NO AGREGADA- Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) { - echo "
MEZCLA DE LA LISTA NO AGREGADA- Hay ya una mezcla de la lista con esta identificación en el sistema\n"; + echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
MEZCLA DE LA LISTA NO MODIFICADA: Usted no puede suprimir la entrada pasada del list_id de una mezcla dela lista\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
MEZCLA DE LA LISTA NO AGREGADA- Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
MEZCLA DE LA LISTA NO AGREGADA- Hay ya una mezcla de la lista con esta identificación en el sistema\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA AGREGÓ:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MEZCLA DE LA LISTA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
LA MEZCLA DE LA LISTA AGREGÓ:$campaign_id - $vcl_id - $vcl_name\n"; + echo "
MEZCLA DE LA LISTA SUPRIMIDA:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MEZCLA DE LA LISTA NO ACTIVADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA ACTIVÓ: $campaign_id - $vcl_id - $vcl_name\n"; } } } - - ##### DELETE an existing list mix ##### - if ($stage=='DELMIX') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
MEZCLA DE LA LISTA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
MEZCLA DE LA LISTA SUPRIMIDA:$campaign_id - $vcl_id - $vcl_name\n"; - } - } - - ##### Set list mix entry to active ##### - if ($stage=='SETACTIVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
MEZCLA DE LA LISTA NO ACTIVADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
LA MEZCLA DE LA LISTA ACTIVÓ: $campaign_id - $vcl_id - $vcl_name\n"; - } - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below } -$SUB=29; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9922,60 +11963,62 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==411) -{ - if ($LOGmodify_lists==1) { - echo ""; - - if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + if ($LOGmodify_lists==1) { - echo "
LISTA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - echo "
LISTA MODIFICADA: $list_id\n"; + echo ""; - $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate' where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - if ($reset_list == 'Y') + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) { - echo "
REAJUSTANDO LA LISTA - LLAMADA - ESTADO\n"; - $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; - $rslt=mysql_query($stmtB, $link); + echo "
LISTA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTA MODIFICADA: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } - if ($campaign_id != "$old_campaign_id") - { - echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($old_campaign_id)\n"; - $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; - $rslt=mysql_query($stmtC, $link); + + if ($reset_list == 'Y') + { + echo "
REAJUSTANDO LA LISTA - LLAMADA - ESTADO\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311; # go to list modification form below } -$ADD=311; # go to list modification form below -} ###################### @@ -9983,58 +12026,88 @@ $ADD=311; # go to list modification form below ###################### if ($ADD==4111) -{ + { if ($LOGmodify_ingroups==1) - { - echo ""; - - if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - echo "
GRUPO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
el color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
GRUPO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GRUPO MODIFICADO: $group_id\n"; + + $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
GRUPO MODIFICADO: $group_id\n"; - - $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias' where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111; # go to in-group modification form below } -$ADD=3111; # go to in-group modification form below -} - ###################### @@ -10042,81 +12115,222 @@ $ADD=3111; # go to in-group modification form below ###################### if ($ADD==4311) -{ + { if ($LOGmodify_dids==1) - { - echo ""; - - if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) { - echo "
NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
did_extension must be at least 1 character in length\n"; - } - else - { - echo "
DID MODIFICADOS: $did_pattern\n"; + echo ""; - $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code' where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID MODIFICADOS: $did_pattern\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3311; # go to did modification form below } -$ADD=3311; # go to did modification form below -} +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL menú modificado: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + ###################### # ADD=41111 modify remote agents info in the system ###################### if ($ADD==41111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo ""; - - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
AGENTES ALEJADOS NO MODIFICADOS - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
LOS AGENTES ALEJADOS SE MODIFICARON\n"; + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENTES ALEJADOS NO MODIFICADOS - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
LOS AGENTES ALEJADOS SE MODIFICARON\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below } -$ADD=31111; # go to remote agents modification form below -} - ###################### @@ -10124,169 +12338,181 @@ $ADD=31111; # go to remote agents modification form below ###################### if ($ADD==411111) -{ + { if ($LOGmodify_usergroups==1) - { - echo ""; - - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
GRUPO de USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $p=0; - $GROUP_shifts=' '; - $group_shifts_ct = count($group_shifts); - while ($p <= $group_shifts_ct) + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - $GROUP_shifts .= "$group_shifts[$p] "; - $p++; + echo "
GRUPO de USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud\n"; } - $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement' where user_group='$OLDuser_group';"; - $rslt=mysql_query($stmt, $link); - - echo "
GRUPO DE USUARIO MODIFICADO\n"; - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY GRUPO DE USUARIOS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
GRUPO DE USUARIO MODIFICADO\n"; - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY GRUPO DE USUARIOS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $group_found_count = $row[0]; - $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### } - - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111; # go to user group modification form below } -$ADD=311111; # go to user group modification form below -} + ###################### # ADD=4111111 modify script in the system ###################### if ($ADD==4111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo ""; - - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
ESCRITURA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
El nombre, la descripción y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='$script_text', active='$active' where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
LA ESCRITURA SE MODIFICÓ\n"; + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
ESCRITURA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre, la descripción y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='" . mysql_real_escape_string($script_text) . "', active='$active' where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ESCRITURAS', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
LA ESCRITURA SE MODIFICÓ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ESCRITURAS', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111111; # go to script modification form below } -$ADD=3111111; # go to script modification form below -} ###################### @@ -10294,39 +12520,41 @@ $ADD=3111111; # go to script modification form below ###################### if ($ADD==41111111) -{ + { if ($LOGmodify_filters==1) - { - echo ""; - - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTRO NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Filtre la identificación, nombre y el SQL debe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='$lead_filter_sql' where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
FILTRO MODIFICADO\n"; + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRO NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Filtre la identificación, nombre y el SQL debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "' where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTROS', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
FILTRO MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTROS', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111111; # go to filter modification form below } -$ADD=31111111; # go to filter modification form below -} ###################### @@ -10334,55 +12562,55 @@ $ADD=31111111; # go to filter modification form below ###################### if ($ADD==411111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
TIEMPO DE LA LLAMADA NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La identificación del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
TIEMPO DE LA LLAMADA MODIFICADO\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
TIEMPO DE LA LLAMADA MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111111; # go to call time modification form below } -$ADD=311111111; # go to call time modification form below -} ###################### @@ -10390,55 +12618,55 @@ $ADD=311111111; # go to call time modification form below ###################### if ($ADD==4111111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Indique que identificación del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Indique que identificación del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below } -$ADD=3111111111; # go to state call time modification form below -} ###################### @@ -10446,50 +12674,50 @@ $ADD=3111111111; # go to state call time modification form below ###################### if ($ADD==431111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; + { + echo ""; - $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) - { - echo "
SHIFT DEFINITION NOT MODIFIED - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Identificación y cambio de nombre debe ser al menos de 2 caracteres de longitud\n"; - echo "
Hora de inicio cambio debe ser de 4 dígitos de longitud y una hora válida\n"; - echo "
Longitud cambio debe ser de 5 caracteres de longitud y 24 horas o menos\n"; - } - else - { - $p=0; - $shift_weekdays_ct = count($shift_weekdays); - while ($p <= $shift_weekdays_ct) + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - $SHIFT_weekdays .= "$shift_weekdays[$p]"; - $p++; + echo "
SHIFT DEFINITION NOT MODIFIED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Identificación y cambio de nombre debe ser al menos de 2 caracteres de longitud\n"; + echo "
Hora de inicio cambio debe ser de 4 dígitos de longitud y una hora válida\n"; + echo "
Longitud cambio debe ser de 5 caracteres de longitud y 24 horas o menos\n"; } - $shift_start_time = preg_replace('/\D/', '', $shift_start_time); - $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); - echo "
MAYÚS MODIFICADOS\n"; + echo "
MAYÚS MODIFICADOS\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=331111111; # go to shift modification form below } -$ADD=331111111; # go to shift modification form below -} ###################### @@ -10497,47 +12725,47 @@ $ADD=331111111; # go to shift modification form below ###################### if ($ADD==41111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) - {echo "
TELÉFONO NO MODIFICADO - hay ya un teléfono en el sistema con esta extensión/servidor\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
TELÉFONO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELÉFONO NO MODIFICADO - hay ya un teléfono en el sistema con esta extensión/servidor\n";} + else { - echo "
TELÉFONO MODIFICADO: $extension\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELÉFONO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
TELÉFONO MODIFICADO: $extension\n"; - $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override' where extension='$old_extension' and server_ip='$old_server_ip';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFICAR EL TELÉFONO', event_sql=\"$SQL_log\", event_notes='IP Del Servidor: $server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFICAR EL TELÉFONO', event_sql=\"$SQL_log\", event_notes='IP Del Servidor: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below } -$ADD=31111111111; # go to phone modification form below -} ###################### @@ -10545,39 +12773,39 @@ $ADD=31111111111; # go to phone modification form below ###################### if ($ADD==42111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) - {echo "
TELÉFONO ALIAS NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else { - echo "
TELÉFONO ALIAS MODIFICADOS: $alias_id\n"; + echo ""; - $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
TELÉFONO ALIAS NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
TELÉFONO ALIAS MODIFICADOS: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFICAR TELÉFONO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFICAR TELÉFONO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below } -$ADD=32111111111; # go to phone alias modification form below -} ###################### @@ -10585,39 +12813,39 @@ $ADD=32111111111; # go to phone alias modification form below ###################### if ($ADD==43111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) - {echo "
ALIAS GRUPO NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else { - echo "
GRUPO DE ALIAS MODIFICADOS: $alias_id\n"; + echo ""; - $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS GRUPO NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
GRUPO DE ALIAS MODIFICADOS: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFICAR GRUPO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFICAR GRUPO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below } -$ADD=33111111111; # go to group alias modification form below -} ###################### @@ -10625,55 +12853,55 @@ $ADD=33111111111; # go to group alias modification form below ###################### if ($ADD==411111111111) -{ - if ($LOGmodify_servers==1) { - echo ""; - - $stmt="SELECT count(*) from servers where server_id='$server_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_id != $old_server_id) ) - {echo "
SERVIDOR NOT MODIFIED - there is already a server in the system with this server_id\n";} - else + if ($LOGmodify_servers==1) { - $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) - {echo "
SERVIDOR NO MODIFICADO - hay ya un servidor en el sistema con este server_ip\n";} + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
SERVIDOR NOT MODIFIED - there is already a server in the system with this server_id\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) - {echo "
SERVIDOR NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
SERVIDOR NO MODIFICADO - hay ya un servidor en el sistema con este server_ip\n";} + else { - echo "
SERVIDOR MODIFICADO: $server_ip\n"; + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVIDOR NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); - $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second' where server_id='$old_server_id';"; - $rslt=mysql_query($stmt, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + echo "
SERVIDOR MODIFICADO: $server_ip\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFICAR EL SERVIDOR', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFICAR EL SERVIDOR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111111111; # go to server modification form below } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10681,57 +12909,57 @@ $ADD=311111111111; # go to server modification form below ###################### if ($ADD==421111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $MAXvicidial_trunks = $rowx[0]; - - $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); - - if ($SUMvicidial_trunks > $MAXvicidial_trunks) { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTRONCOS', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFICAR EL SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='Campaña: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } } else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) - { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; - echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; - echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; - } - else - { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; - - $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTRONCOS', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFICAR EL SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='Campaña: $campaign_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } + echo "Usted no tiene permiso de visión esta página\n"; + exit; } + $ADD=311111111111; # go to server modification form below } - else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; - } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10739,39 +12967,39 @@ $ADD=311111111111; # go to server modification form below ###################### '$template_id','$template_name','$template_contents' if ($ADD==431111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) - {echo "
CONF PLANTILLA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else { - echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + echo ""; - $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF PLANTILLA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFICAR CONF PLANTILLA', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFICAR CONF PLANTILLA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below } -$ADD=331111111111; # go to conf template modification form below -} ###################### @@ -10779,39 +13007,222 @@ $ADD=331111111111; # go to conf template modification form below ###################### if ($ADD==441111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) - {echo "
TRANSPORTISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} - else { - echo "
PORTEADOR MODIFICADOS: $carrier_id\n"; + echo ""; - $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active' where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
TRANSPORTISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFICAR PORTEADOR', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
PORTEADOR MODIFICADOS: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFICAR PORTEADOR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS ENTRADA SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS entrada modificada: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MÚSICA EN ESPERA DE ENTRADA SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MÚSICA EN ESPERA entrada modificada: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MÚSICA EN ESPERA DE ENTRADA SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MÚSICA EN ESPERA entrada modificada: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
Contestador SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Contestador MODIFICADOS: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below } -$ADD=341111111111; # go to carrier modification form below -} ###################### @@ -10819,36 +13230,36 @@ $ADD=341111111111; # go to carrier modification form below ###################### if ($ADD==4111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
CONFERENCIA - hay ya una conferencia en el sistema con esta extensión - servidor NO MODIFICADO\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
CONFERENCIA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n";} - else - { - echo "
CONFERENCIA MODIFICADA: $conf_exten\n"; + echo ""; - $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
CONFERENCIA - hay ya una conferencia en el sistema con esta extensión - servidor NO MODIFICADO\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCIA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
CONFERENCIA MODIFICADA: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below } -$ADD=3111111111111; # go to conference modification form below -} ###################### @@ -10856,38 +13267,37 @@ $ADD=3111111111111; # go to conference modification form below ###################### if ($ADD==41111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
VICIDIAL CONFERENCIA - hay ya una conferencia en el sistema con esta extensión - servidor NO MODIFICADO\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
VICIDIAL CONFERENCIA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL CONFERENCIA - hay ya una conferencia en el sistema con esta extensión - servidor NO MODIFICADO\n";} + else { - echo "
VICIDIAL CONFERENCIA MODIFICADA: $conf_exten\n"; + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCIA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
VICIDIAL CONFERENCIA MODIFICADA: $conf_exten\n"; - $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below } -$ADD=31111111111111; # go to vicidial conference modification form below -} - ###################### @@ -10902,7 +13312,7 @@ if ($ADD==411111111111111) echo "
AJUSTES DEL SISTEMA DE VICIDIAL MODIFICADOS\n"; - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second';"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -10971,7 +13381,7 @@ if ($ADD==421111111111111) { echo "
ESTADO DE SISTEMA MODIFICADO: $status\n"; - $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where status='$status';"; + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -11003,13 +13413,13 @@ if ($ADD==431111111111111) { echo ""; - if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) { echo "
CATEGORÍA DEL ESTADO NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; echo "
la categoría del estado no puede ser una categoría reservada:UNDEFINED\n"; echo "
la categoría del estado necesita ser por lo menos 2 caracteres enlongitud\n"; } - else + else { if (ereg('delete',$stage)) { @@ -11066,67 +13476,67 @@ if ($ADD==431111111111111) ###################### if ($ADD==441111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) - { - echo ""; - - if (ereg('delete',$stage)) { - if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + echo ""; + + if (ereg('delete',$stage)) { - echo "
CC Código del Estatuto no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; - echo "
la qc código de estado debe ser por lo menos 1 caracteres de longitud\n"; + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
CC Código del Estatuto no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
la qc código de estado debe ser por lo menos 1 caracteres de longitud\n"; + } + else + { + echo "
CC Código SUPRIMIDO:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - else + if (ereg('modify',$stage)) { - echo "
CC Código SUPRIMIDO:$code\n"; + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
CC ESTADO CÓDIGO NO MODIFICADA- Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la qc código de estado debe ser por lo menos 1 caracteres de longitud\n"; + echo "
el código de estado qc nombre debe ser por lo menos 1 caracteres de longitud\n"; + } + else + { + echo "
CC Código MODIFICADOS:$code\n"; - $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - if (ereg('modify',$stage)) - { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) - { - echo "
CC ESTADO CÓDIGO NO MODIFICADA- Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
la qc código de estado debe ser por lo menos 1 caracteres de longitud\n"; - echo "
el código de estado qc nombre debe ser por lo menos 1 caracteres de longitud\n"; - } - else - { - echo "
CC Código MODIFICADOS:$code\n"; - - $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below } -$ADD=341111111111111; # go to qc status code modification form below -} @@ -11143,336 +13553,358 @@ $ADD=341111111111111; # go to qc status code modification form below ###################### if ($ADD==5) -{ + { echo ""; - if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) { - echo "
USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Usuario be at least 2 characters in length\n"; + echo "
USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Usuario be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DEL USUARIO: $user\n"; echo "

Chasque aquí para suprimir a usuario $user


\n"; } -$ADD='3'; # go to user modification below -} + $ADD='3'; # go to user modification below + } ###################### # ADD=51 confirmation before deletion of campaign ###################### if ($ADD==51) -{ + { echo ""; - if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) { - echo "
CAMPAÑA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Campaña_id be at least 2 characters in length\n"; + echo "
CAMPAÑA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DE LA CAMPAÑA: $campaign_id\n"; echo "

Chasque aquí para suprimir campaña $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=52 confirmation before logging all agents out of campaign of campaign ###################### if ($ADD==52) -{ + { echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
AGENTES NO REGISTRADOS FUERA DE CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Campaña_id be at least 2 characters in length\n"; + echo "
AGENTES NO REGISTRADOS FUERA DE CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DEL REGISTRO DE ESTADO DE LA MÁQUINA DEL AGENTE: $campaign_id\n"; - echo "

Chasque aquí para registrar todos los agentes fuera de $campaign_id


\n"; + echo "

Chasque aquí para registrar todos los agentes fuera de $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record ###################### if ($ADD==53) -{ + { if (eregi('IN',$stage)) {$group_id=$campaign_id;} echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
VDAC NO DESPEJÓ PARA LA CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Campaña_id be at least 2 characters in length\n"; + echo "
VDAC NO DESPEJÓ PARA LA CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN CLARA DE VDAC: $campaign_id\n"; echo "

Chasque aquí para suprimir el más viejo VIVEN expediente en VDACpara $campaign_id


\n"; } -# go to campaign modification below -if (eregi('IN',$stage)) - {$ADD='3111';} -else - {$ADD='31';} -} + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } ###################### # ADD=511 confirmation before deletion of list ###################### if ($ADD==511) -{ + { echo ""; - if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) { - echo "
LISTA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
List_id be at least 2 characters in length\n"; + echo "
LISTA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
List_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DE LA LISTA: $list_id\n"; echo "

Chasque aquí para suprimir la lista y todos sus plomos $list_id


\n"; } -$ADD='311'; # go to campaign modification below -} + $ADD='311'; # go to campaign modification below + } ###################### # ADD=5111 confirmation before deletion of in-group ###################### if ($ADD==5111) -{ + { echo ""; - if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) { - echo "
EN-GRUPO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Group_id be at least 2 characters in length\n"; + echo "
EN-GRUPO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Group_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DE EN-GRUPO: $group_id\n"; echo "

Chasque aquí para suprimir a en-grupo $group_id


\n"; } -$ADD='3111'; # go to in-group modification below -} + $ADD='3111'; # go to in-group modification below + } ###################### # ADD=5311 confirmation before deletion of did ###################### if ($ADD==5311) -{ + { echo ""; - if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) { - echo "
DIDNOT SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
did_id be at least 1 characters in length\n"; + echo "
DIDNOT SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
did_id be at least 1 characters in length\n"; } - else + else { - echo "
DID SUPRESIÓN DE CONFIRMACIÓN: $group_id\n"; + echo "
DID SUPRESIÓN DE CONFIRMACIÓN: $menu_id\n"; echo "

Haga clic aquí para eliminarDID $did_id


\n"; } -$ADD='3311'; # go to did modification below -} + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CONVOCATORIA menú de eliminación CONFIRMACIÓN: $menu_id\n"; + echo "

Haga clic aquí para eliminar CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } ###################### # ADD=51111 confirmation before deletion of remote agent record ###################### if ($ADD==51111) -{ + { echo ""; - if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) { - echo "
AGENTE ALEJADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Remote_agent_id be at least 2 characters in length\n"; + echo "
AGENTE ALEJADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN ALEJADA DE LA CANCELADURA DEL AGENTE: $remote_agent_id\n"; echo "

Chasque aquí para suprimir el agente alejado $remote_agent_id


\n"; } -$ADD='31111'; # go to remote agent modification below -} + $ADD='31111'; # go to remote agent modification below + } ###################### # ADD=511111 confirmation before deletion of user group record ###################### if ($ADD==511111) -{ + { echo ""; - if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) { - echo "
GRUPO DE USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Usuario_group be at least 2 characters in length\n"; + echo "
GRUPO DE USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Usuario_group be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DEL GRUPO DE USUARIO: $user_group\n"; echo "

Chasque aquí para suprimir a grupo de usuario $user_group


\n"; } -$ADD='311111'; # go to user group modification below -} + $ADD='311111'; # go to user group modification below + } ###################### # ADD=5111111 confirmation before deletion of script record ###################### if ($ADD==5111111) -{ + { echo ""; - if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) { - echo "
ESCRITURA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Script_id must be at least 2 characters in length\n"; + echo "
ESCRITURA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Script_id must be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DE LA ESCRITURA: $script_id\n"; echo "

Chasque aquí para suprimir la escritura $script_id


\n"; } -$ADD='3111111'; # go to script modification below -} + $ADD='3111111'; # go to script modification below + } ###################### # ADD=51111111 confirmation before deletion of filter record ###################### if ($ADD==51111111) -{ + { echo ""; - if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) { - echo "
FILTRO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
La identificación del filtro debe ser por lo menos 2 caracteres en longitud\n"; + echo "
FILTRO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación del filtro debe ser por lo menos 2 caracteres en longitud\n"; } - else + else { echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; echo "

Chasque aquí para suprimir el filtro$lead_filter_id


\n"; } -$ADD='31111111'; # go to filter modification below -} + $ADD='31111111'; # go to filter modification below + } ###################### # ADD=511111111 confirmation before deletion of call time record ###################### if ($ADD==511111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; + echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA: $call_time_id\n"; echo "

Haga clic aquí para eliminarcall time $call_time_id


\n"; } -$ADD='311111111'; # go to call time modification below -} + $ADD='311111111'; # go to call time modification below + } ###################### # ADD=5111111111 confirmation before deletion of state call time record ###################### if ($ADD==5111111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO: $call_time_id\n"; echo "

Haga clic aquí para eliminarstate call time $call_time_id


\n"; } -$ADD='3111111111'; # go to state call time modification below -} + $ADD='3111111111'; # go to state call time modification below + } ###################### # ADD=531111111 confirmation before deletion of shift record ###################### if ($ADD==531111111) -{ + { echo ""; - if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
SHIFT no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Shift ID must be at least 2 characters in length\n"; + echo "
SHIFT no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Shift ID must be at least 2 characters in length\n"; } - else + else { echo "
MAYÚS SUPRESIÓN DE CONFIRMACIÓN:$shift_id\n"; echo "

Haga clic aquí para suprimir el cambio $shift_id


\n"; } -$ADD='331111111'; # go to call time modification below -} + $ADD='331111111'; # go to call time modification below + } ###################### # ADD=51111111111 confirmation before deletion of phone record ###################### if ($ADD==51111111111) -{ + { echo ""; - if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
TELÉFONO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Extension be at least 2 characters in length\n"; - echo "
IP Del Servidor be at least 7 characters in length\n"; + echo "
TELÉFONO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; } - else + else { echo "
CONFIRMACIÓN DE LA CANCELADURA DEL TELÉFONO: $extension - $server_ip\n"; echo "

Chasque aquí para suprimir el teléfono $extension - $server_ip


\n"; } -$ADD='31111111111'; # go to phone modification below -} + $ADD='31111111111'; # go to phone modification below + } ###################### @@ -11480,21 +13912,21 @@ $ADD='31111111111'; # go to phone modification below ###################### if ($ADD==52111111111) -{ + { echo ""; - if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
TELÉFONO ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Alias ID must be at least 2 characters in length\n"; + echo "
TELÉFONO ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Alias ID must be at least 2 characters in length\n"; } - else + else { echo "
TELÉFONO ALIAS SUPRESIÓN DE CONFIRMACIÓN: $alias_id\n"; echo "

Haga clic aquí para eliminar alias teléfono $alias_id


\n"; } -$ADD='32111111111'; # go to phone alias modification below -} + $ADD='32111111111'; # go to phone alias modification below + } ###################### @@ -11502,21 +13934,21 @@ $ADD='32111111111'; # go to phone alias modification below ###################### if ($ADD==53111111111) -{ + { echo ""; - if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
GRUPO DE ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Alias ID Grupo must be at least 2 characters in length\n"; + echo "
GRUPO DE ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Alias ID Grupo must be at least 2 characters in length\n"; } - else + else { echo "
ALIAS GRUPO DE SUPRESIÓN DE CONFIRMACIÓN: $group_alias_id\n"; echo "

Haga clic aquí para suprimir el grupo de alias $group_alias_id


\n"; } -$ADD='33111111111'; # go to group alias modification below -} + $ADD='33111111111'; # go to group alias modification below + } ###################### @@ -11524,22 +13956,22 @@ $ADD='33111111111'; # go to group alias modification below ###################### if ($ADD==511111111111) -{ + { echo ""; - if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
SERVIDOR NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
ID Del Servidor be at least 2 characters in length\n"; - echo "
IP Del Servidor be at least 7 characters in length\n"; + echo "
SERVIDOR NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
ID Del Servidor be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; } - else + else { echo "
SERVIDOR DELETION CONFIRMATION: $server_id - $server_ip\n"; echo "

Chasque aquí para suprimir el teléfono $server_id - $server_ip


\n"; } -$ADD='311111111111'; # go to server modification below -} + $ADD='311111111111'; # go to server modification below + } ###################### @@ -11547,21 +13979,21 @@ $ADD='311111111111'; # go to server modification below ###################### if ($ADD==531111111111) -{ + { echo ""; - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) { - echo "
CONF PLANTILLA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Plantilla de Identificación ser al menos de 2 caracteres de longitud\n"; + echo "
CONF PLANTILLA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Plantilla de Identificación ser al menos de 2 caracteres de longitud\n"; } - else + else { echo "
CONF PLANTILLA SUPRESIÓN DE CONFIRMACIÓN: $template_id - $template_name\n"; echo "

Haga clic aquí para eliminar conf plantilla $template_id - $template_name


\n"; } -$ADD='331111111111'; # go to conf template modification below -} + $ADD='331111111111'; # go to conf template modification below + } ###################### @@ -11569,21 +14001,87 @@ $ADD='331111111111'; # go to conf template modification below ###################### if ($ADD==541111111111) -{ + { echo ""; - if (strlen($carrier_id) < 2) + if (strlen($carrier_id) < 2) { - echo "
TRANSPORTISTA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Portador de Identificación ser al menos de 2 caracteres de longitud\n"; + echo "
TRANSPORTISTA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Portador de Identificación ser al menos de 2 caracteres de longitud\n"; } - else + else { echo "
PORTEADOR SUPRESIÓN DE CONFIRMACIÓN: $carrier_id - $carrier_name\n"; echo "

Haga clic aquí para suprimir el transportista $carrier_id - $carrier_name


\n"; } -$ADD='341111111111'; # go to carrier modification below -} + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS entrada no DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS DE ENTRADA SUPRESIÓN DE CONFIRMACIÓN: $tts_id - $tts_name\n"; + echo "

Haga clic aquí para eliminar TTS entrada $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
MÚSICA EN ESPERA DE ENTRADA no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
MÚSICA EN ESPERA DE ENTRADA SUPRESIÓN DE CONFIRMACIÓN: $moh_id - $moh_name\n"; + echo "

Haga clic aquí para borrar música en espera de entrada $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
Contestador no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
ID de correo de voz be at least 2 characters in length\n"; + } + else + { + echo "
Contestador SUPRESIÓN DE CONFIRMACIÓN: $voicemail_id - $fullname\n"; + echo "

Haga clic aquí para eliminar buzón de voz $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } ###################### @@ -11591,22 +14089,22 @@ $ADD='341111111111'; # go to carrier modification below ###################### if ($ADD==5111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP Del Servidor be at least 7 characters in length\n"; + echo "
CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; } - else + else { echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Chasque aquí para suprimir el teléfono $conf_exten - $server_ip


\n"; } -$ADD='3111111111111'; # go to conference modification below -} + $ADD='3111111111111'; # go to conference modification below + } ###################### @@ -11614,22 +14112,22 @@ $ADD='3111111111111'; # go to conference modification below ###################### if ($ADD==51111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
VICIDIAL CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP Del Servidor be at least 7 characters in length\n"; + echo "
VICIDIAL CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; } - else + else { echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Chasque aquí para suprimir el teléfono $conf_exten - $server_ip


\n"; } -$ADD='31111111111111'; # go to vicidial conference modification below -} + $ADD='31111111111111'; # go to vicidial conference modification below + } @@ -11650,8 +14148,8 @@ if ($ADD==6) if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) { - echo "
USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Usuario be at least 2 characters in length\n"; + echo "
USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Usuario be at least 2 characters in length\n"; } else { @@ -11689,8 +14187,8 @@ if ($ADD==61) if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) { - echo "
CAMPAÑA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; - echo "
Campaña_id be at least 2 characters in length\n"; + echo "
CAMPAÑA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; } else { @@ -11749,6 +14247,7 @@ if ($ADD==61) $ADD='10'; # go to campaigns list } + ###################### # ADD=62 Logout all agents from a campaign ###################### @@ -11766,8 +14265,174 @@ if ($ADD==62) } else { - $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -11833,7 +14498,7 @@ if ($ADD==63) if (eregi('IN',$stage)) {$ADD='3111';} else - {$ADD='31';} + {$ADD='31';} } @@ -11896,12 +14561,12 @@ if ($ADD==66) {echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - este estado del dial del alt del automóvil no está en esta campaña\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
ESTADO AUTO DEL DIAL DEL ALT SUPRIMIDO: $campaign_id - $status\n"; @@ -11932,6 +14597,7 @@ if ($ADD==66) $ADD=31; # go to campaign modification form below } + ###################### # ADD=67 delete agent pause code in the system ###################### @@ -11942,12 +14608,12 @@ if ($ADD==67) { echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) { echo "
CÓDIGO DE LA PAUSA DE LA CAMPAÑA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; echo "
pause code must be between 1 and 6 characters in length\n"; } - else + else { echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; @@ -11989,12 +14655,12 @@ if ($ADD==68) {echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO QUITADO - este estado del dial no se selecciona para esta campaña\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO QUITADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
EL ESTADO DEL DIAL DE LA CAMPAÑA QUITÓ: $campaign_id - $status\n"; @@ -12108,6 +14774,7 @@ if ($ADD==6111) $ADD='1000'; # go to in-group list } + ###################### # ADD=6311 delete did record ###################### @@ -12141,6 +14808,42 @@ if ($ADD==6311) $ADD='1300'; # go to did list } +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONVOCATORIA menú de eliminación COMPLETA: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + ###################### # ADD=61111 delete remote agent record ###################### @@ -12662,6 +15365,116 @@ if ($ADD==641111111111) } +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS entrada no DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
MÚSICA EN ESPERA DE ENTRADA no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MÚSICA EN ESPERA SUPRESIÓN COMPLETA: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Contestador no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
ID de correo de voz be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Contestador SUPRESIÓN COMPLETA: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + ###################### # ADD=6111111111111 delete conference record ###################### @@ -12747,246 +15560,293 @@ if ($ADD==61111111111111) ###################### if ($ADD==3) -{ - if ($LOGmodify_users==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_level = $row[4]; - $user_group = $row[5]; - $phone_login = $row[6]; - $phone_pass = $row[7]; - $delete_users = $row[8]; - $delete_user_groups = $row[9]; - $delete_lists = $row[10]; - $delete_campaigns = $row[11]; - $delete_ingroups = $row[12]; - $delete_remote_agents = $row[13]; - $load_leads = $row[14]; - $campaign_detail = $row[15]; - $ast_admin_access = $row[16]; - $ast_delete_phones = $row[17]; - $delete_scripts = $row[18]; - $modify_leads = $row[19]; - $hotkeys_active = $row[20]; - $change_agent_campaign =$row[21]; - $agent_choose_ingroups =$row[22]; - $scheduled_callbacks = $row[24]; - $agentonly_callbacks = $row[25]; - $agentcall_manual = $row[26]; - $vicidial_recording = $row[27]; - $vicidial_transfers = $row[28]; - $delete_filters = $row[29]; - $alter_agent_interface_options =$row[30]; - $closer_default_blended = $row[31]; - $delete_call_times = $row[32]; - $modify_call_times = $row[33]; - $modify_users = $row[34]; - $modify_campaigns = $row[35]; - $modify_lists = $row[36]; - $modify_scripts = $row[37]; - $modify_filters = $row[38]; - $modify_ingroups = $row[39]; - $modify_usergroups = $row[40]; - $modify_remoteagents = $row[41]; - $modify_servers = $row[42]; - $view_reports = $row[43]; - $vicidial_recording_override = $row[44]; - $alter_custdata_override = $row[45]; - $qc_enabled = $row[46]; - $qc_user_level = $row[47]; - $qc_pass = $row[48]; - $qc_finish = $row[49]; - $qc_commit = $row[50]; - $add_timeclock_log = $row[51]; - $modify_timeclock_log = $row[52]; - $delete_timeclock_log = $row[53]; - $alter_custphone_override = $row[54]; - $vdc_agent_api_access = $row[55]; - $modify_inbound_dids = $row[56]; - $delete_inbound_dids = $row[57]; - $active = $row[58]; - $alert_enabled = $row[59]; - $download_lists = $row[60]; - $agent_shift_enforcement_override = $row[61]; - $manager_shift_enforcement_override = $row[62]; - $export_reports = $row[64]; - - if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + if ($LOGmodify_users==1) { - echo "
Usted no tiene permisos de modificar a este usuario: $row[1]\n"; - } - else - { - echo "
MODIFIQUE Un EXPEDIENTE De los USUARIOS: $row[1]\n"; - if ($LOGuser_level > 8) - {echo "\n";} + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -13371,7 +16271,7 @@ if ($ADD==31) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; @@ -13453,8 +16517,8 @@ if ($ADD==31) { $nabs = abs($n); $dtl = 'Balanced'; - if ($n<0) {$dtl = 'Agents Waiting for Calls';} - if ($n>0) {$dtl = 'Calls Waiting for Agents';} + if ($n<0) {$dtl = 'Agentes Waiting for Calls';} + if ($n>0) {$dtl = 'Calls Waiting for Agentes';} if ($n == $adaptive_dl_diff_target) {echo "\n";} else @@ -13463,7 +16527,7 @@ if ($ADD==31) } echo " $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE\n"; - echo "\n"; + echo "\n"; echo "\n"; + + + echo "\n"; + + + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; } echo "\n"; @@ -13515,17 +16628,34 @@ if ($ADD==31) echo "\n"; + echo "$NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; } echo "\n"; @@ -13535,6 +16665,22 @@ if ($ADD==31) echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($SSoutbound_autodial_active > 0) { echo "\n"; @@ -13543,42 +16689,69 @@ if ($ADD==31) if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; } - echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; echo "\n"; @@ -13586,9 +16759,9 @@ if ($ADD==31) { echo "\n"; } - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -13622,13 +16795,17 @@ if ($ADD==31) if ($SSenable_vtiger_integration > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; } else { @@ -13636,8 +16813,18 @@ if ($ADD==31) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($campaign_allow_inbound == 'Y') { echo "\n"; echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Usted no tiene permisos de modificar a este usuario: $user\n"; + } else { - if ($LOGalter_agent_interface == "1") - {echo "\n";} + echo "
MODIFIQUE Un EXPEDIENTE De los USUARIOS: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} else - {echo "\n";} - } - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - if ($LOGdelete_users > 0) - { - echo "

SUPRIMA A ESTE USUARIO\n"; - } - echo "

Chasque aquí para la hoja de tiempo del usuario\n"; - echo "

Chasque aquí para el estado del usuario\n"; - echo "

Clique aquí para ver las estadísticas del usuario\n"; - echo "

Haga clic aquí para varios días de estado de usuario detalle informe\n"; - echo "

Chasque aquí para los asimientos del servicio repetido del usuario\n"; - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a la presente acta\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
NÚmero De Usuario: $row[1]$NWB#vicidial_users-user$NWE
Contraseña: $NWB#vicidial_users-pass$NWE
Nombre Completo: $NWB#vicidial_users-full_name$NWE
Nivel Del Usuario: $NWB#vicidial_users-user_level$NWE
Grupo Del Usuario: \n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "\n"; } - echo "\n"; - echo "\n"; - echo "\n"; + echo "$Ugroups_list"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - if ($SSqc_features_active > 0) + if ($SSuser_territories_active > 0) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; } - } - if ($LOGuser_level > 8) - { - echo "\n"; -#9BB9FB -#B9CBFD - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - if ($SSoutbound_autodial_active > 0) + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) { - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if ($LOGuser_level > 8) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + #9BB9FB + #B9CBFD + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - } - echo "\n"; - echo "
NÚmero De Usuario: $user$NWB#vicidial_users-user$NWE
Contraseña: $NWB#vicidial_users-pass$NWE
Nombre Completo: $NWB#vicidial_users-full_name$NWE
Nivel Del Usuario: $NWB#vicidial_users-user_level$NWE
Grupo Del Usuario: $NWB#vicidial_users-user_group$NWE
Conexión Del Teléfono: $NWB#vicidial_users-phone_login$NWE
Contraseña Del Teléfono: $NWB#vicidial_users-phone_pass$NWE
Activo: $NWB#vicidial_users-active$NWE
OPCIONES DE INTERFAZ DEL AGENTE:
El Agente Elige Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Hot Keys Activo: $NWB#vicidial_users-hotkeys_active$NWE
Servicios repetidos Programar: $NWB#vicidial_users-scheduled_callbacks$NWE
Servicios repetidos Del Agente-Solamente: $NWB#vicidial_users-agentonly_callbacks$NWE
Manual de la llamada del agente: $NWB#vicidial_users-agentcall_manual$NWE
Grabación de Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Vicidial transfiere: $NWB#vicidial_users-vicidial_transfers$NWE
Un Defecto Más cercano Mezclado: $NWB#vicidial_users-closer_default_blended$NWE
Invalidación De la Grabación de VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
El Agente Altera La Invalidación De los Datos Del Cliente: $NWB#vicidial_users-alter_custdata_override$NWE
Modificar Agente Cliente Sobreescribe Teléfono:$NWB#vicidial_users-alter_custphone_override$NWE
Conexión Del Teléfono: $NWB#vicidial_users-phone_login$NWE
Contraseña Del Teléfono: $NWB#vicidial_users-phone_pass$NWE
Activo: $NWB#vicidial_users-active$NWE
Correo electrónico:$NWB#vicidial_users-optional$NWE
Usuario Code: $NWB#vicidial_users-optional$NWE
Main Territorio: $NWB#vicidial_users-optional$NWE
Agente de Cambio observancia Sobrescribir: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alerta Activado: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Filas De la Campaña:$NWB#vicidial_users-campaign_ranks$NWE
\n"; - echo "\n"; - echo "$RANKcampaigns_list"; - echo "
\n"; - echo "
Grupos De entrada: $NWB#vicidial_users-closer_campaigns$NWE
\n"; - echo "\n"; - echo "$RANKgroups_list"; - echo "
\n"; - echo "
CC Activado:$NWB#vicidial_users-qc_enabled$NWE
CC Nivel de Usuario:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
CC Acabado:$NWB#vicidial_users-qc_finish$NWE
CC Compro:$NWB#vicidial_users-qc_commit$NWE
Territorios de usuario: $Uterrs_list
OPCIONES DE INTERFAZ DEL ADMIN:
Informes De la Visión: $NWB#vicidial_users-view_reports$NWE
Altere Las Opciones De Interfaz Del Agente: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifique A Usuarios: $NWB#vicidial_users-modify_sections$NWE
Cambie La Campaña Del Agente: $NWB#vicidial_users-change_agent_campaign$NWE
Usuarios de la cancelación: $NWB#vicidial_users-delete_users$NWE
Modifique A Grupos De Usuario: $NWB#vicidial_users-modify_sections$NWE
Suprima a grupos de usuario: $NWB#vicidial_users-delete_user_groups$NWE
Modifique Las Listas: $NWB#vicidial_users-modify_sections$NWE
La cancelación enumera: $NWB#vicidial_users-delete_lists$NWE
La carga conduce: $NWB#vicidial_users-load_leads$NWE
Modifique Los Plomos: $NWB#vicidial_users-modify_leads$NWE
Descargar Listas: $NWB#vicidial_users-modify_leads$NWE
Informes de exportación: $NWB#vicidial_users-export_reports$NWE
Modifique Las Campañas: $NWB#vicidial_users-modify_sections$NWE
Detalle de la campaña: $NWB#vicidial_users-campaign_detail$NWE
La cancelación hace campaña: $NWB#vicidial_users-delete_campaigns$NWE
Modifique A En-Grupos: $NWB#vicidial_users-modify_sections$NWE
En-Grupos de la cancelación: $NWB#vicidial_users-delete_ingroups$NWE
Modificar DIDs:$NWB#vicidial_users-modify_sections$NWE
Eliminar DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifique Los Agentes Alejados: $NWB#vicidial_users-modify_sections$NWE
Suprima los agentes alejados: $NWB#vicidial_users-delete_remote_agents$NWE
Modifique Las Escrituras: $NWB#vicidial_users-modify_sections$NWE
Escritura De la Cancelacións: $NWB#vicidial_users-delete_scripts$NWE
Modifique Los Filtros: $NWB#vicidial_users-modify_sections$NWE
Filtro De la Cancelacións: $NWB#vicidial_users-delete_filters$NWE
OPCIONES DE INTERFAZ DEL AGENTE:
El Agente Elige Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agente Elija territorios: $NWB#vicidial_users-agent_choose_territories$NWE
Hot Keys Activo: $NWB#vicidial_users-hotkeys_active$NWE
Servicios repetidos Programar: $NWB#vicidial_users-scheduled_callbacks$NWE
Servicios repetidos Del Agente-Solamente: $NWB#vicidial_users-agentonly_callbacks$NWE
Manual de la llamada del agente: $NWB#vicidial_users-agentcall_manual$NWE
Grabación de Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Vicidial transfiere: $NWB#vicidial_users-vicidial_transfers$NWE
Un Defecto Más cercano Mezclado: $NWB#vicidial_users-closer_default_blended$NWE
Invalidación De la Grabación de VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
El Agente Altera La Invalidación De los Datos Del Cliente: $NWB#vicidial_users-alter_custdata_override$NWE
Modificar Agente Cliente Sobreescribe Teléfono:$NWB#vicidial_users-alter_custphone_override$NWE
Agente de Cambio observancia Sobrescribir: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alerta Activado: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Permitir Alertas: $NWB#vicidial_users-allow_alerts$NWE
Filas De la Campaña:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Grupos De entrada: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
CC Activado:$NWB#vicidial_users-qc_enabled$NWE
CC Nivel de Usuario:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
CC Acabado:$NWB#vicidial_users-qc_finish$NWE
CC Compro:$NWB#vicidial_users-qc_commit$NWE
Acceso de AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
La cancelación de AGC telefona: $NWB#vicidial_users-ast_delete_phones$NWE
Modifique El Tiempo De la Llamadas: $NWB#vicidial_users-modify_call_times$NWE
BorrarTiempos De la Llamada: $NWB#vicidial_users-delete_call_times$NWE
Modifique Los Servidores: $NWB#vicidial_users-modify_sections$NWE
Agente de acceso a la API:$NWB#vicidial_users-vdc_agent_api_access$NWE
OPCIONES DE INTERFAZ DEL ADMIN:
AñadirReloj de tiempo Registrarse Registro: $NWB#vicidial_users-add_timeclock_log$NWE
ModificarReloj de tiempo Registrarse Registro: $NWB#vicidial_users-modify_timeclock_log$NWE
EliminarReloj de tiempo Registrarse Registro: $NWB#vicidial_users-delete_timeclock_log$NWE
Informes De la Visión: $NWB#vicidial_users-view_reports$NWE
Gerente de Turno observancia Sobrescribir: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
Altere Las Opciones De Interfaz Del Agente: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifique A Usuarios: $NWB#vicidial_users-modify_sections$NWE
Cambie La Campaña Del Agente: $NWB#vicidial_users-change_agent_campaign$NWE
Usuarios de la cancelación: $NWB#vicidial_users-delete_users$NWE
\n"; + echo "
Modifique A Grupos De Usuario: $NWB#vicidial_users-modify_sections$NWE
Suprima a grupos de usuario: $NWB#vicidial_users-delete_user_groups$NWE
Modifique Las Listas: $NWB#vicidial_users-modify_sections$NWE
La cancelación enumera: $NWB#vicidial_users-delete_lists$NWE
La carga conduce: $NWB#vicidial_users-load_leads$NWE
Modifique Los Plomos: $NWB#vicidial_users-modify_leads$NWE
Descargar Listas: $NWB#vicidial_users-modify_leads$NWE
Informes de exportación: $NWB#vicidial_users-export_reports$NWE
Eliminar de las listas de DNC: $NWB#vicidial_users-delete_from_dnc$NWE
Modifique Las Campañas: $NWB#vicidial_users-modify_sections$NWE
Detalle de la campaña: $NWB#vicidial_users-campaign_detail$NWE
La cancelación hace campaña: $NWB#vicidial_users-delete_campaigns$NWE
Modifique A En-Grupos: $NWB#vicidial_users-modify_sections$NWE
En-Grupos de la cancelación: $NWB#vicidial_users-delete_ingroups$NWE
Modificar DIDs:$NWB#vicidial_users-modify_sections$NWE
Eliminar DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifique Los Agentes Alejados: $NWB#vicidial_users-modify_sections$NWE
Suprima los agentes alejados: $NWB#vicidial_users-delete_remote_agents$NWE
Modifique Las Escrituras: $NWB#vicidial_users-modify_sections$NWE
Escritura De la Cancelacións: $NWB#vicidial_users-delete_scripts$NWE
Modifique Los Filtros: $NWB#vicidial_users-modify_sections$NWE
Filtro De la Cancelacións: $NWB#vicidial_users-delete_filters$NWE
Acceso de AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
La cancelación de AGC telefona: $NWB#vicidial_users-ast_delete_phones$NWE
Modifique El Tiempo De la Llamadas: $NWB#vicidial_users-modify_call_times$NWE
BorrarTiempos De la Llamada: $NWB#vicidial_users-delete_call_times$NWE
Modifique Los Servidores: $NWB#vicidial_users-modify_sections$NWE
Agente de acceso a la API:$NWB#vicidial_users-vdc_agent_api_access$NWE
AñadirReloj de tiempo Registrarse Registro: $NWB#vicidial_users-add_timeclock_log$NWE
ModificarReloj de tiempo Registrarse Registro: $NWB#vicidial_users-modify_timeclock_log$NWE
EliminarReloj de tiempo Registrarse Registro: $NWB#vicidial_users-delete_timeclock_log$NWE
Gerente de Turno observancia Sobrescribir: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

SUPRIMA A ESTE USUARIO\n"; + } + echo "

Chasque aquí para la hoja de tiempo del usuario\n"; + echo "

Chasque aquí para el estado del usuario\n"; + echo "

Clique aquí para ver las estadísticas del usuario\n"; + echo "

Haga clic aquí para varios días de estado de usuario detalle informe\n"; + echo "

Chasque aquí para los asimientos del servicio repetido del usuario\n"; + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a la presente acta
\n"; + } } } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -12999,19 +15859,19 @@ if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==31) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; $rslt=mysql_query($stmt, $link); @@ -13019,7 +15879,7 @@ if ($ADD==31) $enable_vtiger_integration_LU = $row[0]; $vtiger_url_LU = $row[1]; - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $campaign_name = $row[1]; @@ -13124,6 +15984,42 @@ if ($ADD==31) $cpd_amd_action = $row[103]; $agent_allow_group_alias = $row[104]; $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -13169,14 +16065,13 @@ if ($ADD==31) $QCL_to_print = (count($QClists) -0); ##### get status listings for dynamic pulldown - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; $dial_statuses_list=''; $qc_statuses_list=''; $survey_ni_status_list=''; - $o=0; while ($statuses_to_print > $o) { @@ -13214,7 +16109,7 @@ if ($ADD==31) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -13355,9 +16250,14 @@ if ($ADD==31) echo "
Descripción De la Campaña: $NWB#vicidial_campaigns-campaign_description$NWE
Campaña Fecha de cambio: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campaña Fecha de inicio de sesión: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Campaña Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Extensión del parking: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Formulario Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulario Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulario Web Two: $NWB#vicidial_campaigns-web_form_address$NWE
Formulario web de destino: $NWB#vicidial_campaigns-web_form_target$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Estado Del Dial $o: \n"; + echo "
Estado Del Dial $o: \n"; if ($DEFstatusDISABLED > 0) { @@ -13385,14 +16285,118 @@ if ($ADD==31) } } - echo "
Add A Dial Estado:
Add A Dial Estado:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Orden De la Lista: $NWB#vicidial_campaigns-lead_order$NWE
Orden De la Lista: $NWB#vicidial_campaigns-lead_order$NWE
Mezcla lista: $NWB#vicidial_campaigns-lead_filter_id$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Tiempo de caída de bloqueo: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Forzar el Reinicio del Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Método Del Dial: $NWB#vicidial_campaigns-dial_method$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPTE LA INVALIDACIÓN
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPTE LA INVALIDACIÓN
Solamente Cuenta Disponible: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Límite Del Porcentaje De la Gota: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Transferencias Concurrentes: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Transferencias Concurrentes: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Cola de prioridad: $NWB#vicidial_campaigns-queue_priority$NWE
Varias campañas Drop Rate Grupo: $NWB#vicidial_campaigns-drop_rate_group$NWE
El Marcar Auto Del Alt-Nu'mero: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Llamar al Siguiente Agente: $NWB#vicidial_campaigns-next_agent_call$NWE
Llamar al Siguiente Agente: $NWB#vicidial_campaigns-next_agent_call$NWE
Franja horaria de llamada:
Tiempo de espera Del Dial: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Tiempo de espera Del Dial: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Prefijo al marcar: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Omita El Código Del Teléfono: $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID de la Campaña: $NWB#vicidial_campaigns-campaign_cid$NWE
CallerID de la Campaña: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Exten VDAD de La campaña: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Exten VDAD de La campaña: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Extensión de Rec de la campaña: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_campaigns-get_call_launch$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_campaigns-get_call_launch$NWE
Mensaje del contestador automático: $NWB#vicidial_campaigns-am_message_exten$NWE
Mensaje del contestador automático: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Opciones WaitForSilence: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD envían a la VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
AMD envían a la VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Acción: $NWB#vicidial_campaigns-cpd_amd_action$NWE
CPD AMD Acción: $NWB#vicidial_campaigns-cpd_amd_action$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Rápida transferencia Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Transferencia de rellenar previamente Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Temporizador de Acción de: $NWB#vicidial_campaigns-timer_action$NWE
Temporizador de mensaje de acción: $NWB#vicidial_campaigns-timer_action_message$NWE
Temporizador Segundos Acción: $NWB#vicidial_campaigns-timer_action_seconds$NWE
El Marcar Del Número Del Alt: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Segundos De la Llamada De la Gota: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Segundos De la Llamada De la Gota: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Caída de Acción:$NWB#vicidial_campaigns-drop_action$NWE
Caída de Acción:$NWB#vicidial_campaigns-drop_action$NWE
Puerto Seguro Exten: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Puerto Seguro Exten: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Buzón de Voz: $NWB#vicidial_campaigns-voicemail_ext$NWE
Buzón de Voz: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Grupo de Transferencia de caída:
Grupo de Transferencia de caída:$NWB#vicidial_campaigns-drop_inbound_group$NWE
Segundos De Wrap Up: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Mensaje De Wrap Up: $NWB#vicidial_campaigns-wrapup_message$NWE
Utilice La Lista Interna de DNC: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Utilice La Lista Interna de DNC: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Campaña de uso Lista DNC: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
Campaña de uso Lista DNC: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentCódigos De la PausaActivo: $NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Campaña Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Inhabilite Alteran Datos Del Cliente:$NWB#vicidial_campaigns-disable_alter_custdata$NWE
Deshabilitar Modificar Cliente Teléfono:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Inhabilite Alteran Datos Del Cliente:$NWB#vicidial_campaigns-disable_alter_custdata$NWE
Deshabilitar Modificar Cliente Teléfono:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Permita Ninguno-Tolva-Conduce Conexiones: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
N marcado Hopper: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Único propietario de marcado: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agente Seleccione territorios: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agente de pantalla Dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agente Mostrar cola Cuenta:$NWB#vicidial_campaigns-display_queue_count$NWE
Identificación Manual De la Lista Del Dial:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Agente Mostrar cola Cuenta:$NWB#vicidial_campaigns-display_queue_count$NWE
Manual de Acceso telefónico Filtro:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agente Pide Ver en cola: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Ver las llamadas en cola de lanzamiento: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agente Pide Agarre en cola: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Agente de Call Re-Cola Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agente de pausa después de cada llamada: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Identificación Manual De la Lista Del Dial:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manual de Acceso telefónico Filtro:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agente de pantalla Portapapeles Copiar: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agente de pantalla ampliada Alt telefónico: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Vías de salida de llamadas CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Vías de salida de llamadas CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Vías de llamadas Prefijo telefónico: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
3-Vías de llamadas Prefijo telefónico: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Grupo Alias permitidas: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Vtiger Búsqueda Categoría: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Búsqueda Categoría: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Crear Vtiger Registro de llamadas: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Buscar Dead Cuentas: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Crear Vtiger plomo Record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Crear Vtiger Registro de llamadas: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger pantalla inicio de sesión: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
Crear Vtiger plomo Record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Estado de llamada: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger pantalla inicio de sesión: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Dirección Popup: $NWB#vicidial_campaigns-crm_login_address$NWE
Iniciar llamada URL: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Grupos De entrada Permitidos:
"; @@ -13661,37 +16848,37 @@ if ($ADD==31) echo "
\n"; - echo "
\n"; + echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "
LISTAS DENTRO DE ESTA CAMPAÑA:   $NWB#vicidial_campaign_lists$NWE\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTAS DENTRO DE ESTA CAMPAÑA:   $NWB#vicidial_campaign_lists$NWE\n"; - echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14411,7 +17626,7 @@ if ($ADD==34) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; - - echo "
\n"; - echo ""; + echo "\n"; echo "
\n"; + echo ""; - $LISTlink='stage=LISTIDDOWN'; - $TALLYlink='stage=TALLYDOWN'; - $ACTIVElink='stage=ACTIVEDOWN'; - $CAMPAIGNlink='stage=CAMPAIGNDOWN'; - $CALLDATElink='stage=CALLDATEDOWN'; - $SQLorder='order by list_id'; - if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} - if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} - if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} - if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} - if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} - if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} - if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} - if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} - if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} - if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -13744,47 +16931,48 @@ if ($ADD==31) echo "

\n"; - echo "
\n"; + echo "
\n"; - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} - else - {$fSQL = '';} + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Esta campaña tiene $active_lists listas activas y $inactive_lists listas inactivas

\n"; + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Esta campaña tiene $active_lists listas activas y $inactive_lists listas inactivas

\n"; - if ($display_dialable_count == 'Y') - { - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - echo " - PIEL

"; + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - PIEL

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - DEMOSTRACIÓN

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Esta campaña tiene $hopper_leads Leads en el Hopper

\n"; + echo "Chasque aquí para ver qué plomos están en la tolva ahora

\n"; + echo "Haga clic aquí para ver un informe VDAD para esta campaña

\n"; } - else + echo "Chasque aquí para ver todos los asimientos del servicio repetido en esta campaña

\n"; + if ($LOGuser_level >= 9) { - echo "Popup Dialable Leads Count"; - echo " - DEMOSTRACIÓN

"; + echo "

Haga clic aquí para ver Admin chages a esta campaña
\n"; } - - $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $hopper_leads = "$rowx[0]"; - - echo "Esta campaña tiene $hopper_leads Leads en el Hopper

\n"; - echo "Chasque aquí para ver qué plomos están en la tolva ahora

\n"; - echo "Haga clic aquí para ver un informe VDAD para esta campaña

\n"; + echo "
\n"; } - echo "Chasque aquí para ver todos los asimientos del servicio repetido en esta campaña

\n"; - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a esta campaña\n"; - } - echo "
\n"; - } ##### CAMPAIGN CUSTOM STATUSES ##### @@ -13810,9 +16998,9 @@ if ($ADD==31) echo "
\n"; echo "
ESTADOS DE ENCARGO DENTRO DE ESTA CAMPAÚA:   $NWB#vicidial_campaign_statuses$NWE
\n"; echo "\n"; - echo "\n"; + echo "\n"; - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -13845,6 +17033,14 @@ if ($ADD==31) echo "\n"; } @@ -13855,8 +17051,13 @@ if ($ADD==31) echo "\n"; echo "Estado:   \n"; echo "Descripción:   \n"; - echo "Seleccionable:   \n"; - echo "Respuesta humana:   \n"; + echo "Seleccionable:  
\n"; + echo "Respuesta humana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; echo "Categoría:\n"; echo "
ESTADODESCRIPCIÓNSELECCIONABLERESPUESTA HUMANOSAELIMINAR
ESTADODESCRIPCIÓNSELECCIONABLERESPUESTA HUMANOSACATEGORÍAMODIFY-DELETE
        \n"; echo "   \n"; echo "ELIMINAR\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT * from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -13934,7 +17136,7 @@ if ($ADD==31) } $camp_lists = eregi_replace(".$","",$camp_lists); - $stmt="SELECT * from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; @@ -14060,13 +17262,14 @@ if ($ADD==31) echo "
ACCESO DIRECTOESTADODESCRIPCIÓNELIMINAR
\n"; echo "\n"; - $stmt="SELECT * from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; - $rslt=mysql_query($stmt, $link); - $pause_codes_to_print = mysql_num_rows($rslt); - $o=0; - while ($pause_codes_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -14182,22 +17385,33 @@ if ($ADD==31) { echo "

ENCUESTA SOBRE AJUSTES EN ESTA CAMPAÑA:
\n"; - echo "
CÓDIGOS DE LA PAUSAFACTURABLEMODIFICARELIMINAR
\n"; + echo "
\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "
\n"; echo "\n"; - echo "
Primera encuesta de archivo de audio: $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Primera encuesta de archivo de audio: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Encuesta dígitos DTMF: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
No encuesta interesadas dígitos: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Encuesta de Opt-in de archivos de audio: $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
No encuesta interesadas archivo de audio: $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Encuesta de Opt-in de archivos de audio: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
No encuesta interesadas archivo de audio: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Método de estudio: $NWB#vicidial_campaigns-survey_method$NWE
Estudio n-Respuesta de acción: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Estudio de estado no le interesa: $NWB#vicidial_campaigns-survey_ni_status$NWE
Encuesta tercer dígito: $NWB#vicidial_campaigns-survey_third_digit$NWE
Tercera Encuesta de archivos de audio: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Tercera Encuesta de Situación: $NWB#vicidial_campaigns-survey_third_status$NWE
Tercer Estudio de Extensión: $NWB#vicidial_campaigns-survey_third_exten$NWE
Digit Cuarta Encuesta: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Cuarta Encuesta Archivo de audio: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Situación Cuarta Encuesta: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Encuesta cuarta prórroga: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Respuesta encuesta dígitos Mapa: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Encuesta Encuesta Xfer Extensión: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Estudio de grabación Campaña Directorio: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Buzón de Voz: $NWB#vicidial_campaigns-voicemail_ext$NWE
Buzón de Voz: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; @@ -14208,8 +17422,8 @@ if ($ADD==31) if ($SUB < 1) { echo "

\n"; - echo "
REGISTRE TODOS LOS AGENTES FUERA DE ESTA CAMPAÑA

\n"; - echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + echo "REGISTRE TODOS LOS AGENTES FUERA DE ESTA CAMPAÑA

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; if ($LOGdelete_campaigns > 0) { @@ -14233,21 +17447,21 @@ if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==34) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dial_status_a = $row[3]; @@ -14281,13 +17495,14 @@ if ($ADD==34) $default_xfer_group = $row[67]; $campaign_allow_inbound = $row[65]; $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} else {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; @@ -14305,7 +17520,7 @@ if ($ADD==34) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -14396,7 +17611,7 @@ if ($ADD==34) echo "
Campaña Fecha de cambio: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campaña Fecha de inicio de sesión: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Extensión del parking: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Formulario Web: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Estado Del Dial $o: \n"; + echo "
Estado Del Dial $o: \n"; if ($DEFstatusDISABLED > 0) { echo "$Dstatus - $statname_list[$Dstatus]         \n"; @@ -14424,14 +17639,118 @@ if ($ADD==34) } } - echo "
Add A Dial Estado:
Add A Dial Estado:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Orden De la Lista: $NWB#vicidial_campaigns-lead_order$NWE
Orden De la Lista: $NWB#vicidial_campaigns-lead_order$NWE
Mezcla lista: $NWB#vicidial_campaigns-lead_filter_id$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Forzar el Reinicio del Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Método Del Dial: $NWB#vicidial_campaigns-dial_method$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Adapte El Modificante De la Intensidad: \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT user,campaign_rank,calls_today from vicidial_campaign_agents where campaign_id='$campaign_id'"; + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); @@ -14624,13 +17999,13 @@ if ($ADD==34) else {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; } echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; - echo "REGISTRE TODOS LOS AGENTES FUERA DE ESTA CAMPAÑA

\n"; + echo "REGISTRE TODOS LOS AGENTES FUERA DE ESTA CAMPAÑA

\n"; if ($LOGdelete_campaigns > 0) @@ -14678,10 +18053,18 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

MEZCLAS DE LA LISTA PARA ESTA CAMPAÑA:  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; - echo "

Experimental Feature in development!!! NON-FUNCTIONAL
\n"; + echo "
ADVERTENCIA, sólo recomendamos Lista Mix para usuarios avanzados, por favor lea el Manual de Administrador de Vicidial
\n"; + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } - $stmt="SELECT * from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; $rslt=mysql_query($stmt, $link); $listmixes = mysql_num_rows($rslt); $o=0; @@ -14700,11 +18083,11 @@ if ( ($ADD==34) or ($ADD==31) ) else {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} } - echo "
\n"; + echo "

\n"; echo ""; echo "\n"; echo "\n"; + echo "List: $MIXdetailsLIST   QUITE\n"; echo "\n"; @@ -14810,8 +18193,8 @@ if ( ($ADD==34) or ($ADD==31) ) echo "\n"; - echo "\n"; + echo "\n"; - if ($q > 9) {$AE_disabled = 'DISABLED';} + if ($q > 39) {$AE_disabled = 'DISABLED';} else {$AE_disabled = '';} - echo "\n"; + + $X='X'; + echo "\n"; echo "
\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14755,10 +18138,10 @@ if ( ($ADD==34) or ($ADD==31) ) echo "
\n"; echo "\n"; - echo "List: $MIXdetailsLIST   QUITE
\n"; - echo "
\n"; + echo "
\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14820,11 +18203,27 @@ if ( ($ADD==34) or ($ADD==31) ) echo "List: \n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "QUITE\n"; echo "
\n"; } @@ -14832,7 +18231,7 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

NUEVA LISTA MIX
\n"; echo "\n"; - echo "
\n"; + echo "
\n"; echo "\n"; echo "\n"; echo "\n"; @@ -15251,356 +18650,565 @@ echo "
\n"; ###################### if ($ADD==311) -{ + { if ($LOGmodify_lists==1) - { - echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_lists where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $campaign_id = $row[2]; - $active = $row[3]; - $list_description = $row[4]; - $list_changedate = $row[5]; - $list_lastcalldate = $row[6]; - - # grab names of global statuses and statuses in the selected campaign - $stmt="SELECT * from vicidial_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($Cstatuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - # end grab status names - - - echo "
MODIFICAR UN REGISTRO DE LAS LISTAS: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
ID De la Lista: $row[0]$NWB#vicidial_lists-list_id$NWE
Nombre De la Lista: $NWB#vicidial_lists-list_name$NWE
Descripción De la Lista: $NWB#vicidial_lists-list_description$NWE
Campaña: $NWB#vicidial_lists-campaign_id$NWE
Activo: $NWB#vicidial_lists-active$NWE
Reiniciar el Lead-Called-Status para esta lista: $NWB#vicidial_lists-reset_list$NWE
Fecha Del Cambio De la Lista: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Última Fecha de lista de llamadas: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
\n"; - - echo "
\n"; - echo "
ESTADOS DENTRO DE ESTA LISTA:
\n"; - echo "\n"; - echo "\n"; - - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } - - $o=0; - if ($lead_list['count'] > 0) - { - while (list($dispo,) = each($lead_list[$since_reset])) { + echo "
ESTADONOMBRE DEL ESTADOLLAMADONO LLAMADO
\n"; - $o++; - } - } + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); - echo "\n"; - echo "\n"; + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names - echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; - if ($dispo == 'CBHOLD') + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) { - $CLB=""; - $CLE=""; - } - else - { - $CLB=''; - $CLE=''; + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; } - echo "
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; - unset($lead_list); + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} - echo "
\n"; - echo "
ZONAS DE TIEMPO DENTRO DE ESTA LISTA:
\n"; - echo "\n"; - echo "\n"; + echo "
MODIFICAR UN REGISTRO DE LAS LISTAS: $list_id\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
DESPLAZAMIENTO GMT AHORA (tiempo local)LLAMADONO LLAMADO
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $o=0; - $plus='+'; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } + echo "\n"; - if ($lead_list['count'] > 0) - { - while (list($tzone,) = each($lead_list[$since_reset])) - { - $LOCALzone=3600 * $tzone; - $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + echo "\n"; - if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} - else {$DISPtzone = "$tzone";} - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + echo "\n"; - echo "\n"; - } - } + echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - echo "
ID De la Lista: $list_id$NWB#vicidial_lists-list_id$NWE
Nombre De la Lista: $NWB#vicidial_lists-list_name$NWE
Descripción De la Lista: $NWB#vicidial_lists-list_description$NWE
Campaña: $NWB#vicidial_lists-campaign_id$NWE
Activo: $NWB#vicidial_lists-active$NWE
Reiniciar el Lead-Called-Status para esta lista: $NWB#vicidial_lists-reset_list$NWE
Perdí Times: $NWB#vicidial_lists-reset_time$NWE
Fecha Del Cambio De la Lista: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Última Fecha de lista de llamadas: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agente de secuencias de comandos Reemplazar: $NWB#vicidial_lists-agent_script_override$NWE
Campaña CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Contestador automático de mensajes Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
Drop de entrada Grupo de Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]
Transfiera -Conf El Número 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE

\n"; - unset($lead_list); + echo "
Transfiera -Conf El Número 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_count,count(*) from vicidial_list where list_id='$list_id' group by status,called_count order by status,called_count"; - $rslt=mysql_query($stmt, $link); - $status_called_to_print = mysql_num_rows($rslt); + echo "
\n"; + echo "
ESTADOS DENTRO DE ESTA LISTA:
\n"; + echo "\n"; + echo "\n"; - $o=0; - $sts=0; - $first_row=1; - $all_called_first=1000; - $all_called_last=0; - while ($status_called_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $leads_in_list = ($leads_in_list + $rowx[2]); - $count_statuses[$o] = "$rowx[0]"; - $count_called[$o] = "$rowx[1]"; - $count_count[$o] = "$rowx[2]"; - $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); - if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) - { - if ($first_row) {$first_row=0;} - else {$sts++;} - $status[$sts] = "$rowx[0]"; - $status_called_first[$sts] = "$rowx[1]"; - if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} - } - $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); - $status_called_last[$sts] = "$rowx[1]"; - if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - $o++; - } + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ESTADONOMBRE DEL ESTADOLLAMADONO LLAMADO
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + echo "
\n"; + echo "
ZONAS DE TIEMPO DENTRO DE ESTA LISTA:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
DESPLAZAMIENTO GMT AHORA (tiempo local)LLAMADONO LLAMADO
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); - echo "
\n"; - echo "
LLAMADAS REALIZADAS DENTRO DE ESTA LISTA:
\n"; - echo "\n"; - echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; + echo "
\n"; + echo "
PROPIETARIOS dentro de esta lista:
\n"; + echo "
ESTADONOMBRE DEL ESTADO$firstSUBTOTAL
\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERLLAMADONO LLAMADO
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
RANKS dentro de esta lista:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKLLAMADONO LLAMADO
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
LLAMADAS REALIZADAS DENTRO DE ESTA LISTA:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; $sts=0; $statuses_called_to_print = count($status); while ($statuses_called_to_print > $sts) - { - $Pstatus = $status[$sts]; - if (eregi("1$|3$|5$|7$|9$", $sts)) - {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} - else - {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} - # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; - # echo "$status[$sts]|"; - echo ""; + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; $first = $all_called_first; while ($first <= $all_called_last) { - if (eregi("1$|3$|5$|7$|9$", $sts)) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - else - { - if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - - $called_printed=0; - $o=0; - while ($status_called_to_print > $o) - { - if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) - { - $called_printed++; - echo ""; - } - - - $o++; - } - if (!$called_printed) - {echo "";} + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; $first++; } - echo "\n\n"; + echo "\n"; - $sts++; + echo "
ESTADONOMBRE DEL ESTADO$first$FplusSUBTOTAL
$Pstatus$statuses_list[$Pstatus]
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
TOTAL $count_count[$o]  $all_called_count[$first]$leads_in_sts[$sts]
$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Haga clic aquí para ver todas las CallBack mantiene en esta lista

\n"; + echo "

Haga clic aquí para descargar esta lista

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

SUPRIMA ESTA LISTA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a esta lista\n"; + } } - - echo "
TOTAL$all_called_count[$first]$leads_in_list

\n"; - - - - - - echo "
\n"; - - echo "

Haga clic aquí para ver todas las CallBack mantiene en esta lista

\n"; - echo "

Haga clic aquí para descargar esta lista

\n"; - - if ($LOGdelete_lists > 0) - { - echo "

SUPRIMA ESTA LISTA\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a esta lista
\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} @@ -15609,345 +19217,429 @@ if ($ADD==311) ###################### if ($ADD==3111) -{ - if ($LOGmodify_ingroups==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_groups where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $group_name = $row[1]; - $group_color = $row[2]; - $active = $row[3]; - $web_form_address = stripslashes($row[4]); - $voicemail_ext = $row[5]; - $next_agent_call = $row[6]; - $fronter_display = $row[7]; - $script_id = $row[8]; - $get_call_launch = $row[9]; - $xferconf_a_dtmf = $row[10]; - $xferconf_a_number = $row[11]; - $xferconf_b_dtmf = $row[12]; - $xferconf_b_number = $row[13]; - $drop_call_seconds = $row[14]; - $drop_action = $row[15]; - $drop_exten = $row[16]; - $call_time_id = $row[17]; - $after_hours_action = $row[18]; - $after_hours_message_filename = $row[19]; - $after_hours_exten = $row[20]; - $after_hours_voicemail = $row[21]; - $welcome_message_filename = $row[22]; - $moh_context = $row[23]; - $onhold_prompt_filename = $row[24]; - $prompt_interval = $row[25]; - $agent_alert_exten = $row[26]; - $agent_alert_delay = $row[27]; - $default_xfer_group = $row[28]; - $queue_priority = $row[29]; - $drop_inbound_group = $row[30]; - $ingroup_recording_override = $row[31]; - $ingroup_rec_filename = $row[32]; - $afterhours_xfer_group = $row[33]; - $qc_enabled = $row[34]; - $qc_statuses = $row[35]; - $qc_shift_id = $row[36]; - $qc_get_record_launch = $row[37]; - $qc_show_recording = $row[38]; - $qc_web_form_address = stripslashes($row[39]); - $qc_script = $row[40]; - $play_place_in_line = $row[41]; - $play_estimate_hold_time = $row[42]; - $hold_time_option = $row[43]; - $hold_time_option_seconds = $row[44]; - $hold_time_option_exten = $row[45]; - $hold_time_option_voicemail = $row[46]; - $hold_time_option_xfer_group = $row[47]; - $hold_time_option_callback_filename = $row[48]; - $hold_time_option_callback_list_id = $row[49]; - $hold_recall_xfer_group = $row[50]; - $no_delay_call_route = $row[51]; - $play_welcome_message = $row[52]; - $answer_sec_pct_rt_stat_one = $row[53]; - $answer_sec_pct_rt_stat_two = $row[54]; - $default_group_alias = $row[55]; - - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $Dgroups_menu=''; - $Dgroups_selected=0; - $Agroups_menu=''; - $Agroups_selected=0; - $Hgroups_menu=''; - $Hgroups_selected=0; - $Tgroups_menu=''; - $Tgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) + if ($LOGmodify_ingroups==1) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "\n"; - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - if ($group_id!=$rowx[0]) - { - $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - } - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - if ($Agroups_selected < 1) - {$Agroups_menu .= "\n";} - else - {$Agroups_menu .= "\n";} - if ($Tgroups_selected < 1) - {$Tgroups_menu .= "\n";} - else - {$Tgroups_menu .= "\n";} - if ($Hgroups_selected < 1) - {$Hgroups_menu .= "\n";} - else - {$Hgroups_menu .= "\n";} + echo "
\n"; + echo ""; - - echo "
MODIFICAR UN REGISTRO DE LOS GRUPOS: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - ##### get groups_alias listings for dynamic default group alias pulldown list menu - $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; - $rslt=mysql_query($stmt, $link); - $group_alias_to_print = mysql_num_rows($rslt); - $group_alias_menu=''; - $group_alias_selected=0; - $o=0; - while ($group_alias_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $group_alias_menu .= "\n"; - $o++; - } - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - - ##### get status listings for dynamic pulldown - $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); - $QCstatuses = explode(" ", $qc_statuses); - $QCs_to_print = (count($QCstatuses) -0); - $stmt="SELECT * from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $qc_statuses_list=''; + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; $o=0; - while ($statuses_to_print > $o) + while ($Xgroups_to_print > $o) { $rowx=mysql_fetch_row($rslt); - $qc_statuses_list .= "$rowx[0] - $rowx[1]\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + echo "
MODIFICAR UN REGISTRO DE LOS GRUPOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
ID De Grupo: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nombre De Grupo: $NWB#vicidial_inbound_groups-group_name$NWE
Color Del Grupo: $NWB#vicidial_inbound_groups-group_color$NWE
Activo: $NWB#vicidial_inbound_groups-active$NWE
Formulario Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Llamar al Siguiente Agente: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Cola de prioridad: $NWB#vicidial_inbound_groups-queue_priority$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Segundos De la Llamada De la Gota: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Caída de Acción:$NWB#vicidial_inbound_groups-drop_action$NWE
Gota Exten: $NWB#vicidial_inbound_groups-drop_exten$NWE
Buzón de Voz: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Grupo de Transferencia de caída:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Tiempo De la Llamada:$NWB#vicidial_inbound_groups-call_time_id$NWE
Después De la Acción De las Horas:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Después De Nombre de fichero Del Mensaje De las Horas:$NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Después De la Extensión De las Horas:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Después De las Horas Buzón de Voz:$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Horas después de la transferencia del Grupo:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Nombre de fichero Agradable Del Mensaje:$NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Reproducir Mensaje de Bienvenida:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Música En Contexto Del Asimiento:$NWB#vicidial_inbound_groups-moh_context$NWE
En Nombre de fichero Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
En Intervalo Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Lugar jugar en línea:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Juega Mantenga Tiempo estimado:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Mantenga la opción Hora:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Mantenga la opción Segundos Hora:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Mantenga Tiempo Opción Extensión:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Mantenga la opción Tiempo de voz:$NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Opción de Transferencia de celebrar Tiempo-Grupo A:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Mantenga la opción Tiempo de llamada de archivo:$NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Mantenga la opción Tiempo de llamada Lista ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Extensión Alerta Del Agente:$NWB#vicidial_inbound_groups-agent_alert_exten$NWE
La Alarma Del Agente Retrasa:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Grupo De la Transferencia Del Defecto:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Alias predeterminado Grupo: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Recordatorio de Transferencia de celebrar en Grupo:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
N Retraso de llamada Ruta:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
-Grupo de grabación en Sobrescribir:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
En el Grupo de grabación de archivo:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Estadísticas Porcentaje de llamadas respondidas dentro de X segundos 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Estadísticas Porcentaje de llamadas respondidas dentro de X segundos 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
 
Grupo de Ajustes de entrada de CC:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; $o++; } - $stmt="SELECT distinct(status),status_name from vicidial_campaign_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); + echo "\n"; - $o=0; - while ($Cstatuses_to_print > $o) + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) { - $rowx=mysql_fetch_row($rslt); - if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) { + $rowx=mysql_fetch_row($rslt); $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; } - ##### get scripts listings for pulldown - $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; - $rslt=mysql_query($stmt, $link); - $scripts_to_print = mysql_num_rows($rslt); - $QCscripts_list=""; - $o=0; - while ($scripts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCscripts_list .= "\n"; - $scriptname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - ##### get shifts listings for pulldown - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $QCshifts_list=""; - $o=0; - while ($shifts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCshifts_list .= "\n"; - $shiftname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - } - - echo "
ID De Grupo: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nombre De Grupo: $NWB#vicidial_inbound_groups-group_name$NWE
Color Del Grupo: $NWB#vicidial_inbound_groups-group_color$NWE
Activo: $NWB#vicidial_inbound_groups-active$NWE
Formulario Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Formulario Web Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Llamar al Siguiente Agente: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Cola de prioridad: $NWB#vicidial_inbound_groups-queue_priority$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Temporizador de Acción de: $NWB#vicidial_inbound_groups-timer_action$NWE
Temporizador de mensaje de acción: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Temporizador Segundos Acción: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Segundos De la Llamada De la Gota: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Caída de Acción:$NWB#vicidial_inbound_groups-drop_action$NWE
Gota Exten: $NWB#vicidial_inbound_groups-drop_exten$NWE
Buzón de Voz: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Grupo de Transferencia de caída:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Tiempo De la Llamada:$NWB#vicidial_inbound_groups-call_time_id$NWE
Después De la Acción De las Horas:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Después De Nombre de fichero Del Mensaje De las Horas: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Después De la Extensión De las Horas:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Después De las Horas Buzón de Voz: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Horas después de la transferencia del Grupo:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
N de colas n Agentes: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
No No Acción cola de agente: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Llame Menú:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID De la Lista: "; + echo "
ID De la Campaña: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Extensión:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Caja de voz: voicemail chooser\n"; + } + + echo "
+
 
Nombre de fichero Agradable Del Mensaje: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Reproducir Mensaje de Bienvenida:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Música En Contexto Del Asimiento: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
En Nombre de fichero Del Aviso Del Asimiento: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
En Intervalo Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Lugar jugar en línea:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Juega Mantenga Tiempo estimado:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Mantenga la opción Hora:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Mantenga la opción Segundos Hora:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Mantenga Tiempo Opción Extensión:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Mantenga la opción Tiempo de voz: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Opción de Transferencia de celebrar Tiempo-Grupo A:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Mantenga la opción Tiempo de llamada de archivo: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Mantenga la opción Tiempo de llamada Lista ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agente de Alerta Nombre de archivo: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
La Alarma Del Agente Retrasa:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Grupo De la Transferencia Del Defecto:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Alias predeterminado Grupo: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Recordatorio de Transferencia de celebrar en Grupo:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
N Retraso de llamada Ruta:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
-Grupo de grabación en Sobrescribir:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
En el Grupo de grabación de archivo:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Estadísticas Porcentaje de llamadas respondidas dentro de X segundos 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Estadísticas Porcentaje de llamadas respondidas dentro de X segundos 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Iniciar llamada URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Grupo de Ajustes de entrada de CC:
CC Activado: $NWB#vicidial_inbound_groups-qc_enabled$NWE
CC estados:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
Formulario de Asistencia CC:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
Control de calidad de secuencias de comandos: $NWB#vicidial_inbound_groups-qc_script$NWE
CC Mayúsculas: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
CC Obtener Registro de lanzamiento: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
Mostrar control de la calidad de grabación: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
CC Activado: $NWB#vicidial_inbound_groups-qc_enabled$NWE
CC estados:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
Formulario de Asistencia CC:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
Control de calidad de secuencias de comandos: $NWB#vicidial_inbound_groups-qc_script$NWE
CC Mayúsculas: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
CC Obtener Registro de lanzamiento: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
Mostrar control de la calidad de grabación: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; - echo "

\n"; + echo "
\n"; + echo "

\n"; - ### list of agent rank or skill-level for this inbound group - echo "
\n"; - echo "
AGENTE RANKS FOR THIS Entrantes GROUP:
\n"; - echo "\n"; - echo "\n"; + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
AGENTE RANKS FOR THIS Entrantes GROUP:
\n"; + echo "
USER     RANK     CALLS TODAY
\n"; + echo "\n"; - $stmt="SELECT user,group_rank,calls_today from vicidial_inbound_group_agents where group_id='$group_id'"; + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); $o=0; - while ($users_to_print > $o) { + while ($users_to_print > $o) + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Haga clic aquí para ver un informe de este grupo entrante

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "CAMPAÑAS QUE PERMITA EN ESTE GRUPO:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

SUPRIMA A ESTE EN-GRUPO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages en Grupo\n"; + } } - - echo "

\n"; - - echo "

\n"; - - echo "Haga clic aquí para ver un informe de este grupo entrante

\n"; - - echo "
\n"; - - if ($LOGdelete_ingroups > 0) - { - echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; - echo "

SUPRIMA A ESTE EN-GRUPO\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver a esta Administración chages en Grupo
\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} @@ -16068,151 +19832,478 @@ if ($ADD==3111) ###################### if ($ADD==3311) -{ + { if ($LOGmodify_dids==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_dids where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $did_id = $row[0]; - $did_pattern = $row[1]; - $did_description = $row[2]; - $did_active = $row[3]; - $did_route = $row[4]; - $extension = $row[5]; - $exten_context = $row[6]; - $voicemail_ext = $row[7]; - $phone = $row[8]; - $server_ip = $row[9]; - $user = $row[10]; - $user_unavailable_action = $row[11]; - $user_route_settings_ingroup = $row[12]; - $group_id = $row[13]; - $call_handle_method = $row[14]; - $agent_search_method = $row[15]; - $list_id = $row[16]; - $campaign_id = $row[17]; - $phone_code = $row[18]; - - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; - $rslt=mysql_query($stmt, $link); - $campaigns_to_print = mysql_num_rows($rslt); - $campaigns_list=''; - $o=0; - while ($campaigns_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $campaigns_list .= "\n"; - $o++; - } - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) { - $Xgroups_menu .= "SELECTED "; - $Xgroups_selected++; + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; } - $Xgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Dgroups_to_print = mysql_num_rows($rslt); - $Dgroups_menu=''; - $Dgroups_selected=0; - $o=0; - while ($Dgroups_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $Dgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFICAR UN REGISTRO DID:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID Extensión:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Descripción:$NWB#vicidial_inbound_dids-did_description$NWE
Activo: $NWB#vicidial_inbound_dids-did_active$NWE
DID Ruta:$NWB#vicidial_inbound_dids-did_route$NWE
Extensión:$NWB#vicidial_inbound_dids-extension$NWE
Extensión Contexto:$NWB#vicidial_inbound_dids-exten_context$NWE
Caja de voz: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Teléfono Extensión:$NWB#vicidial_inbound_dids-phone$NWE
IP Del Servidor: $NWB#vicidial_inbound_dids-server_ip$NWE
Llame Menú: $NWB#vicidial_inbound_dids-menu_id$NWE
Agente de usuario:$NWB#vicidial_inbound_dids-user$NWE
Usuario no disponible Acción:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
En Configuración de usuario Ruta-Grupo:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID De Grupo: $NWB#vicidial_inbound_dids-group_id$NWE
En llamada de grupo Manipule Método:$NWB#vicidial_inbound_dids-call_handle_method$NWE
En Grupo Agente Método de búsqueda:$NWB#vicidial_inbound_dids-agent_search_method$NWE
-En la lista Grupo de Identificación:$NWB#vicidial_inbound_dids-list_id$NWE
En el Grupo de Campaña-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
En el Grupo-Teléfono Código:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Haga clic aquí para ver un informe de tráfico para este DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

ELIMINAR ESTA DID\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages DID\n"; } - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; } - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - - - echo "
MODIFICAR UN REGISTRO DID:$row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "
DID Extensión:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Descripción:$NWB#vicidial_inbound_dids-did_description$NWE
Activo: $NWB#vicidial_inbound_dids-did_active$NWE
DID Ruta:$NWB#vicidial_inbound_dids-did_route$NWE
Extensión:$NWB#vicidial_inbound_dids-extension$NWE
Extensión Contexto:$NWB#vicidial_inbound_dids-exten_context$NWE
Caja de voz:$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Teléfono Extensión:$NWB#vicidial_inbound_dids-phone$NWE
IP Del Servidor: $NWB#vicidial_inbound_dids-server_ip$NWE
Agente de usuario:$NWB#vicidial_inbound_dids-user$NWE
Usuario no disponible Acción:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
En Configuración de usuario Ruta-Grupo:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID De Grupo: $NWB#vicidial_inbound_dids-group_id$NWE
En llamada de grupo Manipule Método:$NWB#vicidial_inbound_dids-call_handle_method$NWE
En Grupo Agente Método de búsqueda:$NWB#vicidial_inbound_dids-agent_search_method$NWE
-En la lista Grupo de Identificación:$NWB#vicidial_inbound_dids-list_id$NWE
En el Grupo de Campaña-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
En el Grupo-Teléfono Código:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; - echo "

\n"; - - - - if ($LOGdelete_dids > 0) - { - echo "

ELIMINAR ESTA DID\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver a esta Administración chages DID\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "\n"; -echo "\n"; - -echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
MODIFICAR UNA LLAMADA menú de grabación: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menú ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Nombre de menú: $NWB#vicidial_call_menu-menu_name$NWE
Menú del sistema: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Menú de tiempo de espera: $NWB#vicidial_call_menu-menu_timeout$NWE
Menú de tiempo de espera del sistema: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Menú del sistema no válido: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Repita Menú: $NWB#vicidial_call_menu-menu_repeat$NWE
Menú Hora Hora: $NWB#vicidial_call_menu-menu_time_check$NWE
Tiempo De la Llamada:$NWB#vicidial_call_menu-call_time_id$NWE
Pide pista en tiempo real Informe: $NWB#vicidial_call_menu-track_in_vdac$NWE
Grupo de seguimiento de: $NWB#vicidial_call_menu-tracking_group$NWE
Opciones del menú de llamadas:
+ Opción: $dtmf_list   + Descripción: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Llame Menú:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID De la Lista: "; + echo "
ID De la Campaña: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Extensión:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Caja de voz: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Opción: $dtmf_list   + Descripción: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Entrada:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Entrada: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

ELIMINAR LA PRESENTE CONVOCATORIA MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages de administración para este menú de llamada
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} @@ -16221,62 +20312,62 @@ if ($ADD==3311) ###################### if ($ADD==31111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $remote_agent_id = $row[0]; - $user_start = $row[1]; - $number_of_lines = $row[2]; - $server_ip = $row[3]; - $conf_exten = $row[4]; - $status = $row[5]; - $campaign_id = $row[6]; - - echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Comienzo Del ID del usuario: (Solamente números, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Número de líneas: (Solamente números)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Del Servidor: $NWB#vicidial_remote_agents-server_ip$NWE
Extensión Externa: (número del dial plan para alcanzar agentes)$NWB#vicidial_remote_agents-conf_exten$NWE
Estado: $NWB#vicidial_remote_agents-status$NWE
Campaña: $NWB#vicidial_remote_agents-campaign_id$NWE
Grupos De entrada: \n"; - echo "$groups_list"; - echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; - echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; - - - if ($LOGdelete_remote_agents > 0) { - echo "

SUPRIMA ESTE AGENTE ALEJADO\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Comienzo Del ID del usuario: (Solamente números, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Número de líneas: (Solamente números)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Del Servidor: $NWB#vicidial_remote_agents-server_ip$NWE
Extensión Externa: (número del dial plan para alcanzar agentes)$NWB#vicidial_remote_agents-conf_exten$NWE
Estado: $NWB#vicidial_remote_agents-status$NWE
Campaña: $NWB#vicidial_remote_agents-campaign_id$NWE
Grupos De entrada: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

SUPRIMA ESTE AGENTE ALEJADO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages agente remoto
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver a esta Administración chages agente remoto\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -16284,79 +20375,118 @@ if ($ADD==31111) ###################### if ($ADD==311111) -{ - if ($LOGmodify_usergroups==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_user_groups where user_group='$user_group';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_group = $row[0]; - $group_name = $row[1]; - $GROUP_shifts = $row[5]; - $forced_timeclock_login = $row[6]; - $shift_enforcement = $row[7]; - - echo ""; - - echo "
MODIFICAR UNA ENTRADA EN LOS GRUPOS DE USUARIOS\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - - echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Grupo: (sin espacios o signos de puntuación)$NWB#vicidial_user_groups-user_group$NWE
Descripción: (Descripción del grupo)$NWB#vicidial_user_groups-group_name$NWE
FuerzaReloj de tiempo inicio de sesión: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Cambio de título ejecutivo: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campañas Permitidas:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; - echo "$campaigns_list
 "; - echo "
Grupo de cambios:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $o=0; - while ($shifts_to_print > $o) + if ($LOGmodify_usergroups==1) { - $rowx=mysql_fetch_row($rslt); - $shift_id_value = $rowx[0]; - $shift_name_value = $rowx[1]; - echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
MODIFICAR UNA ENTRADA EN LOS GRUPOS DE USUARIOS\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - } - echo "\n"; - echo "
Grupo: (sin espacios o signos de puntuación)$NWB#vicidial_user_groups-user_group$NWE
Descripción: (Descripción del grupo)$NWB#vicidial_user_groups-group_name$NWE
FuerzaReloj de tiempo inicio de sesión: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Cambio de título ejecutivo: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campañas Permitidas:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Grupo de cambios:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) { - if (ereg(" $shift_id_value ", $GROUP_shifts)) + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; } - echo "> $shift_id_value - $shift_name_value
\n"; - $o++; - } - echo "
 
CC permitidas Campañas:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; - echo "$qc_campaigns_list"; echo "
 
CC permitidas entrantes Grupos:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; - echo "$qc_groups_list"; + + + echo "
Estado del agente visible Grupos:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } echo "
 
\n"; + echo "
Ver estado del agente de turno: $NWB#vicidial_user_groups-agent_status_view_time$NWE
CC permitidas Campañas:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
CC permitidas entrantes Grupos:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; - ### list of users in this user group + ### list of users in this user group $active_confs = 0; $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; @@ -16370,45 +20500,44 @@ if ($ADD==311111) $o=0; while ($users_to_print > $o) - { + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "
$rowx[0]$rowx[1]$rowx[2]$rowx[3]
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Haga clic aquí para ver todas las CallBack Posee en este grupo de usuarios

\n"; + echo "

Haga clic aquí para ver elReloj de tiempo Estado para este grupo de usuarios

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

SUPRIMA A ESTE GRUPO DE USUARIO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este grupo de usuarios\n"; + } } - - echo "

\n"; - - - - echo "

Haga clic aquí para ver todas las CallBack Posee en este grupo de usuarios

\n"; - echo "

Haga clic aquí para ver elReloj de tiempo Estado para este grupo de usuarios

\n"; - - if ($LOGdelete_user_groups > 0) - { - echo "

SUPRIMA A ESTE GRUPO DE USUARIO\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a este grupo de usuarios
\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -16416,90 +20545,151 @@ if ($ADD==311111) ###################### if ($ADD==3111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $script_name = $row[1]; - $script_comments = $row[2]; - $script_text = $row[3]; - $active = $row[4]; - echo ""; - - echo "
MODIFIQUE Una ESCRITURA\n"; - echo "\n"; - echo "\n"; - echo "
Identificación De la Escritura:: $script_id$NWB#vicidial_scripts-script_name$NWE
Nombre de la escritura: (título de la escritura)$NWB#vicidial_scripts-script_name$NWE
Comentarios de la escritura: $NWB#vicidial_scripts-script_comments$NWE
Activo: $NWB#vicidial_scripts-active$NWE
Texto de la escritura:

Escritura De la Inspección previo
"; - # BEGIN Insert Field - echo ""; - echo "
"; - # END Insert Field - echo " $NWB#vicidial_scripts-script_text$NWE
\n"; - - if ($LOGdelete_scripts > 0) { - echo "

SUPRIMA ESTA ESCRITURA\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
MODIFIQUE Una ESCRITURA\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación De la Escritura:: $script_id$NWB#vicidial_scripts-script_name$NWE
Nombre de la escritura: (título de la escritura)$NWB#vicidial_scripts-script_name$NWE
Comentarios de la escritura: $NWB#vicidial_scripts-script_comments$NWE
Activo: $NWB#vicidial_scripts-active$NWE
Texto de la escritura:

Escritura De la Inspección previo
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " CAMPAÑAS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " EN-GROUPOS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

SUPRIMA ESTA ESCRITURA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este script\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a este script\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -16507,29 +20697,30 @@ if ($ADD==3111111) ###################### if ($ADD==31111111) -{ - if ($LOGmodify_filters==1) { - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_filters==1) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; - $stmt="SELECT * from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $lead_filter_name = $row[1]; - $lead_filter_comments = $row[2]; - $lead_filter_sql = $row[3]; - echo ""; + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; - echo "
MODIFIQUE Un FILTRO\n"; - echo "\n"; - echo "\n"; - echo "
Identificación Del Filtro:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nombre Del Filtro: (descripción corta del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Comentarios Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + echo "
MODIFIQUE Un FILTRO
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación Del Filtro:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nombre Del Filtro: (descripción corta del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Comentarios Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; ##### get campaigns listing for dynamic pulldown $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; @@ -16545,31 +20736,31 @@ if ($ADD==31111111) $o++; } - echo "

"; - echo "
PRUEBE EN CAMPAÑA:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "

"; + echo "
PRUEBE EN CAMPAÑA: \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($LOGdelete_filters > 0) - { - echo "

SUPRIMA ESTE FILTRO\n"; + if ($LOGdelete_filters > 0) + { + echo "

SUPRIMA ESTE FILTRO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages al administrador de este filtro\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver chages al administrador de este filtro\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -16577,46 +20768,44 @@ if ($ADD==31111111) ###################### if ($ADD==321111111) -{ -if ($LOGmodify_call_times==1) -{ - -if ( ($stage=="ADD") and (strlen($state_rule)>0) ) { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; - if (eregi("\|$",$ct_state_call_times)) - {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Agregada: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Quitada: $state_rule
\n"; + } + + $ADD=311111111; + } else - {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Regla Del Estado Agregada: $state_rule
\n"; + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } } -if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) - { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; - - $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Regla Del Estado Quitada: $state_rule
\n"; - } - -$ADD=311111111; -} -else -{ -echo "Le no autorizan a visión esta página. Vaya por favor detrás."; -} - -} ###################### @@ -16624,151 +20813,154 @@ echo "Le no autorizan a visión esta página. Vaya por favor detrás."; ###################### if ($ADD==311111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -$ct_srs=1; -$b=0; -$srs_SQL =''; -if (strlen($ct_state_call_times)>2) { - $state_rules = explode('|',$ct_state_call_times); - $ct_srs = ((count($state_rules)) - 1); - } -echo "\n"; -echo "\n"; -while($ct_srs >= $b) - { - if (strlen($state_rules[$b])>0) + if ($LOGmodify_call_times==1) { - $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $call_time_name = $row[1]; - $call_time_comments = $row[2]; - $ct_default_start = $row[3]; - $ct_default_stop = $row[4]; - $ct_sunday_start = $row[5]; - $ct_sunday_stop = $row[6]; - $ct_monday_start = $row[7]; - $ct_monday_stop = $row[8]; - $ct_tuesday_start = $row[9]; - $ct_tuesday_stop = $row[10]; - $ct_wednesday_start = $row[11]; - $ct_wednesday_stop = $row[12]; - $ct_thursday_start = $row[13]; - $ct_thursday_stop = $row[14]; - $ct_friday_start = $row[15]; - $ct_friday_stop = $row[16]; - $ct_saturday_start = $row[17]; - $ct_saturday_stop = $row[18]; - $ct_state_call_times = $row[19]; - -echo ""; - -echo "
MODIFIQUE Un RATO De la LLAMADA\n"; -echo "\n"; -echo "\n"; -echo "
Identificación Del Tiempo De la Llamada: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nombre Del Tiempo De la Llamada: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada: $NWB#vicidial_call_times-call_time_comments$NWE
Comienzo Del Defecto: Parada Del Defecto: $NWB#vicidial_call_times-ct_default_start$NWE
Comienzo De Domingo: Parada De Domingo: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Lunes: Parada De Lunes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Martes: Parada De Martes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Miércoles: Parada De Miércoles: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jueves Start: Parada De Jueves: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Viernes: Parada De Viernes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Sábado: Parada De Sábado: $NWB#vicidial_call_times-ct_sunday_start$NWE
Definiciones activas del tiempo de la llamada del estado para estoexpediente:  
\n"; - $srs_SQL .= "'$state_rules[$b]',"; - $srs_state_SQL .= "'$row[0]',"; + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
MODIFIQUE Un RATO De la LLAMADA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "
$state_rules[$b] - REMOVE $row[0] - $row[1]
Identificación Del Tiempo De la Llamada: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nombre Del Tiempo De la Llamada: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada: $NWB#vicidial_call_times-call_time_comments$NWE
Comienzo Del Defecto: Parada Del Defecto: $NWB#vicidial_call_times-ct_default_start$NWE
Comienzo De Domingo: Parada De Domingo: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Lunes: Parada De Lunes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Martes: Parada De Martes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Miércoles: Parada De Miércoles: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jueves Start: Parada De Jueves: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Viernes: Parada De Viernes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Sábado: Parada De Sábado: $NWB#vicidial_call_times-ct_sunday_start$NWE
Definiciones activas del tiempo de la llamada del estado para estoexpediente:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "CAMPAÑAS USANDO ESTE TIEMPO DE LA LLAMADA:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "Entrantes GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este tiempo de atención
\n"; + } } - $b++; + else + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } + } -if (strlen($srs_SQL)>2) - { - $srs_SQL = "$srs_SQL''"; - $srs_state_SQL = "$srs_state_SQL''"; - $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; - } -else - {$srs_SQL='';} -$stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; -$rslt=mysql_query($stmt, $link); -$sct_to_print = mysql_num_rows($rslt); -$sct_list=''; - -$o=0; -while ($sct_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $sct_list .= "\n"; - $o++; -} -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "Add state call time rule:


\n"; -echo "CAMPAÑAS USANDO ESTE TIEMPO DE LA LLAMADA:
\n"; -echo "\n"; - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "Entrantes GROUPS USING THIS CALL TIME:
\n"; -echo "\n"; - - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a este tiempo de atención\n"; - } -} -else -{ -echo "Le no autorizan a visión esta página. Vaya por favor detrás."; -} - -} ###################### @@ -16776,327 +20968,328 @@ echo "Le no autorizan a visión esta página. Vaya por favor detrás."; ###################### if ($ADD==3111111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -echo "\n"; -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $state_call_time_state =$row[1]; - $call_time_name = $row[2]; - $call_time_comments = $row[3]; - $ct_default_start = $row[4]; - $ct_default_stop = $row[5]; - $ct_sunday_start = $row[6]; - $ct_sunday_stop = $row[7]; - $ct_monday_start = $row[8]; - $ct_monday_stop = $row[9]; - $ct_tuesday_start = $row[10]; - $ct_tuesday_stop = $row[11]; - $ct_wednesday_start = $row[12]; - $ct_wednesday_stop = $row[13]; - $ct_thursday_start = $row[14]; - $ct_thursday_stop = $row[15]; - $ct_friday_start = $row[16]; - $ct_friday_stop = $row[17]; - $ct_saturday_start = $row[18]; - $ct_saturday_stop = $row[19]; - -echo ""; - -echo "
_ MODIFICAR Uno ESTADO LLAMAR TIEMPO
\n"; -echo "\n"; -echo "\n"; -echo "
Identificación Del Tiempo De la Llamada: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Comienzo Del Defecto: Parada Del Defecto: $NWB#vicidial_call_times-ct_default_start$NWE
Comienzo De Domingo: Parada De Domingo: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Lunes: Parada De Lunes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Martes: Parada De Martes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Miércoles: Parada De Miércoles: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jueves Start: Parada De Jueves: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Viernes: Parada De Viernes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Sábado: Parada De Sábado: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; -echo "TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO:
\n"; -echo "\n"; - - $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) { - echo "

SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO\n"; + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
_ MODIFICAR Uno ESTADO LLAMAR TIEMPO\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación Del Tiempo De la Llamada: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Comienzo Del Defecto: Parada Del Defecto: $NWB#vicidial_call_times-ct_default_start$NWE
Comienzo De Domingo: Parada De Domingo: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Lunes: Parada De Lunes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Martes: Parada De Martes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Miércoles: Parada De Miércoles: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jueves Start: Parada De Jueves: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Viernes: Parada De Viernes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Sábado: Parada De Sábado: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO\n"; + } + } + else + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } } -} -else -{ -echo "Le no autorizan a visión esta página. Vaya por favor detrás."; -} - -} - - ###################### # ADD=331111111 modify shift definition info in the system ###################### if ($ADD==331111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_shifts where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $shift_name = $row[1]; - $shift_start_time = $row[2]; - $shift_length = $row[3]; - $shift_weekdays = $row[4]; - - $shift_start_hour = substr($shift_start_time,0,2); - $shift_start_min = substr($shift_start_time,2,2); - $shift_length_hour = substr($shift_length,0,2); - $shift_length_min = substr($shift_length,3,2); - $shift_end_hour = ($shift_start_hour + $shift_length_hour); - $shift_end_min = ($shift_start_min + $shift_length_min); - if ($shift_end_min >=60) + { + if ($LOGmodify_call_times==1) { - $shift_end_min = ($shift_end_min - 60); - $shift_end_hour++; - } - if ($shift_end_hour >=24) - { - $shift_end_hour = ($shift_end_hour - 24); - } - $shift_end_hour = sprintf("%02s", $shift_end_hour); - $shift_end_min = sprintf("%02s", $shift_end_min); - $shift_end = "$shift_end_hour$shift_end_min"; + echo "
\n"; + echo ""; -echo ""; - -echo "
MODIFICAR UN CAMBIO\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Cambio ID:$shift_id
Cambio de nombre: (breve descripción del cambio)$NWB#vicidial_shifts-shift_name$NWE
Cambio Hora de inicio:\n"; -echo "   Cambio Hora de finalización:\n"; -echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longitud cambio: $NWB#vicidial_shifts-shift_length$NWE
Cambio semana:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; -echo "Domingo
\n"; -echo "Lunes
\n"; -echo "Martes
\n"; -echo "Miércoles
\n"; -echo "Jueves
\n"; -echo "Viernes
\n"; -echo "Sábado
\n"; -echo "
\n"; - -echo "


\n"; -echo "GRUPOS DE USUARIOS DE UTILIZAR ESTE CAMBIO:
\n"; -echo "\n"; - - - $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFICAR UN CAMBIO\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
$row[0] $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Cambio ID:$shift_id
Cambio de nombre: (breve descripción del cambio)$NWB#vicidial_shifts-shift_name$NWE
Cambio Hora de inicio:\n"; + echo "   Cambio Hora de finalización:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longitud cambio: $NWB#vicidial_shifts-shift_length$NWE
Cambio semana:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Domingo
\n"; + echo "Lunes
\n"; + echo "Martes
\n"; + echo "Miércoles
\n"; + echo "Jueves
\n"; + echo "Viernes
\n"; + echo "Sábado
\n"; + echo "
\n"; + + echo "


\n"; + echo "GRUPOS DE USUARIOS DE UTILIZAR ESTE CAMBIO:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ELIMINAR ESTA MAYÚS DEFINICIÓN\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este cambio\n"; + } + } + else + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } + } -echo "
\n"; -echo "


\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

ELIMINAR ESTA MAYÚS DEFINICIÓN\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a este cambio\n"; - } -} -else -{ -echo "Le no autorizan a visión esta página. Vaya por favor detrás."; -} - -} - - ###################### # ADD=31111111111 modify phone record in the system ###################### if ($ADD==31111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFICANDO EL TELÉFONO: $row[1]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Extensión del teléfono: $NWB#phones-extension$NWE
Número De Dial plan: (Solamente dígitos)$NWB#phones-dialplan_number$NWE
Caja de voz: (Solamente dígitos)$NWB#phones-voicemail_id$NWE
CallerID De salida: (Solamente dígitos)$NWB#phones-outbound_cid$NWE
Dirección IP del teléfono: (optional)$NWB#phones-phone_ip$NWE
Dirección IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Del Servidor: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Contraseña: $NWB#phones-pass$NWE
Estado: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del Teléfono: $NWB#phones-phone_type$NWE
Nombre Completo: $NWB#phones-fullname$NWE
Correo electrónico: $NWB#phones-email$NWE
Compañía: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Mensajes Nuevos: $row[14]$NWB#phones-messages$NWE
Mensajes Viejos: $row[15]$NWB#phones-old_messages$NWE
Protocolo Del Cliente: $NWB#phones-protocol$NWE
GMT Local: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
Login del Manager: $NWB#phones-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#phones-ASTmgrSECRET$NWE
Usuario por defecto de VICIDIAL: $NWB#phones-login_user$NWE
Contraseña por defecto de VICIDIAL: $NWB#phones-login_pass$NWE
Campaña por defecto de VICIDIAL: $NWB#phones-login_campaign$NWE
Extensión del parking: $NWB#phones-park_on_extension$NWE
Extensión de la conferencia: $NWB#phones-conf_on_extension$NWE
Exten. Del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Archivo para música del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Prefijo al monitorizar: $NWB#phones-monitor_prefix$NWE
Exten de Grabación: $NWB#phones-recording_exten$NWE
Exten de VmailMain: $NWB#phones-voicemail_exten$NWE
Exten de VmaiDumpl: $NWB#phones-voicemail_dump_exten$NWE
Contexto De Exten: $NWB#phones-ext_context$NWE
Canal de envío del DTMF: $NWB#phones-dtmf_send_extension$NWE
Grupo de las llamadas de salida: $NWB#phones-call_out_number_group$NWE
Localización del Navegador: $NWB#phones-client_browser$NWE
Directorio de instalación: $NWB#phones-install_directory$NWE
URL del CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL por defecto de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Call Logging: $NWB#phones-AGI_call_logging_enabled$NWE
Cambio de Usuario: $NWB#phones-user_switching_enabled$NWE
Conferencias: $NWB#phones-conferencing_enabled$NWE
Colgar del Admin: $NWB#phones-admin_hangup_enabled$NWE
Captura del Admin: $NWB#phones-admin_hijack_enabled$NWE
Monitorización del Admin: $NWB#phones-admin_monitor_enabled$NWE
Parking de Llamada: $NWB#phones-call_parking_enabled$NWE
Uptader Check: $NWB#phones-updater_check_enabled$NWE
AF Logging: $NWB#phones-AFLogging_enabled$NWE
Colas permitidas: $NWB#phones-QUEUE_ACTION_enabled$NWE
Ventana emergente del CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Botón Vmail: $NWB#phones-voicemail_button_enabled$NWE
Refresco rápido: $NWB#phones-enable_fast_refresh$NWE
Refresco rápido de la tarifa: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Auto Marcar el Siguiente Número: $NWB#phones-auto_dial_next_number$NWE
Parar de Grabar después de cada llamada: $NWB#phones-VDstop_rec_after_each_call$NWE
Permita Los Mensajes de SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Servidor de DBX: (Primario DB Server)$NWB#phones-DBX_server$NWE
Base de datos de DBX: (Primario Server Database)$NWB#phones-DBX_database$NWE
Usuario de DBX: (Primario DB Login)$NWB#phones-DBX_user$NWE
Contraseña de DBX: (Primario DB Secret)$NWB#phones-DBX_pass$NWE
Puerto de DBX: (Primario DB Port)$NWB#phones-DBX_port$NWE
Servidor de DBY: (Secundario DB Server)$NWB#phones-DBY_server$NWE
Base de datos de DBY: (Secundario Server Database)$NWB#phones-DBY_database$NWE
Usuario de DBY: (Secundario DB Login)$NWB#phones-DBY_user$NWE
Contraseña de DBY: (Secundario DB Secret)$NWB#phones-DBY_pass$NWE
Puerto de DBY: (Secundario DB Port)$NWB#phones-DBY_port$NWE
ID de plantilla: \n"; - - echo "\n"; - - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICANDO EL TELÉFONO: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Extensión del teléfono: $NWB#phones-extension$NWE (Agent Screen Conexión Del Teléfono)
Número De Dial plan: (Solamente dígitos)$NWB#phones-dialplan_number$NWE
Caja de voz: (Solamente dígitos)$NWB#phones-voicemail_id$NWE
CallerID De salida: (Solamente dígitos)$NWB#phones-outbound_cid$NWE
Dirección IP del teléfono: (optional)$NWB#phones-phone_ip$NWE
Dirección IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Del Servidor: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Contraseña: $NWB#phones-pass$NWE
Estado: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del Teléfono: $NWB#phones-phone_type$NWE
Nombre Completo: $NWB#phones-fullname$NWE
Correo electrónico: $NWB#phones-email$NWE
Eliminar correo de voz después del email: $NWB#phones-delete_vm_after_email$NWE
Compañía: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Mensajes Nuevos: $row[14]$NWB#phones-messages$NWE
Mensajes Viejos: $row[15]$NWB#phones-old_messages$NWE
Protocolo Del Cliente: $NWB#phones-protocol$NWE
GMT Local: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
Teléfono Anillo de tiempo de espera: $NWB#phones-phone_ring_timeout$NWE
Login del Manager: $NWB#phones-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#phones-ASTmgrSECRET$NWE
Usuario por defecto de VICIDIAL: $NWB#phones-login_user$NWE
Contraseña por defecto de VICIDIAL: $NWB#phones-login_pass$NWE
Campaña por defecto de VICIDIAL: $NWB#phones-login_campaign$NWE
Extensión del parking: $NWB#phones-park_on_extension$NWE
Extensión de la conferencia: $NWB#phones-conf_on_extension$NWE
Exten. Del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Archivo para música del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Prefijo al monitorizar: $NWB#phones-monitor_prefix$NWE
Exten de Grabación: $NWB#phones-recording_exten$NWE
Exten de VmailMain: $NWB#phones-voicemail_exten$NWE
Exten de VmaiDumpl: $NWB#phones-voicemail_dump_exten$NWE
Contexto De Exten: $NWB#phones-ext_context$NWE
Teléfono Contexto: $NWB#phones-phone_context$NWE
Conf. Archivo Secreto: $NWB#phones-conf_secret$NWE
Canal de envío del DTMF: $NWB#phones-dtmf_send_extension$NWE
Grupo de las llamadas de salida: $NWB#phones-call_out_number_group$NWE
Localización del Navegador: $NWB#phones-client_browser$NWE
Directorio de instalación: $NWB#phones-install_directory$NWE
URL del CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL por defecto de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Call Logging: $NWB#phones-AGI_call_logging_enabled$NWE
Cambio de Usuario: $NWB#phones-user_switching_enabled$NWE
Conferencias: $NWB#phones-conferencing_enabled$NWE
Colgar del Admin: $NWB#phones-admin_hangup_enabled$NWE
Captura del Admin: $NWB#phones-admin_hijack_enabled$NWE
Monitorización del Admin: $NWB#phones-admin_monitor_enabled$NWE
Parking de Llamada: $NWB#phones-call_parking_enabled$NWE
Uptader Check: $NWB#phones-updater_check_enabled$NWE
AF Logging: $NWB#phones-AFLogging_enabled$NWE
Colas permitidas: $NWB#phones-QUEUE_ACTION_enabled$NWE
Ventana emergente del CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Botón Vmail: $NWB#phones-voicemail_button_enabled$NWE
Refresco rápido: $NWB#phones-enable_fast_refresh$NWE
Refresco rápido de la tarifa: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Auto Marcar el Siguiente Número: $NWB#phones-auto_dial_next_number$NWE
Parar de Grabar después de cada llamada: $NWB#phones-VDstop_rec_after_each_call$NWE
Permita Los Mensajes de SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Servidor de DBX: (Primario DB Server)$NWB#phones-DBX_server$NWE
Base de datos de DBX: (Primario Server Database)$NWB#phones-DBX_database$NWE
Usuario de DBX: (Primario DB Login)$NWB#phones-DBX_user$NWE
Contraseña de DBX: (Primario DB Secret)$NWB#phones-DBX_pass$NWE
Puerto de DBX: (Primario DB Port)$NWB#phones-DBX_port$NWE
Servidor de DBY: (Secundario DB Server)$NWB#phones-DBY_server$NWE
Base de datos de DBY: (Secundario Server Database)$NWB#phones-DBY_database$NWE
Usuario de DBY: (Secundario DB Login)$NWB#phones-DBY_user$NWE
Contraseña de DBY: (Secundario DB Secret)$NWB#phones-DBY_pass$NWE
Puerto de DBY: (Secundario DB Port)$NWB#phones-DBY_port$NWE
ID de plantilla: $NWB#phones-template_id$NWE
Conf. Sobrescribir: $NWB#phones-conf_override$NWE
\n"; + + echo "

Pinchar aquí­ para ver las estadísticas del teléfono\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

SUPRIMA ESTE TELÉFONO\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#phones-template_id$NWE
Conf. Sobrescribir: $NWB#phones-conf_override$NWE
\n"; - - echo "

Pinchar aquí­ para ver las estadísticas del teléfono\n"; - - if ($LOGast_delete_phones > 0) - { - echo "

SUPRIMA ESTE TELÉFONO\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -17104,70 +21297,70 @@ if ($ADD==31111111111) ###################### if ($ADD==32111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFICAR UN TELÉFONO ALIAS REGISTRO: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nombre: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; - - - ### list of phones in this phones alias - $phone_alias_SQL = ereg_replace(',',"','",$row[2]); - - echo "
\n"; - echo "
TELÉFONOS DENTRO DE ESTE PHONES ALIAS:
\n"; - echo "\n"; - echo "\n"; - - $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; - if ($DB) {echo "|$stmt|";} - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
LOGINEXTENSIÓNSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; - - if ($LOGast_delete_phones > 0) { - echo "

ELIMINAR ESTE TELÉFONO ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICAR UN TELÉFONO ALIAS REGISTRO: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nombre: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
TELÉFONOS DENTRO DE ESTE PHONES ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINEXTENSIÓNSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTE TELÉFONO ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages alias para este teléfono
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages alias para este teléfono\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -17175,44 +21368,44 @@ if ($ADD==32111111111) ###################### if ($ADD==33111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
ALIAS MODIFICAR UN GRUPO DE REGISTRO: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Alias ID Grupo: $row[0] $NWB#phones-group_alias_id$NWE
Grupo Alias Nombre: $NWB#phones-group_alias_name$NWE
Número CallerID: $NWB#phones-caller_id_number$NWE
Nombre CallerID: $NWB#phones-caller_id_name$NWE
Activo:
\n"; - - - if ($LOGast_delete_phones > 0) { - echo "

ELIMINAR ESTE GRUPO DE ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
ALIAS MODIFICAR UN GRUPO DE REGISTRO: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID Grupo: $row[0] $NWB#phones-group_alias_id$NWE
Grupo Alias Nombre: $NWB#phones-group_alias_name$NWE
Número CallerID: $NWB#phones-caller_id_number$NWE
Nombre CallerID: $NWB#phones-caller_id_name$NWE
Activo:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTE GRUPO DE ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este grupo, alias
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a este grupo, alias\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -17220,286 +21413,301 @@ if ($ADD==33111111111) ###################### if ($ADD==311111111111) -{ - if ($LOGmodify_servers==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "TRONCOS:
\n"; + echo "CAMPAÑA:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "
\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
TRANSPORTISTAS EN ESTE SERVIDOR:
\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage from servers where server_id='$server_id' or server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $server_id = $row[0]; - $server_description = $row[1]; - $server_ip = $row[2]; - $active = $row[3]; - $asterisk_version = $row[4]; - $max_vicidial_trunks = $row[5]; - $telnet_host = $row[6]; - $telnet_port = $row[7]; - $ASTmgrUSERNAME = $row[8]; - $ASTmgrSECRET = $row[9]; - $ASTmgrUSERNAMEupdate = $row[10]; - $ASTmgrUSERNAMElisten = $row[11]; - $ASTmgrUSERNAMEsend = $row[12]; - $local_gmt = $row[13]; - $voicemail_dump_exten = $row[14]; - $answer_transfer_agent = $row[15]; - $ext_context = $row[16]; - $sys_perf_log = $row[17]; - $vd_server_logs = $row[18]; - $agi_output = $row[19]; - $vicidial_balance_active = $row[20]; - $balance_trunks_offlimits = $row[21]; - $recording_web_link = $row[22]; - $alt_server_ip = $row[23]; - $active_asterisk_server = $row[24]; - $generate_vicidial_conf = $row[25]; - $rebuild_conf_files = $row[26]; - $outbound_calls_per_second = $row[27]; - $sysload = $row[28]; - $channels_total = $row[29]; - $cpu_idle_percent = $row[30]; - $disk_usage = $row[31]; + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; - $cpu = (100 - $cpu_idle_percent); - $disk_usage = preg_replace("/ /"," - ",$disk_usage); - $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); - echo "
MODIFICAR UN REGISTRO DEL SERVIDOR: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
MODIFICAR UN REGISTRO DEL SERVIDOR: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Del Servidor: $NWB#servers-server_id$NWE
Descripción Del Servidor: $NWB#servers-server_description$NWE
Dirección IP del Servidor: $NWB#servers-server_ip$NWE
Activo: $NWB#servers-active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "
ID Del Servidor: $NWB#servers-server_id$NWE
Descripción Del Servidor: $NWB#servers-server_description$NWE
Dirección IP del Servidor: $NWB#servers-server_ip$NWE
Activo: $NWB#servers-active$NWE
Sistema de carga: $sysload - $cpu%   $NWB#servers-sysload$NWE
Canales en vivo: $channels_total   $NWB#servers-channels_total$NWE
Uso del disco: $disk_usage   $NWB#servers-disk_usage$NWE
Sistema de carga: $sysload - $cpu%   $NWB#servers-sysload$NWE
Canales en vivo: $channels_total   $NWB#servers-channels_total$NWE
Uso del disco: $disk_usage   $NWB#servers-disk_usage$NWE
Versión De Asterisk: $NWB#servers-asterisk_version$NWE
Máx. Trunks en VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Pide máximo por segundo: $NWB#servers-outbound_calls_per_second$NWE
El Marcar Del Balance de VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
Balance Offlimits de VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Host Del Telnet: $NWB#servers-telnet_host$NWE
Puerto Del Telnet: $NWB#servers-telnet_port$NWE
Usuario Del Manager: $NWB#servers-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#servers-ASTmgrSECRET$NWE
Usuario del Updater del Manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Usuario Listen del Manager: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Usuario Send del Manager: $NWB#servers-ASTmgrUSERNAMEsend$NWE
GMT Local: (No ajustar para el DST)$NWB#servers-local_gmt$NWE
Extensión de Vmail Dump : $NWB#servers-voicemail_dump_exten$NWE
Extensión del AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexto por Defecto: $NWB#servers-ext_context$NWE
Funcionamiento Del Sistema: $NWB#servers-sys_perf_log$NWE
Registros Del Servidor: $NWB#servers-vd_server_logs$NWE
Salida de AGI: $NWB#servers-agi_output$NWE
Grabación de Enlace Web: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Del Servidor: $NWB#servers-alt_server_ip$NWE
Activa del servidor de Asterisk: $NWB#servers-active_asterisk_server$NWE
Generar los archivos de configuración: $NWB#servers-generate_vicidial_conf$NWE
Reconstruir los archivos de configuración: $NWB#servers-rebuild_conf_files$NWE
Versión De Asterisk: $NWB#servers-asterisk_version$NWE
Máx. Trunks en VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Pide máximo por segundo: $NWB#servers-outbound_calls_per_second$NWE
El Marcar Del Balance de VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
Balance Vicidial Rango:$NWB#servers-vicidial_balance_rank$NWE
Balance Offlimits de VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Host Del Telnet: $NWB#servers-telnet_host$NWE
Puerto Del Telnet: $NWB#servers-telnet_port$NWE
Usuario Del Manager: $NWB#servers-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#servers-ASTmgrSECRET$NWE
Usuario del Updater del Manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Usuario Listen del Manager: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Usuario Send del Manager: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf. Archivo Secreto: $NWB#servers-conf_secret$NWE
GMT Local: (No ajustar para el DST)$NWB#servers-local_gmt$NWE
Extensión de Vmail Dump : $NWB#servers-voicemail_dump_exten$NWE
Extensión del AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexto por Defecto: $NWB#servers-ext_context$NWE
Funcionamiento Del Sistema: $NWB#servers-sys_perf_log$NWE
Registros Del Servidor: $NWB#servers-vd_server_logs$NWE
Salida de AGI: $NWB#servers-agi_output$NWE
Portador de registro activo: $NWB#servers-carrier_logging_active$NWE
Grabación de Enlace Web: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Del Servidor: $NWB#servers-alt_server_ip$NWE
Activa del servidor de Asterisk: $NWB#servers-active_asterisk_server$NWE
Activo Server Agent: $NWB#servers-active_agent_login_server$NWE
Generar los archivos de configuración: $NWB#servers-generate_vicidial_conf$NWE
Reconstruir los archivos de configuración: $NWB#servers-rebuild_conf_files$NWE
Volver a generar música en espera: $NWB#servers-rebuild_music_on_hold$NWE
Actualización de los sonidos: $NWB#servers-sounds_update$NWE
Grabación Vicidial Límite: $NWB#servers-vicidial_recording_limit$NWE
\n"; + echo "
\n"; - ### vicidial server trunk records for this server - echo "

TRONCOS DE VICIDIAL PARA ESTE SERVIDOR:   $NWB#vicidial_server_trunks$NWE
\n"; - echo "\n"; - echo "\n"; + ### vicidial server trunk records for this server + echo "

TRONCOS DE VICIDIAL PARA ESTE SERVIDOR:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "
CAMPAÑA TRONCOS RESTRICCIÓN DELETE
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; - while ($recycle_to_print > $o) { + while ($recycle_to_print > $o) + { $rowx=mysql_fetch_row($rslt); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CAMPAÑA TRONCOS RESTRICCIÓN DELETE
$rowx[1]
\n"; + echo "
$rowx[1]\n"; + echo "\n"; + echo "\n"; + echo "ELIMINAR
\n"; + + echo "
AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL
\n"; + echo "\n"; echo "\n"; - echo "\n"; - echo "
ELIMINAR
\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNOMBREREGISTRATIONACTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELÉFONOS DENTRO DE ESTE SERVIDOR:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIÓNNOMBREACTIVO
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEEXTENSIÓN
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEEXTENSIÓN
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Este servidor tiene $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Este servidor tiene $active_phones Teléfonos activos y $inactive_phones Teléfonos inactivos

\n"; + echo "Este servidor tiene $active_confs active conferences

\n"; + echo "Este servidor tiene $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTE SERVIDOR\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este servidor\n"; + } } - - echo "
\n"; - - echo "
AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL
\n"; - echo "\n"; - echo "\n"; - echo "TRONCOS:
\n"; - echo "CAMPAÑA:
\n"; - echo "RESTRICTION:
\n"; - echo "
\n"; - - echo "

\n"; - - - ### list of carriers on this server - echo "
\n"; - echo "
TRANSPORTISTAS EN ESTE SERVIDOR:
\n"; - echo "\n"; - echo "\n"; - - $active_carriers = 0; - $inactive_carriers = 0; - $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $carriers_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($carriers_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[3])) {$active_carriers++;} - if (ereg("N", $rowx[3])) {$inactive_carriers++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIER IDNOMBREREGISTRATIONACTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; - - - ### list of phones on this server - echo "
\n"; - echo "
TELÉFONOS DENTRO DE ESTE SERVIDOR:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
EXTENSIÓNNOMBREACTIVO
$rowx[0]$rowx[2]$rowx[1]

\n"; - - - ### list of conferences on this server - echo "
\n"; - echo "
CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_confs = 0; - $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_confs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CONFERENCEEXTENSIÓN
$rowx[0]$rowx[2]

\n"; - - - ### list of vicidial conferences on this server - echo "
\n"; - echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_vdconfs = 0; - $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_vdconfs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
VD CONFERENCEEXTENSIÓN
$rowx[0]$rowx[2]

\n"; - - - echo "
\n"; - - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Este servidor tiene $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; - echo "Este servidor tiene $active_phones Teléfonos activos y $inactive_phones Teléfonos inactivos

\n"; - echo "Este servidor tiene $active_confs active conferences

\n"; - echo "Este servidor tiene $active_vdconfs active vicidial conferences

\n"; - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

ELIMINAR ESTE SERVIDOR\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a este servidor
\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -17507,111 +21715,111 @@ if ($ADD==311111111111) ###################### if ($ADD==331111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $template_id = $row[0]; - $template_name = $row[1]; - $template_contents = $row[2]; - - echo "
MODIFICAR UN REGISTRO CONF PLANTILLA: $row[0]
\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Plantilla ID: $template_id
Nombre de plantilla: $NWB#vicidial_conf_templates-template_name$NWE
Plantilla de contenidos: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; - - echo "
\n"; - - ### list of phones using this conf template - echo "
\n"; - echo "
TELÉFONOS DE UTILIZAR ESTE CONF PLANTILLA:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} + echo "
EXTENSIÓNNOMBRESERVERACTIVO
\n"; + echo "
MODIFICAR UN REGISTRO CONF PLANTILLA: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; - echo "
$rowx[0]$rowx[2]$rowx[3]$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Plantilla ID: $template_id
Nombre de plantilla: $NWB#vicidial_conf_templates-template_name$NWE
Plantilla de contenidos: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
TELÉFONOS DE UTILIZAR ESTE CONF PLANTILLA:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIÓNNOMBRESERVERACTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
TRANSPORTISTAS DE UTILIZAR ESTE CONF PLANTILLA:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNOMBRESERVERACTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

CONF ELIMINAR ESTA PLANTILLA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages conf plantilla
\n"; + } } - - echo "

\n"; - - ### list of carriers using this conf template - echo "
\n"; - echo "
TRANSPORTISTAS DE UTILIZAR ESTE CONF PLANTILLA:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIERNOMBRESERVERACTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; - - - - if ($LOGast_delete_phones > 0) - { - echo "

CONF ELIMINAR ESTA PLANTILLA\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver a esta Administración chages conf plantilla\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -17619,95 +21827,284 @@ if ($ADD==331111111111) ###################### if ($ADD==341111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active from vicidial_server_carriers where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $carrier_id = $row[0]; - $carrier_name = $row[1]; - $registration_string = $row[2]; - $template_id = $row[3]; - $account_entry = $row[4]; - $protocol = $row[5]; - $globals_string = $row[6]; - $dialplan_entry = $row[7]; - $server_ip = $row[8]; - $active = $row[9]; - - echo "
MODIFICAR UN REGISTRO DE TRANSPORTISTA: $row[0]\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Portador de Identificación: $carrier_id
Transportista Nombre: $NWB#vicidial_server_carriers-carrier_name$NWE
Cadena de registro: $NWB#vicidial_server_carriers-registration_string$NWE
ID de plantilla: \n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFICAR UN REGISTRO DE TRANSPORTISTA: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Portador de Identificación: $carrier_id
Transportista Nombre: $NWB#vicidial_server_carriers-carrier_name$NWE
Descripción Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Cadena de registro: $NWB#vicidial_server_carriers-registration_string$NWE
ID de plantilla: $NWB#vicidial_server_carriers-template_id$NWE
Cuenta Entrada: $NWB#vicidial_server_carriers-account_entry$NWE
Protocolo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Serie de caracteres: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrada: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Del Servidor: $NWB#vicidial_server_carriers-server_ip$NWE
Activo: $NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA PORTEADOR\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a esta compañía aérea
\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#vicidial_server_carriers-template_id$NWE
Cuenta Entrada: $NWB#vicidial_server_carriers-account_entry$NWE
Protocolo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Serie de caracteres: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrada: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Del Servidor: $NWB#vicidial_server_carriers-server_ip$NWE
Activo: $NWB#vicidial_server_carriers-active$NWE
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

ELIMINAR ESTA PORTEADOR\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver Admin chages a esta compañía aérea\n"; - } - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
TTS MODIFICAR UN RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
Nombre TTS: $NWB#vicidial_tts_prompts-tts_name$NWE
Activo: $NWB#vicidial_tts_prompts-active$NWE
TTS Texto: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA ENTRADA TTS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages Admin a esta entrada a TTS
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Música en espera de identificación: $moh_id
Música en espera Nombre: $NWB#vicidial_music_on_hold-moh_name$NWE
Activo: $NWB#vicidial_music_on_hold-active$NWE
Orden aleatorio: $NWB#vicidial_music_on_hold-random$NWE
Archivos de Audio: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rango:\n"; + + echo "   $rowx[0] - ELIMINAR
\n"; + $o++; + } + + echo "
Añadir un archivo de audio: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE MÚSICA EN ESPERA DE ENTRADA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages de administración para esta música en espera de entrada
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
MODIFICAR UN contestador: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ID de correo de voz: $voicemail_id
Contraseña: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Correo electrónico:$NWB#vicidial_voicemail-email$NWE
Activo: $NWB#vicidial_voicemail-active$NWE
Eliminar correo de voz después del email: $NWB#vicidial_voicemail-delete_vm_after_email$NWE
Mensajes Nuevos: $messages
Mensajes Viejos: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Este mensaje de voz DELETE BOX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages de administración para esta casilla de correo de voz
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} ###################### @@ -17715,45 +22112,45 @@ if ($ADD==341111111111) ###################### if ($ADD==3111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFICAR UN REGISTRO DE LA CONFERENCIA: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Conferencia: $NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
Extensión Actual:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

ELIMINAR ESTA CONFERENCIA\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFICAR UN REGISTRO DE LA CONFERENCIA: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferencia: $NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
Extensión Actual:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA CONFERENCIA\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; } } - else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; - } -} ###################### @@ -17761,45 +22158,45 @@ if ($ADD==3111111111111) ###################### if ($ADD==31111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Conferencia: $NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
Extensión Actual:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

ELIMINAR ESTA CONFERENCIA VICIDIAL\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferencia: $NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
Extensión Actual:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA CONFERENCIA VICIDIAL\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; } } - else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; - } -} @@ -17808,153 +22205,251 @@ if ($ADD==31111111111111) ###################### if ($ADD==311111111111111) -{ + { if ($LOGmodify_servers==1) - { - echo "
\n"; - echo ""; + { + echo "\n"; - } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second from system_settings;"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $version = $row[0]; - $install_date = $row[1]; - $use_non_latin = $row[2]; - $webroot_writable = $row[3]; - $enable_queuemetrics_logging = $row[4]; - $queuemetrics_server_ip = $row[5]; - $queuemetrics_dbname = $row[6]; - $queuemetrics_login = $row[7]; - $queuemetrics_pass = $row[8]; - $queuemetrics_url = $row[9]; - $queuemetrics_log_id = $row[10]; - $queuemetrics_eq_prepend = $row[11]; - $vicidial_agent_disable = $row[12]; - $allow_sipsak_messages = $row[13]; - $admin_home_url = $row[14]; - $enable_agc_xfer_log = $row[15]; - $db_schema_version = $row[16]; - $auto_user_add_value = $row[17]; - $timeclock_end_of_day = $row[18]; - $timeclock_last_reset_date = $row[19]; - $vdc_header_date_format = $row[20]; - $vdc_customer_date_format = $row[21]; - $vdc_header_phone_format = $row[22]; - $vdc_agent_api_active = $row[23]; - $qc_last_pull_time = $row[24]; - $enable_vtiger_integration = $row[25]; - $vtiger_server_ip = $row[26]; - $vtiger_dbname = $row[27]; - $vtiger_login = $row[28]; - $vtiger_pass = $row[29]; - $vtiger_url = $row[30]; - $qc_features_active = $row[31]; - $outbound_autodial_active = $row[32]; - $outbound_calls_per_second = $row[33]; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; - echo "
MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL\n"; + echo "\n"; + echo "\n"; + echo "
Versión: $version
DB Schema Versión: $db_schema_version
Auto Usuario-add Value: $auto_user_add_value
Fecha de instalación: $install_date
Uso No-Latino: $NWB#settings-use_non_latin$NWE
Webroot Escribible: $NWB#settings-webroot_writable$NWE
El Agente de VICIDIAL Inhabilita La Exhibición:$NWB#settings-vicidial_agent_disable$NWE
Permita Los Mensajes de SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL Casero Del Admin: $NWB#settings-admin_home_url$NWE
Permita El Logfile De la Transferencia Del Agente: $NWB#settings-enable_agc_xfer_log$NWE
Reloj de tiempo Fin de Día:$NWB#settings-timeclock_end_of_day$NWE
ÚltimaReloj de tiempo Auto Desconexión: $timeclock_last_reset_date
Tire de CC Última Hora: $qc_last_pull_time
Agente de la pantalla de encabezado Formato de fecha: $NWB#settings-vdc_header_date_format$NWE
Agente del cliente Fecha Formato de pantalla: $NWB#settings-vdc_customer_date_format$NWE
Agente Cliente Teléfono Formato de pantalla: $NWB#settings-vdc_header_phone_format$NWE
Agente activo de API:$NWB#settings-vdc_agent_api_active$NWE
CC Características Activo: $NWB#settings-qc_features_active$NWE
Salida activa de marcación automática: $NWB#settings-outbound_autodial_active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "\n"; + $o++; + } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "$servers_list"; + echo "\n"; + echo "$NWB#settings-active_voicemail_server$NWE\n"; - echo "\n"; - echo "
Versión: $version
DB Schema Versión: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Usuario-add Value: $auto_user_add_value
Fecha de instalación: $install_date
Uso No-Latino: $NWB#settings-use_non_latin$NWE
Webroot Escribible: $NWB#settings-webroot_writable$NWE
El Agente de VICIDIAL Inhabilita La Exhibición:$NWB#settings-vicidial_agent_disable$NWE
Permita Los Mensajes de SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL Casero Del Admin: $NWB#settings-admin_home_url$NWE
Permita El Logfile De la Transferencia Del Agente: $NWB#settings-enable_agc_xfer_log$NWE
Reloj de tiempo Fin de Día:$NWB#settings-timeclock_end_of_day$NWE
ÚltimaReloj de tiempo Auto Desconexión: $timeclock_last_reset_date
Agente de la pantalla de encabezado Formato de fecha: $NWB#settings-vdc_header_date_format$NWE
Agente del cliente Fecha Formato de pantalla: $NWB#settings-vdc_customer_date_format$NWE
Agente Cliente Teléfono Formato de pantalla: $NWB#settings-vdc_header_phone_format$NWE
Agente activo de API:$NWB#settings-vdc_agent_api_active$NWE
Único agente de devolución de llamada Campaña de bloqueo: $NWB#settings-agentonly_callback_campaign_lock$NWE
Max LLENAR Pide por segundo: $NWB#settings-outbound_calls_per_second$NWE
Central de control de sonido activo: $NWB#settings-sounds_central_control_active$NWE
Sonidos de servidor Web: $NWB#settings-sounds_web_server$NWE
Sounds Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Permita La Registración De QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP Del Servidor De QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nombre del DB De QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
Conexión del DB De QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Contraseña del DB De QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Identificación Del Registro De QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend: $NWB#settings-queuemetrics_eq_prepend$NWE
Servidor de correo de voz activo:
Habilitar Vtiger Integración: $NWB#settings-enable_vtiger_integration$NWE\n"; - echo "   Haga clic aquí para sincronizar los usuarios con Vtiger\n"; - echo "
PP Vtiger IP del servidor: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Contraseña: $NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; - echo "\n"; - if ($LOGuser_level >= 9) - { - echo "

Haga clic aquí para ver chages a la administración de la configuración del sistema
\n"; - } + echo "
Marcado automático de límite de: $NWB#settings-auto_dial_limit$NWE
Salida activa de marcación automática: $NWB#settings-outbound_autodial_active$NWE
Max LLENAR Pide por segundo: $NWB#settings-outbound_calls_per_second$NWE
Permitir Custom Dialplan entradas: $NWB#settings-allow_custom_dialplan$NWE
Territorios de usuario de Activo: $NWB#settings-user_territories_active$NWE
Formulario de Asistencia Segunda Habilitar: $NWB#settings-enable_second_webform$NWE
Habilitar TTS Integración: $NWB#settings-enable_tts_integration$NWE
CC Características Activo: $NWB#settings-qc_features_active$NWE
Tire de CC Última Hora: $qc_last_pull_time
Permita La Registración De QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP Del Servidor De QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nombre del DB De QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
Conexión del DB De QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Contraseña del DB De QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Identificación Del Registro De QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend: $NWB#settings-queuemetrics_eq_prepend$NWE
Habilitar Vtiger Integración: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Haga clic aquí para sincronizar los usuarios con Vtiger\n"; + echo "
PP Vtiger IP del servidor: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Contraseña: $NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages a la administración de la configuración del sistema
\n"; + } + } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} @@ -17966,100 +22461,114 @@ if ($ADD==311111111111111) ###################### if ($ADD==321111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; - - echo "
\n"; - echo "ESTADOS DE VICIDIAL DENTRO DE ESTE SISTEMA:  $NWB#vicidial_statuses$NWE
\n"; - echo "\n"; - echo "\n"; - - ##### get status category listings for dynamic pulldown - $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; - $rslt=mysql_query($stmt, $link); - $cats_to_print = mysql_num_rows($rslt); - $cats_list=""; - - $o=0; - while ($cats_to_print > $o) + if ($LOGmodify_servers==1) { - $rowx=mysql_fetch_row($rslt); - $cats_list .= "\n"; - $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); - $o++; - } + echo "
ESTADODESCRIPCIÓNSELECT-
ABLE
HUMANOS
RESPUESTA
CATEGORÍAMODIFY/DELETE
\n"; - echo "\n"; + echo "  
\n"; + echo "
\n"; + + echo "
\n"; + } - - echo "
\n"; + echo ""; + + echo "
\n"; + echo "ESTADOS DE VICIDIAL DENTRO DE ESTE SISTEMA:  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } - $stmt="SELECT * from vicidial_statuses order by status;"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $AScategory = $rowx[4]; - $o++; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ESTADODESCRIPCIÓNSELECT-
ABLE
HUMANOS
RESPUESTA
CATEGORÍAMODIFY/DELETE
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ELIMINAR\n"; + } + else + { + echo "ELIMINAR\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AGREGUE EL NUEVO ESTADO DE SISTEMA
\n"; + echo "\n"; + echo "Estado:   \n"; + echo "Descripción:
\n"; + echo "Seleccionable:   \n"; + echo "Respuesta humana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Categoría:\n"; echo "\n"; - echo "
        \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "ELIMINAR\n"; - } - else - { - echo "ELIMINAR\n"; - } - echo "
\n"; - - echo "
AGREGUE EL NUEVO ESTADO DE SISTEMA
\n"; - echo "\n"; - echo "Estado:   \n"; - echo "Descripción:
\n"; - echo "Seleccionable:   \n"; - echo "Respuesta humana:   \n"; - echo "Categoría:\n"; - echo "  
\n"; - echo "
\n"; - - echo "

\n"; - - } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} @@ -18070,18 +22579,18 @@ if ($ADD==321111111111111) ###################### if ($ADD==331111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; - echo "
\n"; - echo "VICIDIAL ESTADO DE LAS CATEGORÍAS:   $NWB#vicidial_status_categories$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
\n"; + echo "VICIDIAL ESTADO DE LAS CATEGORÍAS:   $NWB#vicidial_status_categories$NWE
\n"; + echo "
CATEGORÍANOMBREESTATUTOS EN ESTA CATEGORÍA
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_status_categories order by vsc_id;"; + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -18144,28 +22653,28 @@ if ($ADD==331111111111111) $p++; } + + echo "
CATEGORÍANOMBREESTATUTOS EN ESTA CATEGORÍA
\n"; - echo "
\n"; + echo "
AGREGUE LA NUEVA CATEGORÍA DEL ESTADO
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Exponer:   \n"; + echo "Categoría de venta:   \n"; + echo "Muerto líder Categoría:  
\n"; + echo "Descripción:   \n"; + echo "
\n"; - echo "
AGREGUE LA NUEVA CATEGORÍA DEL ESTADO
\n"; - echo "\n"; - echo "Category ID:   \n"; - echo "Name:  
\n"; - echo "TimeOnVDAD Exponer:   \n"; - echo "Categoría de venta:   \n"; - echo "Muerto líder Categoría:  
\n"; - echo "Descripción:   \n"; - echo "
\n"; + echo "

\n"; - echo "
\n"; - - } + } else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } } -} @@ -18176,121 +22685,121 @@ if ($ADD==331111111111111) ###################### if ($ADD==341111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "CC CÓDIGOS VICIDIAL ESTADO DENTRO DE ESTE SISTEMA:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEDESCRIPCIÓNMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ELIMINAR\n"; + } + else + { + echo "ELIMINAR\n"; + } + echo "
\n"; + + echo "
Añadir CC NUEVO CÓDIGO ESTADO
\n"; + echo "\n"; + echo "Estado:   \n"; + echo "Descripción:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) { echo "
\n"; echo ""; - echo "
\n"; - echo "CC CÓDIGOS VICIDIAL ESTADO DENTRO DE ESTE SISTEMA:  $NWB#vicidial_qc_status_codes$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
BUSCAR UN USUARIO\n"; + echo "\n"; + echo "
STATUS CODEDESCRIPCIÓNMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - } - } - echo "
NÚmero De Usuario:
Nombre Completo:
Nivel Del Usuario:
Grupo Del Usuario:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]         \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "ELIMINAR\n"; - } - else - { - echo "ELIMINAR\n"; - } - echo "
\n"; - - echo "
Añadir CC NUEVO CÓDIGO ESTADO
\n"; - echo "\n"; - echo "Estado:   \n"; - echo "Descripción:
\n"; - echo "
\n"; - - echo "

\n"; - - } - else - { - echo "Usted no tiene permiso de visión esta página\n"; - exit; - } -} - - - - - - -###################### -# ADD=550 search form -###################### - -if ($ADD==550) -{ -echo "\n"; - -echo "\n"; -echo "
\n"; -echo ""; - -echo "
BUSCAR UN USUARIO
\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + + echo "\n"; + echo "
NÚmero De Usuario:
Nombre Completo:
Nivel Del Usuario:
Grupo Del Usuario:
\n"; } -echo "$groups_list
\n"; - -} ###################### # ADD=660 user search results ###################### if ($ADD==660) -{ -echo "
\n"; + { + echo "
\n"; echo ""; $SQL = ''; @@ -18299,18 +22808,19 @@ echo "
\n"; if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} if ($user_group) {$SQL .= " user_group = '$user_group' and";} $SQL = eregi_replace(" and$", "", $SQL); - if (strlen($SQL)>5) {$SQL = "where $SQL";} + if (strlen($SQL)>5) {$SQL = "and $SQL";} - $stmt="SELECT * from vicidial_users $SQL order by full_name desc;"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; # echo "\n|$stmt|\n"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); -echo "
RESULTADOS DE LA BÚSQUEDA:\n"; -echo "
\n"; + echo "
RESULTADOS DE LA BÚSQUEDA:\n"; + echo "
\n"; $o=0; - while ($people_to_print > $o) { + while ($people_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18319,12 +22829,12 @@ echo "
\n"; echo ""; echo "\n"; $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]MODIFICAR | ESTADÍSTICAS | ESTADO | TIME
\n"; + } -echo "
\n"; - -} - ###################################################################################################### ###################################################################################################### @@ -18336,158 +22846,158 @@ echo "
\n"; # ADD=8 find all callbacks on hold by a User ###################### if ($ADD==8) -{ - if ($LOGmodify_users==1) { + if ($LOGmodify_users==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Usuario($user) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Usuario($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Usuario($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Usuario($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; -echo ""; + echo ""; $CBquerySQLwhere = "and user='$user'"; -echo "
USER CALLBACK HOLD LISTINGS: $user\n"; -$oldADD = "ADD=8&user=$user"; -$ADD='82'; -} + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } ###################### # ADD=81 find all callbacks on hold within a Campaign ###################### if ($ADD==81) -{ - if ($LOGmodify_campaigns==1) { + if ($LOGmodify_campaigns==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; -echo ""; + echo ""; $CBquerySQLwhere = "and campaign_id='$campaign_id'"; -echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; -$oldADD = "ADD=81&campaign_id=$campaign_id"; -$ADD='82'; -} + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } ###################### # ADD=811 find all callbacks on hold within a List ###################### if ($ADD==811) -{ - if ($LOGmodify_lists==1) { + if ($LOGmodify_lists==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; -echo ""; + echo ""; $CBquerySQLwhere = "and list_id='$list_id'"; -echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=811&list_id=$list_id"; -$ADD='82'; -} + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } ###################### # ADD=8111 find all callbacks on hold within a user group ###################### if ($ADD==8111) -{ - if ($LOGmodify_usergroups==1) { + if ($LOGmodify_usergroups==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; echo ""; $CBquerySQLwhere = "and user_group='$user_group'"; -echo "
GRUPO DE USUARIOS CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=8111&user_group=$user_group"; -$ADD='82'; -} + echo "
GRUPO DE USUARIOS CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } ###################### # ADD=82 display all callbacks on hold ###################### if ($ADD==82) -{ + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $NIVELlink='stage=NIVELUP';} -$USERlink='stage=USERIDDOWN'; -$GROUPlink='stage=GROUPDOWN'; -$ENDATElink='stage=ENDATEDOWN'; -$SQLorder='order by '; -if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} -if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} -if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $NIVELlink='stage=NIVELUP';} - - $stmt="SELECT * from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; $rslt=mysql_query($stmt, $link); $cb_to_print = mysql_num_rows($rslt); -echo ""; echo ""; echo "\n"; + echo "\n"; echo "\n"; echo ""; echo ""; @@ -18691,6 +23202,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18700,7 +23212,7 @@ if ($ADD==100) $o++; } - $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id from vicidial_lists where list_id NOT IN($lists_printed'');"; + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); $o=0; @@ -18714,6 +23226,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18817,6 +23330,65 @@ if ($ADD==1300) } +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + echo "
LEADLIST CAMPAÑAENTRY FECHACALLBACK FECHAUSERRECIPIENTESTADOGROUP
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; $o=0; - while ($cb_to_print > $o) { + while ($cb_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18505,13 +23015,13 @@ echo ""; echo "\n"; $o++; + } + + echo "
LEADLIST CAMPAÑAENTRY FECHACALLBACK FECHAUSERRECIPIENTESTADOGROUP
G echo "$row[11]
\n"; + + echo "$CBinactiveLINK"; } -echo "
\n"; - -echo "$CBinactiveLINK"; -} - ###################################################################################################### @@ -18535,7 +23045,7 @@ if ($ADD==0) } else { - $SQLstatus = "where active='Y'"; + $SQLstatus = "and active='Y'"; echo "   mostrar todos los usuarios\n"; } @@ -18552,7 +23062,7 @@ if ($ADD==0) if (eregi("NIVELDOWN",$stage)) {$SQLorder='order by user_level desc'; $NIVELlink='stage=NIVELUP';} if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} - $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users $SQLstatus $SQLorder"; + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); @@ -18662,7 +23172,7 @@ if ($ADD==100) if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} - $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -18672,6 +23182,7 @@ if ($ADD==100) echo "
ID DE LA LISTANOMBRE DE LA LISTADESCRIPCIÓNRTIMEENCABEZA COUNTACTIVOÚLTIMA FECHA DE CONVOCATORIA
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
"; echo "\n"; - $o=0; while ($statecalltimes_to_print > $o) { @@ -19369,6 +23940,143 @@ if ($ADD==140000000000) echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTADOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNOMBREPROMPTTIMEOUTOPTIONSMODIFICAR
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]MODIFICAR
\n"; + } + + ###################### # ADD=10000 display all remote agents ###################### @@ -19039,7 +23611,6 @@ if ($ADD==1000000000) echo "
PREDETERM STOPMODIFICAR
\n"; } + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDNombre TTSActivoTTS TextoMODIFICAR
$row[0]$row[1]$row[2]$row[3]MODIFICAR
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameActivoOrden aleatorioMODIFICAR
$row[0]$row[1]$row[2]$row[3]MODIFICAR
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
CAJAS DE CORREO DE VOZ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameActivoMensajes NuevosMensajes ViejosDeleteMODIFICAR
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFICAR
\n"; + } + + ###################### # ADD=1000000000000 display all conferences ###################### @@ -19763,7 +24471,7 @@ if ($ADD==999999) echo "\n";echo "\n"; -$stmt="SELECT admin_home_url from system_settings;"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; ?>
-
\n"; echo ""; - $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers;"; + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $servers_to_print = mysql_num_rows($rslt); @@ -19788,52 +24496,97 @@ if ($ADD==999999) $queuemetrics_url_LU = $row[0]; $vtiger_url_LU = $row[1]; + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; ?> - VICIDIAL: Estadísticas e Informes servidor - VICIDIAL: Estadísticas e Informes servidor

+ Estadísticas e Informes servidor + Estadísticas e Informes servidor

+
+       + + Tiempo Real Informes

+ Inbound and Outbound Calling Informes
+ + +
+       + + Agent Informes
+
+ Time Clock Informes
+
+ Other Informes and Links
+ +
+ +

-		 $o)
@@ -19855,7 +24608,7 @@ if ($ADD==999999)
 				}
 			$disk = "$disk%";
 			echo "\n";
-			echo "\n";
+			echo "\n";
 			echo "\n";
 			echo "\n";
 			echo "\n";
@@ -19898,7 +24651,7 @@ echo "CONSTRUCCION: $build\n";
 
 
-1)
 					{
-					$stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
+					$stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
 					$rslt=mysql_query($stmt, $link);
 					$row=mysql_fetch_row($rslt);
 					$Gstate_call_time_id =		"$row[0]";
@@ -20207,7 +24960,6 @@ if (isset($camp_lists))
 			$default_gmt = "$default_gmt'99'";
 			$all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL";
 
-
 			$dial_statuses = preg_replace("/ -$/","",$dial_statuses);
 			$Dstatuses = explode(" ", $dial_statuses);
 			$Ds_to_print = (count($Dstatuses) - 0);
@@ -20221,7 +24973,16 @@ if (isset($camp_lists))
 			$Dsql = preg_replace("/,$/","",$Dsql);
 			if (strlen($Dsql) < 2) {$Dsql = "''";}
 
-			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $fSQL";
+			$DLTsql='';
+			if ($drop_lockout_time > 0)
+				{
+				$DLseconds = ($drop_lockout_time * 3600);
+				$DLseconds = floor($DLseconds);
+				$DLseconds = intval("$DLseconds");
+				$DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )";
+				}
+
+			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL";
 			#$DB=1;
 			if ($DB) {echo "$stmt\n";}
 			$rslt=mysql_query($stmt, $link);
diff --git a/LANG_www/vicidial_es/admin_header.php b/LANG_www/vicidial_es/admin_header.php
index bf7dec3f..8ccea972 100644
--- a/LANG_www/vicidial_es/admin_header.php
+++ b/LANG_www/vicidial_es/admin_header.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -6,6 +6,19 @@
 
 # CHANGES
 # 90310-0709 - First Build
+# 90508-0542 - Added Call Menu option, changed script to use long PHP tags
+# 90514-0605 - Added audio prompt selection functions
+# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option
+# 90531-2339 - Added Dynamic options for Call Menu
+# 90612-0852 - Changed relative links
+# 90635-0943 - Added javascript for dynamic menus in In-Groups
+# 90627-0548 - Added no-agent-no-queue options
+# 90628-1016 - Added Text-to-speech options
+# 90830-2213 - Added Music On Hold options
+# 90904-1534 - Added launch_moh_chooser
+# 90916-2334 - Added Voicemail options
+# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus
+#
 
 
 ######################### SMALL HTML HEADER BEGIN #######################################
@@ -26,7 +39,7 @@ if($short_header)
 	
SERVERDESCRIPCIÓNIPACTLOADCHANDISKSALIENTEEntrantes
$server_id[$o]$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]   Informes  
- \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
English Español
-VICIDIAL logo +VICIDIAL logo ADMINISTRATION
- - 1) { + 1) { ?> - >>>>>>> - >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + - - 1) { if ($sh=='basic') {$sh='list';} @@ -657,201 +968,241 @@ if (strlen($reports_hh) > 1) { else {$listmix_sh=''; $listmix_fc='BLACK';} ?> - > - - > - - > - - > + + > + + > + + 0) { ?> - > - - > - - > - - > + + > + + > + + - > - - > + + - 0) { ?> - - + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Añadir-Supr Número de DNC';} + else {$DNClink = 'Add Number To DNC';} ?> - >>>>>>>>>> - - - 1) { ?> - >>>> - - 0) { ?> - - + 1) { ?> - >>>> - - - 1) { ?> - >>>>>>>>>>>>>>> - - - 1) { ?> - >>>>>>>> - - - 1) { ?> - >>>> - - - 1) { - if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} # pink + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} else {$times_sh=''; $times_fc='BLACK';} - if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} # pink + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} else {$shifts_sh=''; $shifts_fc='BLACK';} - if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} # pink + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} else {$templates_sh=''; $templates_fc='BLACK';} - if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} # pink + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} else {$carriers_sh=''; $carriers_fc='BLACK';} - if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} # pink + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} else {$phones_sh=''; $phones_fc='BLACK';} - if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} # pink + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} else {$server_sh=''; $server_fc='BLACK';} - if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} # pink + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} else {$conference_sh=''; $conference_fc='BLACK';} - if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} # pink + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} else {$settings_sh=''; $settings_fc='BLACK';} - if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} # pink + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} ?> - > - - > - > - > - > - > - > - > - > + > + + > + > + > + > + > + > + > + > + > - 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + - +
WIDTH=160> - SIZE=>Usuarios +
WIDTH=160> + SIZE=>Usuarios
-   >Mostrar Usuarios -
-   >Añadir un nuevo usuario -
-   >Usuario Del Copiar -
-   >Búsqueda de un usuario -
-   >Estadísticas de usuario -
-   >Condición de Usuario -
-   >Hoja de tiempo
+   >Mostrar Usuarios +
+   >Añadir un nuevo usuario +
+   >Usuario Del Copiar +
+   >Búsqueda de un usuario +
+   >Estadísticas de usuario +
+   >Condición de Usuario +
+   >Hoja de tiempo
+   >Territorios de usuario
> - SIZE=>Campañas +
> + SIZE=>Campañas
>   SIZE=>Principales Campañas
>   SIZE=>Estados
>   SIZE=>Teclas rápidas>   SIZE=>Principales Campañas
>   SIZE=>Estados
>   SIZE=>Teclas rápidas
>   SIZE=>Plomo Reciclado
>   SIZE=>Auto-Alt Dial
>   SIZE=>Mezcla lista
>   SIZE=>Plomo Reciclado
>   SIZE=>Auto-Alt Dial
>   SIZE=>Mezcla lista
>   SIZE=>Pausa Códigos
>   SIZE=>Pausa Códigos
> SIZE=>Listas
> SIZE=>Listas
  - > Demuestre Las Listas -
  - > Agregue Una Nueva Lista -
  - > Búsqueda Para Un Plomo -
  - > Agregue El Número a DNC -
  - > Nuevos Plomos De la Carga +
  + > Demuestre Las Listas +
  + > Agregue Una Nueva Lista +
  + > Búsqueda Para Un Plomo +
  + > +
  + > Nuevos Plomos De la Carga
> - SIZE=> Escrituras +
> + SIZE=> Escrituras
  - > Demuestre Las Escrituras -
  - > Agregue Una Nueva Escritura +
  + > Demuestre Las Escrituras +
  + > Agregue Una Nueva Escritura
> SIZE=> Filtros
> SIZE=> Filtros
  - > Demuestre Los Filtros -
  - > Agregue Un Filtro Nuevo +
  + > Demuestre Los Filtros +
  + > Agregue Un Filtro Nuevo
> - SIZE=> En-Grupos +
> + SIZE=> En-Grupos
  - > Demuestre A En-Grupos -
  - > Agregue A Nuevo En-Grupo -
  - > En-Grupo Del Copiar -
  - > Mostrar DIDs -
  - > Añadir un nuevo DID -
  - > CopiarDID +
  + > Demuestre A En-Grupos +
  + > Agregue A Nuevo En-Grupo +
  + > En-Grupo Del Copiar
+
  + > Mostrar DIDs +
  + > Añadir un nuevo DID +
  + > CopiarDID
+
  + > Mostrar menús de llamadas +
  + > Añadir un nuevo menú de llamadas +
  + > Copia de llamadas Menú
> - SIZE=> Grupos De Usuario +
> + SIZE=> Grupos De Usuario
  - > Demuestre A Grupos De Usuario -
  - > Agregue A Nuevo Grupo De Usuario -
  - > Informe Cada hora Del Grupo -
  - > Basura Grupo Cambio +
  + > Demuestre A Grupos De Usuario +
  + > Agregue A Nuevo Grupo De Usuario +
  + > Informe Cada hora Del Grupo +
  + > Basura Grupo Cambio
> - SIZE=> Agentes Alejados +
> + SIZE=> Agentes Alejados
  - > Demuestre Los Agentes Alejados -
  - > Agregue Los Agentes Alejados Nuevos +
  + > Demuestre Los Agentes Alejados +
  + > Agregue Los Agentes Alejados Nuevos
> - SIZE=> Admin +
> + SIZE=> Admin
COLSPAN=2>   - SIZE=> Tiempos De la Llamada
>   - SIZE=> Turnos
>   - SIZE=> Teléfonos
>   - SIZE=> Plantillas
>   - SIZE=> Transportistas
>   - SIZE=> Servidores
>   - SIZE=> Conferencias
>   - SIZE=> Ajustes Del Sistema
>   - SIZE=>Estados De Sistema
COLSPAN=2>   + SIZE=> Tiempos De la Llamada
>   + SIZE=> Turnos
>   + SIZE=> Teléfonos
>   + SIZE=> Plantillas
>   + SIZE=> Transportistas
>   + SIZE=> Servidores
>   + SIZE=> Conferencias
>   + SIZE=> Ajustes Del Sistema
>   + SIZE=>Estados De Sistema
>   + SIZE=> Buzón de Voz
>   + SIZE=> Audio de la tienda
>   + SIZE=> Música en espera
>   + SIZE=> Text To Speech
> - SIZE=> Informes +
> + SIZE=> Informes
 
-
BGCOLOR=#D9E6FE> + BGCOLOR=#D9E6FE> - HEIGHT=15> - + + +
CASERO | Reloj de tiempo | Salir  
HEIGHT=15> + @@ -862,64 +1213,75 @@ if (strlen($reports_hh) > 1) { - 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { ?> - > - > + 1) and (!eregi('campaign',$hh) ) ) { ?> - > - > + - > - > + 1) { ?> -> - +> +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $u++; $call_log .= ""; @@ -363,27 +393,28 @@ else $call_log .= "\n"; $call_log .= "\n"; $call_log .= "\n"; - $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_agent_log records ##### - $stmt="select * from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Alogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); - $y=0; - $agent_log = ''; - $Alog_campaign = ''; - while ($Alogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $agent_log .= ""; @@ -400,24 +431,24 @@ else $agent_log .= "\n"; $campaign_id = $row[5]; - } + } - ##### grab vicidial_closer_log records ##### - $stmt="select * from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Clogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); - $y=0; - $closer_log = ''; - $Clog_campaign = ''; - while ($Clogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $closer_log .= ""; @@ -433,39 +464,43 @@ else $closer_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_list data for lead ##### - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $lead_id = "$row[0]"; - $dispo = "$row[3]"; - $tsr = "$row[4]"; - $vendor_id = "$row[5]"; - $list_id = "$row[7]"; - $gmt_offset_now = "$row[8]"; - $phone_code = "$row[10]"; - $phone_number = "$row[11]"; - $title = "$row[12]"; - $first_name = "$row[13]"; # - $middle_initial = "$row[14]"; - $last_name = "$row[15]"; # - $address1 = "$row[16]"; # - $address2 = "$row[17]"; # - $address3 = "$row[18]"; # - $city = "$row[19]"; # - $state = "$row[20]"; # - $province = "$row[21]"; # - $postal_code = "$row[22]"; # - $country_code = "$row[23]"; # - $gender = "$row[24]"; - $date_of_birth = "$row[25]"; - $alt_phone = "$row[26]"; # - $email = "$row[27]"; # - $security = "$row[28]"; # - $comments = "$row[29]"; # + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; echo "
Información de la llamada: $first_name $last_name - $phone_number

\n"; echo "\n"; @@ -499,45 +534,47 @@ else echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + if ($DS < 1) {$statuses_list .= "\n";} + echo "$statuses_list"; + echo "(with $log_campaign statuses)\n"; echo "\n"; @@ -551,9 +588,9 @@ else echo "


\n"; if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) - { + { ### find any vicidial_callback records for this lead - $stmt="select * from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $CB_to_print = mysql_num_rows($rslt); @@ -593,62 +630,68 @@ else { echo "
No Callback records found
\n"; } + } + } + else + { + echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; } + echo "

\n"; + echo "
\n"; + if ($c > 0) + { + echo "EXTENDED SUPLENTE NÚMEROS DE TELÉFONO PARA ESTE DE PLOMO:\n"; + echo "
CASERO | Reloj de tiempo | Salir  
>   > Demuestre Las Campañas     |     > Agregue Una Nueva Campaña     |     > Campaña Del Copiar     |     > Campañas En tiempo real Sumarias
>   > Demuestre Las Campañas     |     > Agregue Una Nueva Campaña     |     > Campaña Del Copiar     |     > Campañas En tiempo real Sumarias
  > Demuestre Los Tiempos De la Llamada  | > Agregue Un Nuevo Rato De la Llamada  | > Demuestre Los Tiempos De la Llamada Del Estado  | > Agregue Un Nuevo Rato De la Llamada Del Estado
  > Demuestre Los Tiempos De la Llamada  | > Agregue Un Nuevo Rato De la Llamada  | > Demuestre Los Tiempos De la Llamada Del Estado  | > Agregue Un Nuevo Rato De la Llamada Del Estado
  > Mostrar cambios  | > Añadir un nuevo cambio
  > Mostrar cambios  | > Añadir un nuevo cambio
  > Demuestre Los Teléfonos  | > Agregue Un Teléfono Nuevo  | > Teléfono Alias Lista  | > Añadir un nuevo teléfono Alias  | > Grupo Alias Lista  | > Añadir un nuevo grupo de alias
  > Demuestre Los Teléfonos  | > Agregue Un Teléfono Nuevo  | > Teléfono Alias Lista  | > Añadir un nuevo teléfono Alias  | > Grupo Alias Lista  | > Añadir un nuevo grupo de alias
  > Demuestre Las Conferencias   |   > Agregue Una Nueva Conferencia   |   > Demuestre Las Conferencias de VICIDIAL   |   > Agregue Una Nueva Conferencia de VICIDIAL
  > Demuestre Las Conferencias   |   > Agregue Una Nueva Conferencia   |   > Demuestre Las Conferencias de VICIDIAL   |   > Agregue Una Nueva Conferencia de VICIDIAL
  > Demuestre Los Servidores   |   > Agregue Un Servidor Nuevo
  > Demuestre Los Servidores   |   > Agregue Un Servidor Nuevo
  > Mostrar plantillas   |   > Añadir una nueva plantilla
  > Mostrar plantillas   |   > Añadir una nueva plantilla
  > Show Transportistas   |   > Add A New Carrier
  > Show Transportistas   |   > Add A New Carrier
  > Mostrar las entradas TTS   |   > Agregar una nueva entrada TTS
  > Mostrar las entradas del Ministerio de Salud   |   > Agregar una nueva entrada del Ministerio de Salud
  > Show Buzón de Voz Entries   |   > Add A New Buzón de Voz Entry
  > Ajustes Del Sistema
  > Ajustes Del Sistema
  >Estados De Sistema   |   >Categorías Del Estado   |   >Códigos de estado de CC
  >Estados De Sistema   |   >Categorías Del Estado   |   >Códigos de estado de CC
  >Estadísticas de usuario   |   >Condición de Usuario   |   >Hoja de tiempo   |   >Situación días
  >Estadísticas de usuario   |   >Condición de Usuario   |   >Hoja de tiempo   |   >Situación días
>  
>  
-0) { - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; if ($WeBRooTWritablE > 0) { @@ -206,23 +214,22 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Registro del Lead modificado +ADMINISTRATION: Registro del Lead modificado
-VICIDIAL ADMIN: Registro del Lead modificado
\n"; +ADMINISTRATION: Registro del Lead modificado
\n"; if ($end_call > 0) -{ - + { ### update the lead record in the vicidial_list table - $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "Información modificada

\n"; - echo "\n"; + echo "Información modificada

\n"; + echo "
\n"; ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -233,69 +240,69 @@ if ($end_call > 0) $rslt=mysql_query($stmt, $link); if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($dispo == 'CALLBK') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($status == 'DNC') ) - { + { ### add lead to the internal DNC list $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; - } + } ### update last record in vicidial_log table if (($dispo != $status) and ($modify_logs > 0)) - { + { $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_closer_log table if (($dispo != $status) and ($modify_closer_logs > 0)) - { + { $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_agent_log table if (($dispo != $status) and ($modify_agent_logs > 0)) - { + { $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } if ($add_closer_record > 0) - { + { ### insert a NEW record to the vicidial_closer_log table $stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . mysql_real_escape_string($status) . "','" . mysql_real_escape_string($phone_code) . "','" . mysql_real_escape_string($phone_number) . "','$PHP_AUTH_USER','" . mysql_real_escape_string($comments) . "','Y')"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); + } + + } - - -} else -{ + { if ($CBchangeUSERtoANY == 'YES') { @@ -334,24 +341,47 @@ else $lead_count = $row[0]; if ($lead_count > 0) - { - - ##### grab vicidial_log records ##### - $stmt="select * from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); - - $u=0; - $call_log = ''; - $log_campaign = ''; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (strlen($log_campaign)<1) {$log_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$row[3] $row[2] $row[1] $row[15]
$row[15]   $row[10]
  $row[17]
  $row[17]
Alt Phone :
Email :
Seguridad:
Rank :
Owner :
Comentarios :
Disposición:
Disposición: (with $log_campaign statuses)
Modificarvicidial log
\n"; + echo "\n"; - } - else - { - echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; -# echo "Close this window\n

\n"; - } + echo "$alts_output\n"; + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } - -echo "

\n"; - -echo "
\n"; - -echo "LLAMADAS A ESTE LEAD:\n"; -echo "\n"; -echo "\n"; + echo "LLAMADAS A ESTE LEAD:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAÑA LIST LEAD HANGUP REASON
\n"; + echo "\n"; echo "$call_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR CAMPAÑA LIST LEAD HANGUP REASON PHONE
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "CLOSER RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAÑA LIST LEAD WAIT HANGUP REASON
\n"; + echo "\n"; echo "$closer_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR CAMPAÑA LIST LEAD WAIT HANGUP REASON
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "AGENTE LOG RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "AGENTE LOG RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "\n"; - echo "$agent_log\n"; + echo "$agent_log\n"; -echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "RECORDINGS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; + echo "\n"; -$stmt="select * from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; -$rslt=mysql_query($stmt, $link); -$logs_to_print = mysql_num_rows($rslt); + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); $u=0; while ($logs_to_print > $u) @@ -707,12 +750,8 @@ $logs_to_print = mysql_num_rows($rslt); } -echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; - - - - -} + echo "
\n"; + } $ENDtime = date("U"); @@ -731,15 +770,9 @@ echo "\n\n\n


\nScript runtime: $RUNtime seconds
"; - - - - - - diff --git a/LANG_www/vicidial_es/admin_search_lead.php b/LANG_www/vicidial_es/admin_search_lead.php index 01229408..dd9c8df9 100644 --- a/LANG_www/vicidial_es/admin_search_lead.php +++ b/LANG_www/vicidial_es/admin_search_lead.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -18,6 +18,9 @@ # 90121-0500 - Added filter for phone to remove non-digits # 90309-1828 - Added admin_log logging # 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR # require("dbconnect.php"); @@ -43,21 +46,25 @@ if (isset($_GET["user"])) {$user=$_GET["user"];} elseif (isset($_POST["user"])) {$user=$_POST["user"];} if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} $STARTtime = date("U"); $TODAY = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner'; - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} @@ -66,25 +73,24 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - - if($auth>0) + if ($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; if ($WeBRooTWritablE > 0) { @@ -106,8 +112,8 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Buscar Lead -<? +<title>ADMINISTRATION: Buscar Lead +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -131,12 +137,8 @@ $subcamp_color = '#C6C6C6'; require("admin_header.php"); - - - echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; - if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) { echo date("l F j, Y G:i:s A"); @@ -144,7 +146,8 @@ if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and echo "<form method=post name=search action=\"$PHP_SELF\">\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<b>Por favor, Introduzca un:<br> Vendor ID(código del vendedor del Lead): <input type=text name=vendor_id size=10 maxlength=10> or \n"; - echo "<br><b>un número de teléfono de casa: <input type=text name=phone size=20 maxlength=16> or\n"; + echo "<br><b>un número de teléfono de casa: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; echo "<br><b>ID del Lead: <input type=text name=lead_id size=10 maxlength=10> or\n"; echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; @@ -160,19 +163,26 @@ else if ($vendor_id) { - $stmt="SELECT * from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; } else { if ($phone) { - $stmt="SELECT * from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' order by modify_date desc limit 1000"; + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } } else { if ($lead_id) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; } else { @@ -195,7 +205,7 @@ else if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; } - $stmt="SELECT * from vicidial_list where $statusSQL $list_idSQL $userSQL order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; } else { @@ -205,14 +215,38 @@ else } } } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + if ($DB) { echo "\n\n$stmt\n\n"; } - - $rslt=mysql_query($stmt, $link); + + $rslt=mysql_query("$stmt", $link); $results_to_print = mysql_num_rows($rslt); - if ($results_to_print < 1) + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) { echo date("l F j, Y G:i:s A"); echo "\n<br><br><center>\n"; @@ -270,7 +304,7 @@ else $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); } diff --git a/LANG_www/vicidial_es/audio_store.php b/LANG_www/vicidial_es/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/LANG_www/vicidial_es/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_campaigns='1'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/LANG_www/vicidial_es/call_report_export.php b/LANG_www/vicidial_es/call_report_export.php index b5c04d72..77a49b05 100644 --- a/LANG_www/vicidial_es/call_report_export.php +++ b/LANG_www/vicidial_es/call_report_export.php @@ -1,4 +1,4 @@ -<? +<?php # call_report_export.php # # displays options to select for downloading of leads and their vicidial_log @@ -10,6 +10,10 @@ # CHANGES # # 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name # require("dbconnect.php"); @@ -37,8 +41,8 @@ if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} -if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} - elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (strlen($shift)<2) {$shift='ALL';} @@ -48,12 +52,10 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -72,7 +74,7 @@ $auth=$row[0]; { # Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); # Header("HTTP/1.0 401 Unauthorized"); - echo "Nombre y contraseña inválidos del usuario or no export report permission: |$PHP_AUTH_USER|\n"; + echo "Invalid Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; exit; } @@ -206,14 +208,14 @@ if ($run_export > 0) echo "<BR>\n"; echo "$status_ct|$status_string|$status_SQL\n"; echo "<BR>\n"; - exit; } - + $outbound_calls=0; + $export_rows=''; + $k=0; if ($RUNcampaign > 0) { - $export_campaign_rows=''; - $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $outbound_to_print = mysql_num_rows($rslt); @@ -229,20 +231,23 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_campaign_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; + $outbound_calls++; } } } if ($RUNgroup > 0) { - $export_group_rows=''; - $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmtA, $link); if ($DB) {echo "$stmt\n";} $inbound_to_print = mysql_num_rows($rslt); - if ($inbound_to_print < 1) + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) { echo "There are no inbound calls during this time period for these parameters\n"; exit; @@ -254,8 +259,11 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_group_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; } } } @@ -267,7 +275,7 @@ if ($run_export > 0) $SQL_log = "$stmt|$stmtA|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN PIDE INFORME DE EXPORTACIÓN', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); @@ -284,7 +292,48 @@ if ($run_export > 0) ob_clean(); flush(); - echo "$export_campaign_rows$export_group_rows"; + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } } else { @@ -397,7 +446,7 @@ else echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; - echo "<TITLE>VICIDIAL: Pide Informe exportación"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -422,19 +471,19 @@ else echo "<CENTER><BR>\n"; - echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Pide Informe exportación</B></FONT><BR><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; - echo "<TABLE Border=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Rango de Fecha:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; echo "<BR>to<BR>\n"; echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; - echo "<font class=\"select_bold\"><B>Campañas:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; $o=0; while ($campaigns_to_print > $o) @@ -448,7 +497,7 @@ else echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Grupos De entrada:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; $o=0; while ($groups_to_print > $o) @@ -461,7 +510,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Listas:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; $o=0; while ($lists_to_print > $o) @@ -474,7 +523,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Estados:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; $o=0; while ($statuses_to_print > $o) @@ -487,7 +536,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Grupos De Usuario:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; $o=0; while ($user_groups_to_print > $o) @@ -503,7 +552,7 @@ else echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; - echo "<INPUT TYPE=Submit NAME=ENVIAR VALUE=ENVIAR>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "</TD></TR></TABLE>\n"; echo "</FORM>\n\n"; diff --git a/LANG_www/vicidial_es/dbconnect.php b/LANG_www/vicidial_es/dbconnect.php index dae8cc7a..dca45485 100644 --- a/LANG_www/vicidial_es/dbconnect.php +++ b/LANG_www/vicidial_es/dbconnect.php @@ -1,10 +1,10 @@ -<? +<?php # -# dbconnect.php version 2.0.5 +# dbconnect.php version 2.2.0 # # database connection settings and some global web settings # -# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { @@ -16,6 +16,8 @@ foreach ($DBCagc as $DBCline) {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} if (ereg("^PATHweb", $DBCline)) {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} if (ereg("^VARDB_server", $DBCline)) {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} if (ereg("^VARDB_database", $DBCline)) diff --git a/LANG_www/vicidial_es/fcstats.php b/LANG_www/vicidial_es/fcstats.php index c51f9c9e..d5b9a178 100644 --- a/LANG_www/vicidial_es/fcstats.php +++ b/LANG_www/vicidial_es/fcstats.php @@ -1,4 +1,4 @@ -<? +<?php # fcstats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # 71228-1140 - added percentages, cross-day start/stop # 80328-1139 - adapted for basic fronter/closer stats # 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -80,9 +81,9 @@ while ($i < $groups_to_print) --> </STYLE> -<? +<?php echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; -echo "<TITLE>VICIDIAL: In-Group Fronter-Closer Stats\n"; +echo "In-Group Fronter-Closer Stats Report\n"; $short_header=1; @@ -147,7 +148,7 @@ if ($shift == 'ALL') $query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0])); } -echo "VICIDIAL: In-Group Fronter-Closer Stats $NOW_TIME\n"; +echo "In-Group Fronter-Closer Stats Report $NOW_TIME\n"; echo "\n"; echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n"; diff --git a/LANG_www/vicidial_es/functions.php b/LANG_www/vicidial_es/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/LANG_www/vicidial_es/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/LANG_www/vicidial_es/group_hourly_stats.php b/LANG_www/vicidial_es/group_hourly_stats.php index 6d90be87..37bd9465 100644 --- a/LANG_www/vicidial_es/group_hourly_stats.php +++ b/LANG_www/vicidial_es/group_hourly_stats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 60620-1014 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -26,14 +27,34 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { @@ -106,8 +127,8 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Stats Cada hora Del Grupo -<? +<title>ADMINISTRATION: Stats Cada hora Del Grupo +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -133,12 +154,12 @@ require("admin_header.php"); <CENTER> -<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Stats Cada hora Del Grupo <? echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Stats Cada hora Del Grupo <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> -<? +<?php if ( ($group) and ($status) and ($date_with_hour) ) { @@ -223,7 +244,7 @@ echo "<br><br>\n"; echo "<input type=hidden name=DB value=$DB>\n"; echo "group: <select size=1 name=group>\n"; - $stmt="SELECT * from vicidial_user_groups order by user_group"; + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; $rslt=mysql_query($stmt, $link); $groups_to_print = mysql_num_rows($rslt); $o=0; @@ -260,7 +281,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_es/list_download.php b/LANG_www/vicidial_es/list_download.php index f53e1a36..98e1aea8 100644 --- a/LANG_www/vicidial_es/list_download.php +++ b/LANG_www/vicidial_es/list_download.php @@ -1,4 +1,4 @@ -<? +<?php # list_download.php # # downloads the entire contents of a vicidial list ID to a flat text file @@ -9,6 +9,8 @@ # CHANGES # # 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields # require("dbconnect.php"); @@ -111,7 +113,7 @@ header('Pragma: public'); ob_clean(); flush(); -$stmt="select * from vicidial_list where list_id='$list_id';"; +$stmt="select lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $leads_to_print = mysql_num_rows($rslt); @@ -120,7 +122,7 @@ while ($i < $leads_to_print) { $row=mysql_fetch_row($rslt); - echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\r\n"; + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; $i++; } diff --git a/LANG_www/vicidial_es/listloader.pl b/LANG_www/vicidial_es/listloader.pl index b8f9e064..052d93e0 100644 --- a/LANG_www/vicidial_es/listloader.pl +++ b/LANG_www/vicidial_es/listloader.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader.pl version 2.0.5 +# listloader.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -19,65 +19,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][22]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } if (length($forcelistid) > 0) { @@ -369,10 +380,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -380,7 +438,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -406,7 +464,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -426,7 +484,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -446,7 +504,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -466,7 +524,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -565,14 +623,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -591,7 +649,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_es/listloaderMAIN.php b/LANG_www/vicidial_es/listloaderMAIN.php index c247c957..33889c3c 100644 --- a/LANG_www/vicidial_es/listloaderMAIN.php +++ b/LANG_www/vicidial_es/listloaderMAIN.php @@ -1,7 +1,7 @@ -<? +<?php # listloaderMAIN.php # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # this is the main frame page for the lead loading section. This is where you # would upload a file and have it inserted into vicidial_list @@ -9,6 +9,7 @@ # changes: # 60620-1149 - Added variable filtering to eliminate SQL injection attack threat # 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); diff --git a/LANG_www/vicidial_es/listloader_rowdisplay.pl b/LANG_www/vicidial_es/listloader_rowdisplay.pl index bbfc8170..9caaeab2 100644 --- a/LANG_www/vicidial_es/listloader_rowdisplay.pl +++ b/LANG_www/vicidial_es/listloader_rowdisplay.pl @@ -1,14 +1,15 @@ #!/usr/bin/perl # -# listloader_rowdisplay.pl version 2.0.5 +# listloader_rowdisplay.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES # # 60811-1232 - Changed to DBI # 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields # ### begin parsing run-time options ### @@ -116,7 +117,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { @xls_row=split(/\|/, $var_str); -$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1;"; +$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; diff --git a/LANG_www/vicidial_es/listloader_super.pl b/LANG_www/vicidial_es/listloader_super.pl index 3af97f37..9b09bba7 100644 --- a/LANG_www/vicidial_es/listloader_super.pl +++ b/LANG_www/vicidial_es/listloader_super.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader_super.pl version 2.0.5 +# listloader_super.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -18,65 +18,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### use Spreadsheet::ParseExcel; @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } @@ -371,10 +382,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -382,7 +440,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -408,7 +466,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -428,7 +486,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -448,7 +506,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -468,7 +526,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -567,14 +625,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -593,7 +651,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_es/new_listloader_superL.php b/LANG_www/vicidial_es/new_listloader_superL.php index fcb7a70a..d53e77dd 100644 --- a/LANG_www/vicidial_es/new_listloader_superL.php +++ b/LANG_www/vicidial_es/new_listloader_superL.php @@ -1,4 +1,4 @@ -<? +<?php # new_listloader_superL.php # # Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 @@ -25,11 +25,15 @@ # 81011-2009 - a few bug fixes # 90309-1831 - Added admin_log logging # 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. -$version = '2.0.5-29'; -$build = '90310-2128'; +$version = '2.2.0-33'; +$build = '91112-0616'; require("dbconnect.php"); @@ -39,50 +43,52 @@ require("dbconnect.php"); #mysql_select_db("asterisk"); #$WeBServeRRooT = '/home/www/htdocs'; +$US='_'; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $leadfile=$_FILES["leadfile"]; $LF_orig = $_FILES['leadfile']['name']; $LF_path = $_FILES['leadfile']['tmp_name']; -if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} - elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} - elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} - elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} -if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} - elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} - elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} -if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} - elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} -if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} - elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} - elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} -if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} - elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} -if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} - elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} -if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} - elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} - elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} - elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} - elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} -if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} @@ -91,21 +97,25 @@ if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"]; if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} - elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} -if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} - elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} -if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} - elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} -if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} - elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} - elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} -if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} - elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} $list_id_override = (preg_replace("/\D/","",$list_id_override)); if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} @@ -137,11 +147,16 @@ while ($i < $qm_conf_ct) ########################################### if ($non_latin < 1) -{ -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$list_id_override = ereg_replace("[^0-9]","",$list_id_override); -} + { + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + $list_id_override = ereg_replace("[^0-9]","",$list_id_override); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } $STARTtime = date("U"); $TODAY = date("Y-m-d"); @@ -317,11 +332,11 @@ function ParseFileName() { } } </script> -<title>VICIDIAL ADMIN: Lead Loader +ADMINISTRATION: Lead Loader -
"; ?> - method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> - - + method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + - + - + - + - + @@ -357,6 +372,8 @@ echo "
Cargar Leads de este archivo:
ID De la Lista Override: (Solamente números or leave blank for values in the file) (Solamente números or leave blank for values in the file)
Teléfono Código Sobrescribir: (Solamente números or leave blank for values in the file) (Solamente números or leave blank for values in the file)
Disposición de archivo a utilizar:VICIDIAL Estándar    Disposición de encargoStandard Format    Disposición de encargo
Cheque Del Duplicado Del Plomo:
@@ -366,11 +383,11 @@ echo "
"; + +
- +
";
        
        DE NUEVO AL ADMINLIST LOADER-     VERSIÓN:     CONSTRUCCION:    
        DE NUEVO AL ADMINLIST LOADER-     VERSIÓN:     CONSTRUCCION:    
- + -document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; @@ -446,6 +463,8 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; if (strlen($list_id_override)>0) { @@ -542,18 +561,61 @@ echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -561,7 +623,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -579,7 +641,7 @@ echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -603,13 +665,15 @@ echo "
"; { print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

\n"; } - # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; $dupcheckCLI=''; $postalgmtCLI=''; if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} - passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } else { # copy($leadfile, "./vicidial_temp_file.csv"); $file=fopen("$lead_file", "r"); @@ -662,6 +726,10 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} if (strlen($list_id_override)>0) { @@ -756,19 +824,62 @@ echo "\n"; echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -776,7 +887,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -793,7 +904,7 @@ echo "\r\n"; print " \r\n"; - $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1", $link); + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1", $link); if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) @@ -1349,6 +1551,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } @@ -1425,7 +1629,7 @@ if ($leadfile) { -4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1461,7 +1665,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1476,7 +1680,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1491,7 +1695,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1507,7 +1711,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) diff --git a/LANG_www/vicidial_es/non_agent_api.php b/LANG_www/vicidial_es/non_agent_api.php index 2d525f39..b64ab4c0 100644 --- a/LANG_www/vicidial_es/non_agent_api.php +++ b/LANG_www/vicidial_es/non_agent_api.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -19,10 +19,21 @@ # 80909-2012 - Added support for campaign-specific DNC lists # 80910-0020 - Added support for multi-alt-phones, added version function # 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function # -$version = '2.0.5-5'; -$build = '90118-1056'; +$version = '2.2.0-16'; +$build = '91216-0331'; require("dbconnect.php"); @@ -99,7 +110,24 @@ if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phon elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} if (isset($_GET["source"])) {$source=$_GET["source"];} elseif (isset($_POST["source"])) {$source=$_POST["source"];} - +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -109,20 +137,18 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) { + $DB=ereg_replace("[^0-9]","",$DB); $user=ereg_replace("[^0-9a-zA-Z]","",$user); $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); @@ -174,6 +200,19 @@ if ($non_latin < 1) $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); } if (strlen($list_id)<1) {$list_id='999';} @@ -181,6 +220,7 @@ if (strlen($phone_code)<1) {$phone_code='1';} $USarea = substr($phone_number, 0, 3); if (strlen($hopper_priority)<1) {$hopper_priority=0;} if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} $StarTtime = date("U"); $NOW_DATE = date("Y-m-d"); @@ -249,6 +289,847 @@ if ($function == 'version') api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); exit; } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -892,6 +1003,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -986,19 +1099,62 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} - $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1006,7 +1162,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1024,7 +1180,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1054,6 +1210,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); @@ -1118,6 +1276,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -1212,19 +1372,61 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1232,7 +1434,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1249,7 +1451,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1269,7 +1471,7 @@ if ($leadfile) { print " Datos del archivo
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + @@ -269,8 +1150,7 @@ if ($function == 'add_lead') } else { - $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $modify_leads=$row[0]; @@ -297,10 +1177,19 @@ if ($function == 'add_lead') } else { - if ($dnc_check == 'Y') + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -315,10 +1204,18 @@ if ($function == 'add_lead') exit; } } - if ($campaign_dnc_check == 'Y') + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -333,14 +1230,196 @@ if ($function == 'add_lead') exit; } } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + ### get current gmt_offset of the phone_number $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); ### insert a new lead in the system with this phone number - $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; - if ($DB) {echo "$stmt\n";} + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $affected_rows = mysql_affected_rows($link); if ($affected_rows > 0) @@ -358,7 +1437,7 @@ if ($function == 'add_lead') $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; $map = explode('!', $multi_alt_phones); $map_count = count($map); - if ($DB) {echo "multi-al-entry: $a|$map_count|$multi_alt_phones\n";} + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} $g++; $r=0; $s=0; $inserted_alt_phones=0; while ($r < $map_count) @@ -377,7 +1456,7 @@ if ($function == 'add_lead') $ALTm_phone_number[$r] = $ncn[0]; $ALTm_phone_note[$r] = $ncn[2]; $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Zaffected_rows = mysql_affected_rows($link); $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); @@ -395,7 +1474,6 @@ if ($function == 'add_lead') $dialable=1; $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; - if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $local_call_time=$row[0]; @@ -420,7 +1498,7 @@ if ($function == 'add_lead') ### insert record into vicidial_hopper for alt_phone call attempt $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Haffected_rows = mysql_affected_rows($link); if ($Haffected_rows > 0) @@ -457,6 +1535,9 @@ if ($function == 'add_lead') exit; } } +################################################################################ +### END add_lead +################################################################################ @@ -474,13 +1555,13 @@ api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$resul if ($format=='debug') -{ -$ENDtime = date("U"); -$RUNtime = ($ENDtime - $StarTtime); -echo "\n"; -echo "\n\n\n"; -} - + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + exit; @@ -502,7 +1583,7 @@ if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -523,7 +1604,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -538,7 +1619,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -553,7 +1634,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -569,7 +1650,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1118,134 +2199,134 @@ return $gmt_offset; ##### DETERMINE IF LEAD IS DIALABLE ##### function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) -{ -$dialable=0; + { + $dialable=0; -$pzone=3600 * $gmt_offset; -$pmin=(gmdate("i", time() + $pzone)); -$phour=( (gmdate("G", time() + $pzone)) * 100); -$pday=gmdate("w", time() + $pzone); -$tz = sprintf("%.2f", $p); -$GMT_gmt = "$tz"; -$GMT_day = "$pday"; -$GMT_hour = ($phour + $pmin); + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); -$stmt="SELECT * FROM vicidial_call_times where call_time_id='$local_call_time';"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); -$rowx=mysql_fetch_row($rslt); -$Gct_default_start = "$rowx[3]"; -$Gct_default_stop = "$rowx[4]"; -$Gct_sunday_start = "$rowx[5]"; -$Gct_sunday_stop = "$rowx[6]"; -$Gct_monday_start = "$rowx[7]"; -$Gct_monday_stop = "$rowx[8]"; -$Gct_tuesday_start = "$rowx[9]"; -$Gct_tuesday_stop = "$rowx[10]"; -$Gct_wednesday_start = "$rowx[11]"; -$Gct_wednesday_stop = "$rowx[12]"; -$Gct_thursday_start = "$rowx[13]"; -$Gct_thursday_stop = "$rowx[14]"; -$Gct_friday_start = "$rowx[15]"; -$Gct_friday_stop = "$rowx[16]"; -$Gct_saturday_start = "$rowx[17]"; -$Gct_saturday_stop = "$rowx[18]"; -$Gct_state_call_times = "$rowx[19]"; + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; -if ($GMT_day==0) #### Sunday local time - { - if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + if ($GMT_day==0) #### Sunday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==1) #### Monday local time { - if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) - {$dialable=1;} + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==1) #### Monday local time - { - if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + if ($GMT_day==2) #### Tuesday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==3) #### Wednesday local time { - if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) - {$dialable=1;} + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==2) #### Tuesday local time - { - if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + if ($GMT_day==4) #### Thursday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==5) #### Friday local time { - if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) - {$dialable=1;} + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==3) #### Wednesday local time - { - if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + if ($GMT_day==6) #### Saturday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } } - else - { - if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==4) #### Thursday local time - { - if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==5) #### Friday local time - { - if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==6) #### Saturday local time - { - if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) - {$dialable=1;} - } - } -return $dialable; -} + return $dialable; + } /* $ct_states = ''; @@ -1261,7 +2342,7 @@ return $dialable; { if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) { - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $Gstate_call_time_id = "$row[0]"; @@ -1405,15 +2486,15 @@ return $dialable; ##### Logging ##### function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) -{ -if ($api_logging > 0) { - $NOW_TIME = date("Y-m-d H:i:s"); -# api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); - $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; - $rslt=mysql_query($stmt, $link); + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; } -return 1; -} ?> diff --git a/LANG_www/vicidial_es/remote_dispo.php b/LANG_www/vicidial_es/remote_dispo.php index 8483cc61..203a7c0f 100644 --- a/LANG_www/vicidial_es/remote_dispo.php +++ b/LANG_www/vicidial_es/remote_dispo.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # this is the remote agent disposition screen for calls sent to remote agents. # This allows the remote agent to modify customer information and disposition @@ -10,6 +10,7 @@ # CHANGES # # 60619-1626 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags # @@ -160,14 +161,14 @@ $browser = getenv("HTTP_USER_AGENT"); REMOTE VICIDIAL: Disposición De la Llamada -\n"; ?>
-"; @@ -202,7 +203,7 @@ else if ($lead_count > 0) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); @@ -265,7 +266,7 @@ else echo "
Comentarios :
Disposición: +
Reloj de tiempo Record Edit for  
-
Reloj de tiempo Record Edit for  
  \n"; @@ -436,7 +439,7 @@ if ($modify_timeclock_log > 0) } -echo "VICIDIAL Hoja de tiempo\n"; +echo "Agent Hoja de tiempo\n"; echo " - Estadísticas de usuario\n"; echo " - Modificar Usuario\n"; @@ -468,7 +471,7 @@ echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; - LICENSE: AGPLv2 @@ -9,6 +9,7 @@ # 80617-1416 - Fixed totals tally bug # 80707-0754 - Fixed groups bug, changed formatting # 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -41,7 +42,7 @@ if (strlen($order)<2) {$order='hours_down';} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -49,8 +50,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -134,9 +136,9 @@ while ($i < $user_groups_to_print) -VICIDIAL: UsuarioReloj de tiempo Report +<TITLE>UsuarioReloj de tiempo Report -<? +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -240,7 +242,7 @@ echo "</FORM>\n\n"; echo "<PRE><FONT SIZE=3>\n"; -echo "VICIDIAL: UsuarioReloj de tiempo Report $NOW_TIME\n"; +echo "UsuarioReloj de tiempo Report $NOW_TIME\n"; echo "Time range: $query_date to $end_date\n\n"; echo "---------- USER TIMECLOCK DETAILS -------------\n"; diff --git a/LANG_www/vicidial_es/timeclock_status.php b/LANG_www/vicidial_es/timeclock_status.php index b67b6d0d..6e4b5c14 100644 --- a/LANG_www/vicidial_es/timeclock_status.php +++ b/LANG_www/vicidial_es/timeclock_status.php @@ -1,4 +1,4 @@ -<? +<?php # timeclock_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 80602-0201 - First Build # 80603-1500 - formatting changes # 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -35,7 +36,7 @@ if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -43,9 +44,11 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $timeclock_end_of_day = $row[2]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $i++; } ##### END SETTINGS LOOKUP ##### @@ -141,8 +144,8 @@ if (strlen($user_group) > 0) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN:Reloj de tiempo Status -<? +<title>ADMINISTRATION:Reloj de tiempo Status +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -169,8 +172,8 @@ require("admin_header.php"); ?> <CENTER> <TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> -<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Reloj de tiempo Status for <? echo $user_group ?></TD><TD ALIGN=RIGHT>             -<? +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Reloj de tiempo Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>GRUPO DE USUARIOS</a>\n"; ?> @@ -179,7 +182,7 @@ echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARI -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -352,6 +355,7 @@ while ($users_to_print > $o) {$bgcolor[$o]='bgcolor="#66CC66"';} # green } + $s++; echo "<tr $bgcolor[$o]>"; echo "<td><font size=1>$s</td>"; echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; @@ -365,8 +369,6 @@ while ($users_to_print > $o) if (strlen($Tstatus[$o])>0) {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} - - $s++; } $o++; } @@ -410,7 +412,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; @@ -534,7 +536,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_es/user_group_bulk_change.php b/LANG_www/vicidial_es/user_group_bulk_change.php index e078a740..be78d5c1 100644 --- a/LANG_www/vicidial_es/user_group_bulk_change.php +++ b/LANG_www/vicidial_es/user_group_bulk_change.php @@ -1,4 +1,4 @@ -<? +<?php # user_group_bulk_change.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # 81119-0918 - First build # 90309-1830 - Added admin_log logging # 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -31,7 +32,7 @@ if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -39,8 +40,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -102,7 +104,7 @@ $browser = getenv("HTTP_USER_AGENT"); } } -$stmt="select * from vicidial_user_groups order by user_group desc;"; +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -121,8 +123,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: Grupo de Usuarios de Basura Cambio -<? +<title>ADMINISTRATION: Grupo de Usuarios de Basura Cambio +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -155,7 +157,7 @@ require("admin_header.php"); -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -259,7 +261,7 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_es/user_stats.php b/LANG_www/vicidial_es/user_stats.php index c4d0ca10..eb13efd1 100644 --- a/LANG_www/vicidial_es/user_stats.php +++ b/LANG_www/vicidial_es/user_stats.php @@ -1,4 +1,4 @@ -<? +<?php # user_stats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -17,11 +17,31 @@ # 90208-0504 - Added link to multi-day report and fixed call status summary section # 90305-1226 - Added user_call_log manual dial logs # 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -50,32 +70,33 @@ $TODAY = date("Y-m-d"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { if($auth>0) { - $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname=$row[0]; + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); fclose($fp); @@ -92,7 +113,6 @@ $browser = getenv("HTTP_USER_AGENT"); $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $full_name = $row[0]; - } @@ -102,8 +122,8 @@ $browser = getenv("HTTP_USER_AGENT"); <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: Estadísticas de usuario -<? +<title>ADMINISTRATION: Estadísticas de usuario +<?php ##### BEGIN Set variables to make header show properly ##### @@ -129,12 +149,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Estadísticas de usuario for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Estadísticas de usuario for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -152,7 +172,7 @@ echo "<input type=submit name=submit value=submit>\n"; echo "           $user - $full_name<BR><BR>\n"; echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Hoja de tiempo</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Hoja de tiempo</a>\n"; echo " | <a href=\"./user_status.php?user=$user\">Condición de Usuario</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modificar Usuario</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Usuario multiple day status detail report</a>"; @@ -166,10 +186,10 @@ echo "<br><center>\n"; ##### vicidial agent talk time and status ##### -echo "<B>VICIDIAL TIEMPO Y ESTADO DE CONVERSACIÓN:</B>\n"; +echo "<B>AGENTE TIEMPO Y ESTADO DE CONVERSACIÓN:</B>\n"; echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ESTADO</td><td align=right><font size=2>CUENTA</td><td align=right><font size=2>HORAS:MINUTOS</td></tr>\n"; +echo "<tr><td><font size=2>ESTADO</td><td align=right><font size=2>CUENTA</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by status order by status"; $rslt=mysql_query($stmt, $link); @@ -225,34 +245,20 @@ while ($o < $p) else {$bgcolor='bgcolor="#9BB9FB"';} - $call_seconds = $call_sec[$o]; - $call_hours = ($call_seconds / 3600); - $call_hours_int = round($call_hours, 2); - $call_hours_int = intval("$call_hours_int"); - $call_minutes = ($call_hours - $call_hours_int); - $call_minutes = ($call_minutes * 60); - $call_minutes_int = round($call_minutes, 0); - if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} + $call_hours_minutes = sec_convert($call_sec[$o],'H'); echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; echo "<td align=right><font size=2> $counts[$o]</td>\n"; - echo "<td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; $total_calls = ($total_calls + $counts[$o]); $total_sec = ($total_sec + $call_sec[$o]); $call_seconds=0; $o++; } -$call_seconds = $total_sec; -$call_hours = ($call_seconds / 3600); -$call_hours_int = round($call_hours, 2); -$call_hours_int = intval("$call_hours_int"); -$call_minutes = ($call_hours - $call_hours_int); -$call_minutes = ($call_minutes * 60); -$call_minutes_int = round($call_minutes, 0); -if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} +$call_hours_minutes = sec_convert($total_sec,'H'); -echo "<tr><td><font size=2>LLAMADAS TOTALES </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; +echo "<tr><td><font size=2>LLAMADAS TOTALES </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -262,9 +268,9 @@ echo "<br><br>\n"; echo "<center>\n"; -echo "<B>VICIDIAL AGENTE TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<B>AGENTE TIEMPO LOGIN/LOGOUT:</B>\n"; echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> CAMPAÑA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HORAS:MINUTOS</td></tr>\n"; +echo "<tr><td><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> CAMPAÑA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group from vicidial_user_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59'"; $rslt=mysql_query($stmt, $link); @@ -294,21 +300,17 @@ echo "<tr><td><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><t { if ($event_start_seconds) { + $event_stop_seconds = $row[1]; $event_seconds = ($event_stop_seconds - $event_start_seconds); $total_login_time = ($total_login_time + $event_seconds); - $event_hours = ($event_seconds / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($event_seconds,'H'); + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $row[2]</td>\n"; echo "<td align=right><font size=2> $row[3]</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; $event_start_seconds=''; $event_stop_seconds=''; } @@ -327,19 +329,13 @@ echo "<tr><td><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><t $o++; } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); echo "<tr><td><font size=2>TOTAL</td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int</td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -361,7 +357,7 @@ echo "<center>\n"; echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n"; echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HORAS:MINUTOS</td></tr>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; if ($DB>0) {echo "|$stmt|";} @@ -397,20 +393,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f { $login_sec = $row[3]; $total_login_time = ($total_login_time + $login_sec); - $event_hours = ($login_sec / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($login_sec,'H'); + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; echo "<td align=right><font size=2>$manager_edit</td>"; echo "<td align=right><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $TC_log_date</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int"; + echo "<td align=right><font size=2> $event_hours_minutes"; if ($DB) {echo " - $total_login_time - $login_sec";} echo "</td></tr>\n"; } @@ -422,26 +413,21 @@ if (strlen($login_sec)<1) $total_login_time = ($total_login_time + $login_sec); if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); - if ($DB) {echo " - $total_login_time - $login_sec";} +if ($DB) {echo " - $total_login_time - $login_sec";} echo "<tr><td align=right><font size=2> </td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; echo "</TABLE></center>\n"; + ##### closer in-group selection logs ##### echo "<br><br>\n"; @@ -450,29 +436,30 @@ echo "<center>\n"; echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAÑA</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td></tr>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAÑA</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; - $stmt="select * from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[2]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[3]</td>\n"; - echo "<td align=left><font size=2> $row[4] </td>\n"; - echo "</tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; } @@ -485,31 +472,31 @@ echo "<B>SALIENTE CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAÑA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[4]</td>"; - echo "<td align=left><font size=2> $row[7]</td>\n"; - echo "<td align=left><font size=2> $row[8]</td>\n"; - echo "<td align=left><font size=2> $row[10] </td>\n"; - echo "<td align=right><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[14] </td>\n"; - echo "<td align=right><font size=2> $row[2] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; - echo "<td align=right><font size=2> $row[15] </td></tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; } @@ -522,7 +509,7 @@ echo "<B>Entrantes/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAÑA</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -559,7 +546,7 @@ echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; - $stmt="select * from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -676,7 +663,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_es/user_status.php b/LANG_www/vicidial_es/user_status.php index 847576e2..2f7620d9 100644 --- a/LANG_www/vicidial_es/user_status.php +++ b/LANG_www/vicidial_es/user_status.php @@ -1,4 +1,4 @@ -<? +<?php # user_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -10,6 +10,10 @@ # 81118-1034 - Disabled change campaign because it does not work # 90208-0511 - Added link to user multi-day status report # 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process # header ("Content-type: text/html; charset=utf-8"); @@ -38,17 +42,17 @@ if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $i++; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -64,35 +68,34 @@ $ip = getenv("REMOTE_ADDR"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { - $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname = $row[0]; - $change_agent_campaign = $row[1]; - $modify_timeclock_log = $row[2]; + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; if ($webroot_writable > 0) { fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); @@ -116,7 +119,7 @@ $browser = getenv("HTTP_USER_AGENT"); $full_name = $row[0]; $user_group = $row[1]; - $stmt="SELECT * from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $agents_to_print = mysql_num_rows($rslt); @@ -124,13 +127,17 @@ $browser = getenv("HTTP_USER_AGENT"); while ($i < $agents_to_print) { $row=mysql_fetch_row($rslt); - $Aserver_ip = $row[2]; - $Asession_id = $row[3]; - $Aextension = $row[4]; - $Astatus = $row[5]; - $Acampaign = $row[7]; - $Alast_call = $row[14]; - $Acl_campaigns = $row[15]; + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; $i++; } @@ -149,7 +156,7 @@ $browser = getenv("HTTP_USER_AGENT"); } -$stmt="select * from vicidial_campaigns;"; +$stmt="select campaign_id from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -167,8 +174,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: Condición de Usuario -<? +<title>ADMINISTRATION: Condición de Usuario +<?php ##### BEGIN Set variables to make header show properly ##### @@ -194,12 +201,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=<? echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Condición de Usuario for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Condición de Usuario for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -217,10 +224,170 @@ if ($stage == "live_campaign_change") ##### EMERGENCY LOGOUT OF AN AGENT ##### if ($stage == "log_agent_out") { - $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; - echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } exit; } @@ -283,8 +450,8 @@ if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($mod $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - $status='START'; - $totTIME_HMS='0:00:00'; + $status='START'; + $totTIME_HMS='0:00:00'; $affected_rows = mysql_affected_rows($link); print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; } @@ -406,9 +573,14 @@ if ($agents_to_print > 0) echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} echo "</TABLE>\n<BR>\n"; - if ($change_agent_campaign > 0) { echo "<form action=$PHP_SELF method=POST>\n"; @@ -416,17 +588,16 @@ if ($agents_to_print > 0) echo "<input type=hidden name=user value=\"$user\">\n"; echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; echo "Current Campaña: <SELECT SIZE=1 NAME=group>\n"; - $o=0; - while ($groups_to_print > $o) + $o=0; + while ($groups_to_print > $o) { - if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} - else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} - $o++; + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; } echo "</SELECT>\n"; echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; - echo "<form action=$PHP_SELF method=POST>\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<input type=hidden name=user value=\"$user\">\n"; @@ -437,7 +608,7 @@ if ($agents_to_print > 0) else { - echo "Agent is not logged in to VICIDIAL\n<BR>"; + echo "Agent is not logged in\n<BR>"; } echo "\n<BR>"; @@ -469,7 +640,7 @@ if ($modify_timeclock_log > 0) $REPORTdate = date("Y-m-d"); echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Hoja de tiempo</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Hoja de tiempo</a>\n"; echo " | <a href=\"./user_stats.php?user=$user\">Estadísticas de usuario</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modificar Usuario</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Usuario multiple day status detail report</a>"; @@ -497,11 +668,10 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; ?> - diff --git a/LANG_www/vicidial_es/user_territories.php b/LANG_www/vicidial_es/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/LANG_www/vicidial_es/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/LANG_www/vicidial_es/vdremote.php b/LANG_www/vicidial_es/vdremote.php index 75559792..43a1f130 100644 --- a/LANG_www/vicidial_es/vdremote.php +++ b/LANG_www/vicidial_es/vdremote.php @@ -1,20 +1,22 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # Changes # 50307-1721 - First version # 51123-1502 - removed requirement of PHP Globals=on # 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1603 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes # -$version = '1.1.12'; -$build = '60619-1603'; +$version = '2.2.0'; +$build = '91129-2249'; require("dbconnect.php"); @@ -55,15 +57,15 @@ if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} if (!isset($force_logout)) {$force_logout = 0;} if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Usted ahora ha salido. Gracias\n"; exit; -} + } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -75,25 +77,25 @@ $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); if (!isset($query_date)) {$query_date = $NOW_DATE;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { header ("Content-type: text/html; charset=utf-8"); @@ -159,8 +161,8 @@ echo "\n"; .orange {color: black; background-color: orange} --> -VICIDIAL, AGENTES REMOTOS: $LOGfullname - $PHP_AUTH_USER "; +AGENTES REMOTOS: $LOGfullname - $PHP_AUTH_USER "; if (!$ADD) {$ADD="31111";} if ($ADD==31111) {echo "Modificar Agentes Remotos";} @@ -201,14 +203,14 @@ if (strlen($ADD)>4) ##### get inbound groups listing for checkboxes if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; $rslt=mysql_query($stmt, $link); @@ -244,12 +246,12 @@ if (strlen($ADD)>4)
- - +
  VICIDIAL, AGENTES REMOTOS:   Salir  
  MODIFICAR | ">ESTADO | ">ESTADÍSTICAS DE ENTRADA
+
  AGENTES REMOTOS:   Salir  
  MODIFICAR | ">ESTADO | ">ESTADÍSTICAS DE ENTRADA
-4) ###################### if ($ADD==31111) -{ + { echo ""; - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -272,25 +274,23 @@ if ($ADD==31111) $status = $row[5]; $campaign_id = $row[6]; -echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Comienzo Del ID del usuario: $user_start
Número de líneas: (Solamente números)
IP Del Servidor: $row[3]
Extensión Externa: (number dialed to reach agents [i.e. 913125551212])
Estado:
Campaña: $campaign_id
Grupos De entrada: \n"; -echo "$groups_list"; -echo "
\n"; -echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; - -} - + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Comienzo Del ID del usuario: $user_start
Número de líneas: (Solamente números)
IP Del Servidor: $row[3]
Extensión Externa: (number dialed to reach agents [i.e. 913125551212])
Estado:
Campaña: $campaign_id
Grupos De entrada: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; + } @@ -299,12 +299,12 @@ echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pan ###################### if ($ADD==41111) -{ + { echo ""; - if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) {echo "
AGENTES ALEJADOS NO MODIFICADOS - vaya por favor detrás y mire los datos que usted incorporó\n";} - else + else { $stmt="UPDATE vicidial_remote_agents set number_of_lines='" . mysql_real_escape_string($number_of_lines) . "', conf_exten='" . mysql_real_escape_string($conf_exten) . "', status='" . mysql_real_escape_string($status) . "', closer_campaigns='" . mysql_real_escape_string($groups_value) . "' where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); @@ -316,10 +316,9 @@ if ($ADD==41111) $fp = fopen ("./admin_changes_log.txt", "a"); fwrite ($fp, "$date|MODIFY AGENTES REMOTOS ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); fclose($fp); - } - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -330,25 +329,23 @@ if ($ADD==41111) $status = $row[5]; $campaign_id = $row[6]; -echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Comienzo Del ID del usuario: $user_start
Número de líneas: (Solamente números)
IP Del Servidor: $row[3]
Extensión Externa: (number dialed to reach agents [i.e. 913125551212])
Estado:
Campaña: $campaign_id
Grupos De entrada: \n"; -echo "$groups_list"; -echo "
\n"; -echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; - -} - + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Comienzo Del ID del usuario: $user_start
Número de líneas: (Solamente números)
IP Del Servidor: $row[3]
Extensión Externa: (number dialed to reach agents [i.e. 913125551212])
Estado:
Campaña: $campaign_id
Grupos De entrada: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; + } @@ -357,14 +354,13 @@ echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pan ###################### if ($ADD==61111) -{ + { echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -375,7 +371,7 @@ if ($ADD==61111) } $users_list = preg_replace("/.$/","",$users_list); - echo "VICIDIAL: Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; @@ -385,14 +381,14 @@ if ($ADD==61111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) { $leadlink=0; $row=mysql_fetch_row($rslt); - if (eregi("READY|PAUSED",$row[4])) + if (eregi("READY|PAUSED",$row[4])) { $row[3]=''; $row[5]='- ESPERANDO -'; @@ -409,7 +405,7 @@ if ($ADD==61111) $leadid = "$leadid"; } $channel = sprintf("%-10s", $row[3]); - $cc=0; + $cc=0; while ( (strlen($channel) > 10) and ($cc < 100) ) { $channel = eregi_replace(".$","",$channel); @@ -438,14 +434,13 @@ if ($ADD==61111) $i++; } - echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; - echo " $i agentes identificados en el servidor $server_ip\n\n"; - - echo " - Llamadas de 5 minutos o más\n"; - echo " - Sobre 10 minutos en llamada\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i agentes identificados en el servidor $server_ip\n\n"; + echo " - Llamadas de 5 minutos o más\n"; + echo " - Sobre 10 minutos en llamada\n"; } - else + else { echo "**************************************************************************************\n"; echo "*********************************AGENTES SIN LLAMADAS*********************************\n"; @@ -453,9 +448,8 @@ if ($ADD==61111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } ###################### @@ -463,7 +457,7 @@ echo "\n\n"; ###################### if ($ADD==71111) -{ + { echo "\n"; echo "\n"; echo "\n"; @@ -472,11 +466,10 @@ if ($ADD==71111) echo "\n\n"; echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -492,17 +485,17 @@ if ($ADD==71111) $row=mysql_fetch_row($rslt); $in_calls = $row[0]; $in_time = $row[1]; - $in_time_M = ($in_time / 60); - $in_time_M = round($in_time_M, 2); - $in_time_M_int = intval("$in_time_M"); - $in_time_SEC = ($in_time_M - $in_time_M_int); - $in_time_SEC = ($in_time_SEC * 60); - $in_time_SEC = round($in_time_SEC, 0); - if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} - $in_time_MS = "$in_time_M_int:$in_time_SEC"; - $in_time_MS = sprintf("%7s", $in_time_MS); + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); - echo "VICIDIAL: Stats de entrada del agente alejado $NOW_TIME\n\n"; + echo "Stats de entrada del agente alejado $NOW_TIME\n\n"; echo "\n"; echo "Llamadas totales tomadas $query_date: $in_calls\n"; echo "Tiempo total de conversación$query_date: $in_time_MS (minutes:seconds)\n"; @@ -518,7 +511,7 @@ if ($ADD==71111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) @@ -550,14 +543,13 @@ if ($ADD==71111) $i++; } - echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; - # echo " $i agentes identificados en el servidor $server_ip\n\n"; - - # echo " - Llamadas de 5 minutos o más\n"; - # echo " - Sobre 10 minutos en llamada\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; } - else + else { echo "**************************************************************************************\n"; echo "*********************************NINGUNA LLAMADA PARA HOY*******************************\n"; @@ -565,9 +557,8 @@ if ($ADD==71111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } @@ -590,7 +581,7 @@ echo "\n\n\n


\nScript runtime: $RUNtime seconds
"; - - - - - diff --git a/LANG_www/vicidial_es/vicidial_sales_viewer.php b/LANG_www/vicidial_es/vicidial_sales_viewer.php index 6d9608c9..ffbd09ec 100644 --- a/LANG_www/vicidial_es/vicidial_sales_viewer.php +++ b/LANG_www/vicidial_es/vicidial_sales_viewer.php @@ -1,4 +1,4 @@ - 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { +# Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); +# Header("HTTP/1.0 401 Unauthorized"); + echo "Nombre y contraseña inválidos del usuario or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + ?> -VICIDIAL recent sales lookup +Recent Sales Lookup - @@ -54,7 +76,7 @@ function GatherListIDs() { -
"; ?> -
+ @@ -72,9 +94,9 @@ echo "
";
- + - -
Select a VICIDIAL campaign:Select a campaign:
"; } ?> -
"; ?>
Select list ID(s) # (optional):
"; ?>
@@ -140,7 +162,7 @@ echo "
";
** - sorted by call date
- LICENSE: AGPLv2 @@ -6,7 +6,7 @@ # This page does a search against a standard vtiger CRM system. If the record # is not present, it will create a new one and send the agent's screen to that new page. # -# This code is tested against vtiger 5.0.4 +# This code is tested against vtiger 5.0.4 and 5.1.0 # # CHANGES # 60719-1615 - First version @@ -18,6 +18,8 @@ # 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD # 90111-1451 - Added logging of call as activity for account/lead # 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option # header ("Content-type: text/html; charset=utf-8"); @@ -152,7 +154,7 @@ if ($enable_vtiger_integration < 1) exit; } -$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record FROM vicidial_campaigns where campaign_id='$campaign';"; +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $vtc_conf_ct = mysql_num_rows($rslt); @@ -162,6 +164,7 @@ if ($vtc_conf_ct > 0) $vtiger_search_category = $row[0]; $vtiger_create_call_record = $row[1]; $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; } if (strlen($vtiger_search_category)<1) {$vtiger_search_category = 'LEAD';} @@ -188,15 +191,38 @@ mysql_select_db("$vtiger_dbname", $linkV); # LEAD: # $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; -$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; -if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} -if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} -if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} -if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + ########################################################################## @@ -219,78 +245,102 @@ if ($acctid_search > 0) } else { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "account found! ACCTID\n";
-		echo "accountid:   $vendor_id\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -380,79 +430,102 @@ if ($account_search > 0) } if (strlen($accountid) > 0) { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger - echo "
";
-		echo "account found! ACCOUNT\n";
-		echo "accountid:   $accountid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -675,80 +748,104 @@ if ($lead_search > 0) $row=mysql_fetch_row($rslt); $leadid = $row[0]; - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "lead found! LEAD\n";
-		echo "leadid:   $leadid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -774,7 +871,7 @@ echo "Click here to go to the Vtiger home page\n"; - LICENSE: AGPLv2 # -echo "VICIDIAL Bienvenido\n"; +echo "ViciDial Bienvenido\n"; echo "\n"; echo "\n"; echo "




"; diff --git a/LANG_www/vicidial_es/welcome_demo.php b/LANG_www/vicidial_es/welcome_demo.php index 65997b08..238cf5cf 100644 --- a/LANG_www/vicidial_es/welcome_demo.php +++ b/LANG_www/vicidial_es/welcome_demo.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_es/welcome_languages.php b/LANG_www/vicidial_es/welcome_languages.php index 1218c652..d53707a9 100644 --- a/LANG_www/vicidial_es/welcome_languages.php +++ b/LANG_www/vicidial_es/welcome_languages.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_fr/AST_CLOSER_service_level.php b/LANG_www/vicidial_fr/AST_CLOSER_service_level.php index f85af0cc..9538136d 100644 --- a/LANG_www/vicidial_fr/AST_CLOSER_service_level.php +++ b/LANG_www/vicidial_fr/AST_CLOSER_service_level.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -10,6 +10,8 @@ # 80519-0413 - rewrote time intervals code and stats gathering code # 80528-2320 - fixed small calculation bugs and display bugs, added more shifts # 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown # require("dbconnect.php"); @@ -59,7 +61,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -74,7 +76,7 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -82,7 +84,8 @@ $i=0; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; $i++; } ?> @@ -97,13 +100,13 @@ while ($i < $groups_to_print) --> -\n"; -echo "VICIDIAL: VDAD Closer Service Level Stats\n"; +echo "Inbound Service Level Report\n"; - $short_header=1; +$short_header=1; - require("admin_header.php"); +require("admin_header.php"); echo "
"; @@ -112,11 +115,11 @@ echo "\n"; echo "\n"; echo "\n"; echo "Groupes entrants: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -265,7 +272,7 @@ $query_date_END = "$end_date $time_END"; -echo "VICIDIAL: Statistiques appel-automatique CLOSER: $group_string $NOW_TIME\n"; +echo "Inbound Call Stats: $group_string $NOW_TIME\n"; @@ -951,33 +958,9 @@ while ($i < $statuses_to_print) {$STATUSrate = ($STATUScount / ($TOTALsec / 3600) );} $STATUSrate = sprintf("%.2f", $STATUSrate); - $STATUShours_H = ($row[2] / 3600); - $STATUShours_H_int = round($STATUShours_H, 2); - $STATUShours_H_int = intval("$STATUShours_H_int"); - $STATUShours_M = ($STATUShours_H - $STATUShours_H_int); - $STATUShours_M = ($STATUShours_M * 60); - $STATUShours_M_int = round($STATUShours_M, 2); - $STATUShours_M_int = intval("$STATUShours_M_int"); - $STATUShours_S = ($STATUShours_M - $STATUShours_M_int); - $STATUShours_S = ($STATUShours_S * 60); - $STATUShours_S = round($STATUShours_S, 0); - if ($STATUShours_S < 10) {$STATUShours_S = "0$STATUShours_S";} - if ($STATUShours_M_int < 10) {$STATUShours_M_int = "0$STATUShours_M_int";} - $STATUShours = "$STATUShours_H_int:$STATUShours_M_int:$STATUShours_S"; - - $STATUSavg_H = (($row[2] / 3600) / $STATUScount); - $STATUSavg_H_int = round($STATUSavg_H, 2); - $STATUSavg_H_int = intval("$STATUSavg_H_int"); - $STATUSavg_M = ($STATUSavg_H - $STATUSavg_H_int); - $STATUSavg_M = ($STATUSavg_M * 60); - $STATUSavg_M_int = round($STATUSavg_M, 2); - $STATUSavg_M_int = intval("$STATUSavg_M_int"); - $STATUSavg_S = ($STATUSavg_M - $STATUSavg_M_int); - $STATUSavg_S = ($STATUSavg_S * 60); - $STATUSavg_S = round($STATUSavg_S, 0); - if ($STATUSavg_S < 10) {$STATUSavg_S = "0$STATUSavg_S";} - if ($STATUSavg_M_int < 10) {$STATUSavg_M_int = "0$STATUSavg_M_int";} - $STATUSavg = "$STATUSavg_H_int:$STATUSavg_M_int:$STATUSavg_S"; + $STATUShours = sec_convert($row[2],'H'); + $STATUSavg_sec = ($row[2] / $STATUScount); + $STATUSavg = sec_convert($STATUSavg_sec,'H'); $STATUScount = sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);} $status = sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);} @@ -1020,33 +1003,9 @@ else {$TOTALrate = ($TOTALcalls / ($TOTALsec / 3600) );} $TOTALrate = sprintf("%.2f", $TOTALrate); - $TOTALhours_H = ($TOTALsec / 3600); - $TOTALhours_H_int = round($TOTALhours_H, 2); - $TOTALhours_H_int = intval("$TOTALhours_H_int"); - $TOTALhours_M = ($TOTALhours_H - $TOTALhours_H_int); - $TOTALhours_M = ($TOTALhours_M * 60); - $TOTALhours_M_int = round($TOTALhours_M, 2); - $TOTALhours_M_int = intval("$TOTALhours_M_int"); - $TOTALhours_S = ($TOTALhours_M - $TOTALhours_M_int); - $TOTALhours_S = ($TOTALhours_S * 60); - $TOTALhours_S = round($TOTALhours_S, 0); - if ($TOTALhours_S < 10) {$TOTALhours_S = "0$TOTALhours_S";} - if ($TOTALhours_M_int < 10) {$TOTALhours_M_int = "0$TOTALhours_M_int";} - $TOTALhours = "$TOTALhours_H_int:$TOTALhours_M_int:$TOTALhours_S"; - - $TOTALavg_H = (($TOTALsec / 3600) / $TOTALcalls); - $TOTALavg_H_int = round($TOTALavg_H, 2); - $TOTALavg_H_int = intval("$TOTALavg_H_int"); - $TOTALavg_M = ($TOTALavg_H - $TOTALavg_H_int); - $TOTALavg_M = ($TOTALavg_M * 60); - $TOTALavg_M_int = round($TOTALavg_M, 2); - $TOTALavg_M_int = intval("$TOTALavg_M_int"); - $TOTALavg_S = ($TOTALavg_M - $TOTALavg_M_int); - $TOTALavg_S = ($TOTALavg_S * 60); - $TOTALavg_S = round($TOTALavg_S, 0); - if ($TOTALavg_S < 10) {$TOTALavg_S = "0$TOTALavg_S";} - if ($TOTALavg_M_int < 10) {$TOTALavg_M_int = "0$TOTALavg_M_int";} - $TOTALavg = "$TOTALavg_H_int:$TOTALavg_M_int:$TOTALavg_S"; + $TOTALhours = sec_convert($TOTALsec,'H'); + $TOTALavg_sec = ($TOTALsec / $TOTALcalls); + $TOTALavg = sec_convert($TOTALavg_sec,'H'); } $TOTALcalls = sprintf("%10s", $TOTALcalls); $TOTALhours = sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);} @@ -1091,6 +1050,67 @@ echo "| TOTAL | $TOTCATcalls |\n"; echo "+----------------------+------------+\n"; +############################## +######### CALL INITIAL QUEUE POSITION BREAKDOWN + +$TOTALcalls = 0; + +echo "\n"; +echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; +echo "| 1 2 3 4 5 6 7 8 9 10 15 20 25 +25 | TOTAL |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + +$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) group by queue_position;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$positions_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $positions_to_print) + { + $row=mysql_fetch_row($rslt); + + $TOTALcalls = ($TOTALcalls + $row[0]); + + if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);} + if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);} + if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);} + if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);} + if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);} + if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);} + if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);} + if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);} + if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);} + if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);} + if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);} + if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);} + if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);} + if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);} + $i++; + } + +$qp_1 = sprintf("%5s", $qp_1); +$qp_2 = sprintf("%5s", $qp_2); +$qp_3= sprintf("%5s", $qp_3); +$qp_4 = sprintf("%5s", $qp_4); +$qp_5 = sprintf("%5s", $qp_5); +$qp_6 = sprintf("%5s", $qp_6); +$qp_7 = sprintf("%5s", $qp_7); +$qp_8 = sprintf("%5s", $qp_8); +$qp_9 = sprintf("%5s", $qp_9); +$qp10 = sprintf("%5s", $qp10); +$qp15 = sprintf("%5s", $qp15); +$qp20 = sprintf("%5s", $qp20); +$qp25 = sprintf("%5s", $qp25); +$qp99 = sprintf("%5s", $qp99); + +$TOTALcalls = sprintf("%10s", $TOTALcalls); + +echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + + + ############################## ######### USER STATS @@ -1101,9 +1121,9 @@ $TOTavg=0; echo "\n"; echo "---------- AGENT STATS\n"; -echo "+--------------------------+------------+----------+--------+\n"; -echo "| AGENT | CALLS | TIME M | AVRG M |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| AGENT | CALLS | TIME H:M:S |AVERAGE |\n"; +echo "+--------------------------+------------+------------+--------+\n"; $stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;"; $rslt=mysql_query($stmt, $link); @@ -1118,34 +1138,25 @@ while ($i < $users_to_print) $TOTtime = ($TOTtime + $row[3]); $user = sprintf("%-6s", $row[0]); - $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + if ($non_latin < 1) + { + $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + } + else + { + $full_name = sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');} + } $USERcalls = sprintf("%10s", $row[2]); $USERtotTALK = $row[3]; $USERavgTALK = $row[4]; - $USERtotTALK_M = ($USERtotTALK / 60); - $USERtotTALK_M_int = round($USERtotTALK_M, 2); - $USERtotTALK_M_int = intval("$USERtotTALK_M_int"); - $USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int); - $USERtotTALK_S = ($USERtotTALK_S * 60); - $USERtotTALK_S = round($USERtotTALK_S, 0); - if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";} - $USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S"; - $USERtotTALK_MS = eregi_replace('-','',$USERtotTALK_MS); - $USERtotTALK_MS = sprintf("%8s", $USERtotTALK_MS); + $USERtotTALK_MS = sec_convert($USERtotTALK,'H'); + $USERavgTALK_MS = sec_convert($USERavgTALK,'H'); - $USERavgTALK_M = ($USERavgTALK / 60); - $USERavgTALK_M_int = round($USERavgTALK_M, 2); - $USERavgTALK_M_int = intval("$USERavgTALK_M_int"); - $USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int); - $USERavgTALK_S = ($USERavgTALK_S * 60); - $USERavgTALK_S = round($USERavgTALK_S, 0); - if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";} - $USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S"; - $USERavgTALK_MS = eregi_replace('-','',$USERavgTALK_MS); - $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); + $USERtotTALK_MS = sprintf("%9s", $USERtotTALK_MS); + $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); - echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; + echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; $i++; } @@ -1154,36 +1165,21 @@ if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;} else { $TOTavg = ($TOTtime / $TOTcalls); - $TOTavg = round($TOTavg, 0); - $TOTavg_M = ($TOTavg / 60); - $TOTavg_M_int = round($TOTavg_M, 2); - $TOTavg_M_int = intval("$TOTavg_M_int"); - $TOTavg_S = ($TOTavg_M - $TOTavg_M_int); - $TOTavg_S = ($TOTavg_S * 60); - $TOTavg_S = round($TOTavg_S, 0); - if ($TOTavg_S < 10) {$TOTavg_S = "0$TOTavg_S";} - $TOTavg_MS = "$TOTavg_M_int:$TOTavg_S"; + $TOTavg_MS = sec_convert($TOTavg,'H'); $TOTavg = sprintf("%6s", $TOTavg_MS); } -$TOTtime_M = ($TOTtime / 60); -$TOTtime_M_int = round($TOTtime_M, 2); -$TOTtime_M_int = intval("$TOTtime_M_int"); -$TOTtime_S = ($TOTtime_M - $TOTtime_M_int); -$TOTtime_S = ($TOTtime_S * 60); -$TOTtime_S = round($TOTtime_S, 0); -if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";} -$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S"; -$TOTtime = sprintf("%6s", $TOTtime_MS); +$TOTtime_MS = sec_convert($TOTtime,'H'); +$TOTtime = sprintf("%10s", $TOTtime_MS); $TOTagents = sprintf("%10s", $i); $TOTcalls = sprintf("%10s", $TOTcalls); $TOTtime = sprintf("%8s", $TOTtime); $TOTavg = sprintf("%6s", $TOTavg); -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; ############################## diff --git a/LANG_www/vicidial_fr/AST_CLOSERsummary_hourly.php b/LANG_www/vicidial_fr/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/LANG_www/vicidial_fr/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_fr/AST_IVRfilter.php b/LANG_www/vicidial_fr/AST_IVRfilter.php index 5ffad7c5..1ca68172 100644 --- a/LANG_www/vicidial_fr/AST_IVRfilter.php +++ b/LANG_www/vicidial_fr/AST_IVRfilter.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # # 81030-0432 - First build # 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -81,7 +82,7 @@ $i=0; --> -\n"; echo "VICIDIAL: VDL IVR Filter Stats\n"; diff --git a/LANG_www/vicidial_fr/AST_IVRstats.php b/LANG_www/vicidial_fr/AST_IVRstats.php index c161c8f0..8e9daeee 100644 --- a/LANG_www/vicidial_fr/AST_IVRstats.php +++ b/LANG_www/vicidial_fr/AST_IVRstats.php @@ -1,15 +1,16 @@ - LICENSE: AGPLv2 # # CHANGES -# # 81026-2026 - First build # 81107-0341 - Added time range and option and 15-minute increment graph # 81107-1148 - Added average times and totals # 81108-0922 - Added no-callerID and unique caller counts # 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list # require("dbconnect.php"); @@ -61,7 +62,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -76,18 +77,23 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; - $LISTgroups[$i]='---NONE---'; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; $i++; $groups_to_print++; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $LISTgroups[$i] =$row[0]; + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; $i++; } @@ -139,7 +145,7 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: IVR Stats\n"; +echo "IVR Stats Report\n"; $short_header=1; @@ -203,14 +209,14 @@ echo "
\n"; echo "Groupes entrants: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -248,434 +254,427 @@ echo "
\n\n";
 
 
 if ($groups_to_print < 1)
-{
-echo "\n\n";
-echo "S'IL VOUS PLAÎT CHOISIR UN GROUPE EN DATE ET-dessus et cliquez sur Soumettre\n";
-}
+	{
+	echo "\n\n";
+	echo "S'IL VOUS PLAÎT CHOISIR UN GROUPE EN DATE ET-dessus et cliquez sur Soumettre\n";
+	}
 
 else
-{
-
-
-echo "VICIDIAL: IVR Stats: $group_string          $NOW_TIME\n";
-
-
-
-
-
-
-$TOTALcalls=0;
-$NOCALLERIDcalls=0;
-$UNIQUEcallers=0;
-$totFLOWivr_time=0;
-$totFLOWtotal_time=0;
-
-##### Grab all records for the IVR for the specified time period
-$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$logs_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $logs_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-	$uniqueid[$p] =		$row[0];
-	$extension[$p] =	$row[1];
-	$start_time[$p] =	$row[2];
-	$comment_a[$p] =	$row[3];
-	$comment_b[$p] =	$row[4];
-	$comment_d[$p] =	$row[5];
-	$epoch[$p] =		$row[6];
-	$phone_ext[$p] =	$row[7];
-	$p++;
-	}
-
-### create the call flow of all calls by uniqueid
-$last_uniqueid='';
-$first_epoch='';
-$last_epoch='';
-$p=0;
-$r=-1;
-while ($p < $logs_to_print)
-	{
-	if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
-	if ($last_uniqueid === "$uniqueid[$p]")
-		{
-		$unique_calls[$r] .= "----------$comment_b[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		$last_epoch[$r]=$epoch[$p];
-		}
-	else
-		{
-		$r++;
-		$caller_id[$r]=$phone_ext[$p];
-		if (strlen($phone_ext[$p])<2)
-			{$NOCALLERIDcalls++;}
-		else
-			{
-			if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
-				{
-				$unique_callerIDs .= "_$phone_ext[$p]_";
-				$UNIQUEcallers++;
-				}
-			}
-		$first_epoch[$r]=$epoch[$p];
-		$last_epoch[$r]=$epoch[$p];
-		$unique_calls[$r] = $comment_b[$p];
-		$FLOWuniqueid[$r] = "$uniqueid[$p]";
-		$last_uniqueid = "$uniqueid[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		}
-	$p++;
-	}
-
-### sort call flows for counting
-$RAWunique_calls = $unique_calls;
-if ($logs_to_print > 0)
-	{sort($unique_calls);}
-
-
-### count each unique call flow
-$last_Suniqueid='';
-$p=-1;
-$s=0;
-while ($s <= $r)
-	{
-	if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
-	if ($last_Suniqueid === "$unique_calls[$s]")
-		{
-		$STunique_calls_count[$p]++;
-		}
-	else
-		{
-		$p++;
-		$STunique_calls[$p] = $unique_calls[$s];
-		$last_Suniqueid = "$unique_calls[$s]";
-		$STunique_calls_count[$p]=1;
-		}
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$TOTALcalls=0;
-$s=0;
-while ($s <= $p)
-	{
-	$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
-	$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
-	$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
-	$s++;
-	}
-
-#### PRINT TOTAL CALLS INTO THIS IVR
-echo "\n";
-echo "Calls taken into this IVR:   $TOTALcalls\n";
-echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
-echo "Unique Callers:              $UNIQUEcallers\n";
-echo "\n";
-
-### sort call flows for counting
-if ($p > 0)
-	{rsort($FLOWunique_calls);}
-
-
-### put call flows and counts together for sorting again
-$RUC_ct = count($RAWunique_calls);
-$s=0;
-while ($s <= $p)
-	{
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$t=0;
-	while ($t < $RUC_ct)
-		{
-		if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
-			{
-			$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
-			if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
-			else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
-			$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
-			}
-		$t++;
-		}
-
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$s=0;
-
-echo "+--------+--------+--------+--------+------+------+\n";
-echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
-echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
-echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
-echo "+--------+--------+--------+--------+------+------+------------\n";
-
-while ($s <= $p)
-	{
-	$vcl_statuses = $MT;
-	$FLOWdrop[$s]=0;
-	$FLOWtotal[$s]=0;
-	$FLOWdropPCT[$s]=0;
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
 
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
 
 	##### Grab all records for the IVR for the specified time period
-	$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
 	$rslt=mysql_query($stmt, $link);
 	if ($DB) {echo "$stmt\n";}
-	$vcl_statuses_to_print = mysql_num_rows($rslt);
-	$w=0;
-	while ($w < $vcl_statuses_to_print)
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
 		{
 		$row=mysql_fetch_row($rslt);
-		$vcl_statuses[$w] =		$row[0];
-		if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
-			{$FLOWdrop[$s]++;}
-		$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
-		$FLOWtotal[$s]++;
-		$w++;
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
 		}
-	if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
 		{
-		$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
-		$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
-		}
-	$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
-	$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
-	$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
-	$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
-	$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
-	$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
-
-	$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
-	$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
-	$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
-	$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
-	$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
-	$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
-
-	$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
-	$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
-	$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
-	$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
-
-	echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
-
-	$s++;
-	}
-$TOTALcalls = sprintf("%6s", $TOTALcalls);
-$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
-$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
-if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
-$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
-$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
-if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
-$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
-$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
-if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
-	{$totFLOWdropPCT = '0';}
-else
-	{
-	$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
-	$totFLOWdropPCT = round($totFLOWdropPCT, 0);
-	}
-$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
-
-echo "+--------+--------+--------+--------+------+------+------------\n";
-echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
-echo "+--------+--------+--------+--------+------+------+\n";
-
-
-
-
-
-
-
-
-
-
-
-
-
-##############################
-#########  TIME STATS
-
-echo "\n";
-echo "---------- STATISTIQUE TEMPORELLES\n";
-
-echo "\n";
-
-$hi_hour_count=0;
-$last_full_record=0;
-$i=0;
-$h=0;
-while ($i <= 96)
-	{
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-	$h++;
-	}
-
-if ($hi_hour_count < 1)
-	{$hour_multiplier = 0;}
-else
-	{
-	$hour_multiplier = (100 / $hi_hour_count);
-	#$hour_multiplier = round($hour_multiplier, 0);
-	}
-
-echo "\n";
-echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES DU TOTAL DES APPELS TAKEN INTO THIS IVR\n";
-
-$k=1;
-$Mk=0;
-$call_scale = '0';
-while ($k <= 102) 
-	{
-	if ($Mk >= 5) 
-		{
-		$Mk=0;
-		if ( ($k < 1) or ($hour_multiplier <= 0) )
-			{$scale_num = 100;}
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
 		else
 			{
-			$scale_num=($k / $hour_multiplier);
-			$scale_num = round($scale_num, 0);
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
 			}
-		$LENscale_num = (strlen($scale_num));
-		$k = ($k + $LENscale_num);
-		$call_scale .= "$scale_num";
+		$p++;
 		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT TOTAL DES APPELSINTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
 	else
 		{
-		$call_scale .= " ";
-		$k++;   $Mk++;
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
 		}
-	}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
-echo "| HOUR |$call_scale| TOTAL |\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
 
-$ZZ = '00';
-$i=0;
-$h=4;
-$hour= -1;
-$no_lines_yet=1;
 
-while ($i <= 96)
-	{
-	$char_counter=0;
-	$time = '      ';
-	if ($h >= 4) 
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- STATISTIQUE TEMPORELLES\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
 		{
-		$hour++;
-		$h=0;
-		if ($hour < 10) {$hour = "0$hour";}
-		$time = "+$hour$ZZ+";
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
 		}
-	if ($h == 1) {$time = "   15 ";}
-	if ($h == 2) {$time = "   30 ";}
-	if ($h == 3) {$time = "   45 ";}
-	$Ghour_count = $hour_count[$i];
-	if ($Ghour_count < 1) 
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
 		{
-		if ( ($no_lines_yet) or ($i > $last_full_record) )
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES DU TOTAL DES APPELS TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
 			{
-			$do_nothing=1;
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
 			}
 		else
 			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
-			echo "|$time|";
-			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
 			echo "| $hour_count[$i] |\n";
 			}
+		
+		
+		$i++;
+		$h++;
 		}
-	else
-		{
-		$no_lines_yet=0;
-		$Xhour_count = ($Ghour_count * $hour_multiplier);
-		$Yhour_count = (99 - $Xhour_count);
 
-		$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 
-		echo "|$time|";
-		$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-		echo "*X";   $char_counter++;
-		$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-			while ($char_counter <= 101) {echo " ";   $char_counter++;}
-		echo "| $hour_count[$i] |\n";
-		}
-	
-	
-	$i++;
-	$h++;
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
 	}
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
-
-
-
-
-
-
-
-
-
-
-$ENDtime = date("U");
-$RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds\n";
-}
-
-
 
 ?>
 
diff --git a/LANG_www/vicidial_fr/AST_OUTBOUNDsummary_interval.php b/LANG_www/vicidial_fr/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/LANG_www/vicidial_fr/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_fr/AST_VDADstats.php b/LANG_www/vicidial_fr/AST_VDADstats.php index 03ec4015..d83d1a57 100644 --- a/LANG_www/vicidial_fr/AST_VDADstats.php +++ b/LANG_www/vicidial_fr/AST_VDADstats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -17,17 +17,36 @@ # 81109-2341 - Added Productivity Rating # 90225-1140 - Changed to multi-campaign capability # 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; -if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} - elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} @@ -47,6 +66,10 @@ $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -54,16 +77,25 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} @@ -71,8 +103,7 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -87,7 +118,16 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select campaign_id from vicidial_campaigns;"; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); @@ -95,10 +135,14 @@ $i=0; while ($i < $campaigns_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} $i++; } +$rollover_groups_count=0; $i=0; $group_string='|'; $group_ct = count($group); @@ -107,15 +151,41 @@ while($i < $group_ct) $group_string .= "$group[$i]|"; $group_SQL .= "'$group[$i]',"; $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + $i++; } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) - {$group_SQL = "";} + { + $group_SQL = ""; + $group_drop_SQL = ""; + } else { $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; $group_SQLand = "and campaign_id IN($group_SQL)"; $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; } $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; @@ -131,6 +201,35 @@ while ($i < $statcats_to_print) $vsc_count[$i] = 0; $i++; } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + ?> @@ -144,9 +243,9 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: VDAD Stats\n"; +echo "Outbound Stats\n"; $short_header=1; @@ -158,23 +257,48 @@ echo "
\n"; echo "
Dates:
"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "
to
\n"; echo "
Campagnes:
"; echo "\n"; -echo "
Shift:
"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; echo "
"; @@ -202,810 +326,1087 @@ echo "
\n\n";
 
 
 if (strlen($group[0]) < 1)
-{
-echo "\n\n";
-echo "VEUILLEZ SELECTIONNER UNE CAMPAGNE ET UNE DATE CI-DESSUS ET CLIQUEZ SUR VALIDER\n";
-}
+	{
+	echo "\n\n";
+	echo "VEUILLEZ SELECTIONNER UNE CAMPAGNE ET UNE DATE CI-DESSUS ET CLIQUEZ SUR VALIDER\n";
+	}
 
 else
-{
-if ($shift == 'AM') 
 	{
-	$time_BEGIN=$AM_shift_BEGIN;
-	$time_END=$AM_shift_END;
-	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
-	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
-	}
-if ($shift == 'PM') 
-	{
-	$time_BEGIN=$PM_shift_BEGIN;
-	$time_END=$PM_shift_END;
-	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
-	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
-	}
-if ($shift == 'ALL') 
-	{
-	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
-	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
-	}
-$query_date_BEGIN = "$query_date $time_BEGIN";   
-$query_date_END = "$end_date $time_END";
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
 
 
+	$OUToutput = '';
+	$OUToutput .= "Outbound Calling Stats                             $NOW_TIME\n";
 
-echo "VICIDIAL: Auto-dial Stats                             $NOW_TIME\n";
+	$OUToutput .= "\n";
+	$OUToutput .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+	$OUToutput .= "---------- TOTALS\n";
 
-echo "\n";
-echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
-echo "---------- TOTALS\n";
-
-$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$TOTALcalls =	sprintf("%10s", $row[0]);
-$TOTALsec =		$row[1];
-if ( ($row[0] < 1) or ($TOTALsec < 1) )
-	{$average_hold_seconds = '         0';}
-else
-	{
-	$average_hold_seconds = ($TOTALsec / $row[0]);
-	$average_hold_seconds = round($average_hold_seconds, 2);
-	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
-	}
-echo "Total des appels placés dans cette campagne: $TOTALcalls\n";
-echo "Durée moyenne des appels pour tous les appels en secondes: $average_hold_seconds\n";
-
-
-echo "\n";
-echo "---------- ABANDONNES\n";
-
-$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-$DROPcalls =	sprintf("%10s", $row[0]);
-$DROPcallsRAW =	$row[0];
-$DROPseconds =	$row[1];
-
-
-# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
-$q=0;
-$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$statuses_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $statuses_to_print)
-	{
-	$row=mysql_fetch_row($rslt);
-	$status[$q] =			$row[0];
-	$status_name[$q] =		$row[1];
-	$human_answered[$q] =	$row[2];
-	$category[$q] =			$row[3];
-	$statname_list["$status[$q]"] = "$status_name[$q]";
-	$statcat_list["$status[$q]"] = "$category[$q]";
-	if ($human_answered[$q]=='Y')
-		{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
-	$q++;
-	$p++;
-	}
-
-$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$statuses_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $statuses_to_print)
-	{
-	$row=mysql_fetch_row($rslt);
-	$status[$q] =			$row[0];
-	$status_name[$q] =		$row[1];
-	$human_answered[$q] =	$row[2];
-	$category[$q] =			$row[3];
-	$statname_list["$status[$q]"] = "$status_name[$q]";
-	$statcat_list["$status[$q]"] = "$category[$q]";
-	if ($human_answered[$q]=='Y')
-		{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
-	$q++;
-	$p++;
-	}
-$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
-
-
-$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-$REPONSEcalls =	$row[0];
-
-if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
-	{$DROPpercent = '0';}
-else
-	{
-	$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
-	$DROPpercent = round($DROPpercent, 2);
-	}
-
-if ( ($DROPcalls < 1) or ($REPONSEcalls < 1) )
-	{$DROPREPONSEpercent = '0';}
-else
-	{
-	$DROPREPONSEpercent = (($DROPcallsRAW / $REPONSEcalls) * 100);
-	$DROPREPONSEpercent = round($DROPREPONSEpercent, 2);
-	}
-
-if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
-	{$average_hold_seconds = '         0';}
-else
-	{
-	$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
-	$average_hold_seconds = round($average_hold_seconds, 2);
-	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
-	}
-
-echo "Total des appels abandonnés: $DROPcalls  $DROPpercent%\n";
-echo "Percent of DROP Calls taken out of Answers:   $DROPcalls / $REPONSEcalls  $DROPREPONSEpercent%\n";
-echo "Durée moyenne pour les appels abandonnés en secondes:    $average_hold_seconds\n";
-
-
-$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
-$rslt=mysql_query($stmt, $link);
-$ccamps_to_print = mysql_num_rows($rslt);
-$c=0;
-while ($ccamps_to_print > $c)
-	{
-	$row=mysql_fetch_row($rslt);
-	$closer_campaigns = $row[0];
-	$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
-	$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
-	$closer_campaignsSQL .= "'$closer_campaigns',";
-	$c++;
-	}
-$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
-
-$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-$TOTALanswers = ($row[0] + $REPONSEcalls);
-
-
-$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-$agent_non_pause_sec = $row[0];
-
-if ($agent_non_pause_sec > 0)
-	{
-	$AVG_REPONSEagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
-	$AVG_REPONSEagent_non_pause_sec = round($AVG_REPONSEagent_non_pause_sec, 2);
-	}
-else
-	{$AVG_REPONSEagent_non_pause_sec=0;}
-$AVG_REPONSEagent_non_pause_sec = sprintf("%10s", $AVG_REPONSEagent_non_pause_sec);
-
-echo "Productivity Rating:                          $AVG_REPONSEagent_non_pause_sec\n";
-
-
-
-
-echo "\n";
-echo "---------- APPELS AUTOMATIQUES SANS REPONSES\n";
-
-$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$NAcalls =	sprintf("%10s", $row[0]);
-if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
-	{$NApercent = '0';}
-else
-	{
-	$NApercent = (($NAcalls / $TOTALcalls) * 100);
-	$NApercent = round($NApercent, 2);
-	}
-
-if ( ($row[0] < 1) or ($row[1] < 1) )
-	{$average_na_seconds = '         0';}
-else
-	{
-	$average_na_seconds = ($row[1] / $row[0]);
-	$average_na_seconds = round($average_na_seconds, 2);
-	$average_na_seconds =	sprintf("%10s", $average_na_seconds);
-	}
-
-echo "Total NA calls -Busy,Disconnect,RingNoAnswer: $NAcalls  $NApercent%\n";
-echo "Durée moyenne des appels pour les appels NA en secondes:  $average_na_seconds\n";
-
-
-##############################
-#########  CALL HANGUP REASON STATS
-
-$TOTALcalls = 0;
-
-echo "\n";
-echo "---------- FAIT APPEL Hangup STATS\n";
-echo "+----------------------+------------+\n";
-echo "| HANGUP REASON        | CALLS      |\n";
-echo "+----------------------+------------+\n";
-
-$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
-if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$reasons_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $reasons_to_print)
-	{
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
 	$row=mysql_fetch_row($rslt);
 
-	$TOTALcalls = ($TOTALcalls + $row[0]);
+	$TOTALcallsRAW = $row[0];
+	$TOTALsec =		$row[1];
+	$inTOTALcallsRAW=0;
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
 
-	$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
-	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
-	if (ereg("NONE",$reason))	{$reason = 'NO REPONSE           ';}
-	if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
 
-	echo "| $reason | $REASONcount |\n";
+			$TOTALdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inTOTALsec =	($inTOTALsec + $thiscallsec);	
 
-	$i++;
-	}
+			$y++;
+			}
 
-$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+		$inTOTALcallsRAW =	$y;
+		$TOTALsec = ($TOTALsec + $inTOTALsec);
+		$inTOTALcalls =	sprintf("%10s", $inTOTALcallsRAW);
+		}
 
-echo "+----------------------+------------+\n";
-echo "| TOTAL:               | $TOTALcalls |\n";
-echo "+----------------------+------------+\n";
+	$TOTALcalls =	sprintf("%10s", $TOTALcallsRAW);
+	if ( ($row[0] < 1) or ($TOTALsec < 1) )
+		{$average_call_seconds = '         0';}
+	else
+		{
+		$average_call_seconds = ($TOTALsec / $TOTALcallsRAW);
+		$average_call_seconds = round($average_call_seconds, 2);
+		$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+		}
+
+	$OUToutput .= "Total des appels placés dans cette campagne: $TOTALcalls\n";
+	$OUToutput .= "Durée moyenne des appels pour tous les appels en secondes: $average_call_seconds\n";
+	if (eregi("YES",$include_rollover))
+		{$OUToutput .= "Calls that went to rollover In-Groupe:         $inTOTALcalls\n";}
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- RÉPONSE HUMAINES\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN($customer_interactive_statuses) $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$CIcallsRAW =	$row[0];
+	$CIsec =		$row[1];
+
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and vicidial_closer_log.status IN($customer_interactive_statuses) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$CIdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inCIsec =	($inCIsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inCIcallsRAW =	$y;
+		$CIsec = ($CIsec + $inCIsec);
+		$CIcallsRAW = ($CIcallsRAW + $inCIcallsRAW);
+		}
+
+	$CIcalls =	sprintf("%10s", $CIcallsRAW);
+	if ( ($CIcallsRAW < 1) or ($CIsec < 1) )
+		{$average_ci_seconds = '         0';}
+	else
+		{
+		$average_ci_seconds = ($CIsec / $CIcallsRAW);
+		$average_ci_seconds = round($average_ci_seconds, 2);
+		$average_ci_seconds =	sprintf("%10s", $average_ci_seconds);
+		}
+	$CIsec =		sec_convert($CIsec,'H'); 
+
+
+	$OUToutput .= "Total Réponse de l'hommeed calls for this Campagne: $CIcalls\n";
+	$OUToutput .= "Average Call Length for all HA in seconds:    $average_ci_seconds     Total Time: $CIsec\n";
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ABANDONNES\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$DROPcalls =	sprintf("%10s", $row[0]);
+	$DROPcallsRAW =	$row[0];
+	$DROPseconds =	$row[1];
+
+
+	# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+	$q=0;
+	$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+
+	$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+	$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
+
+
+	$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$REPONSEcalls =	$row[0];
+
+	if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+		{$DROPpercent = '0';}
+	else
+		{
+		$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
+		$DROPpercent = round($DROPpercent, 2);
+		}
+
+	if ( ($DROPcalls < 1) or ($REPONSEcalls < 1) )
+		{$DROPREPONSEpercent = '0';}
+	else
+		{
+		$DROPREPONSEpercent = (($DROPcallsRAW / $REPONSEcalls) * 100);
+		$DROPREPONSEpercent = round($DROPREPONSEpercent, 2);
+		}
+
+	if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
+		{$average_hold_seconds = '         0';}
+	else
+		{
+		$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
+		$average_hold_seconds = round($average_hold_seconds, 2);
+		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+		}
+
+	$OUToutput .= "Total Outbound DROP Calls:                    $DROPcalls  $DROPpercent%\n";
+	$OUToutput .= "Percent of DROP Calls taken out of Answers:   $DROPcalls / $REPONSEcalls  $DROPREPONSEpercent%\n";
+
+	if (eregi("YES",$include_rollover))
+		{
+		if ( ($DROPcalls < 1) or ($CIcallsRAW < 1) )
+			{$inDROPREPONSEpercent = '0';}
+		else
+			{
+			$inDROPREPONSEpercent = (($DROPcallsRAW / $CIcallsRAW) * 100);
+			$inDROPREPONSEpercent = round($inDROPREPONSEpercent, 2);
+			}
+
+		$OUToutput .= "Percent of DROP/Answer Calls with Rollover:   $DROPcalls / $CIcallsRAW  $inDROPREPONSEpercent%\n";
+		}
+
+	$OUToutput .= "Durée moyenne pour les appels abandonnés en secondes:    $average_hold_seconds\n";
+
+	$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	$ccamps_to_print = mysql_num_rows($rslt);
+	$c=0;
+	while ($ccamps_to_print > $c)
+		{
+		$row=mysql_fetch_row($rslt);
+		$closer_campaigns = $row[0];
+		$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
+		$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
+		$closer_campaignsSQL .= "'$closer_campaigns',";
+		$c++;
+		}
+	$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
+
+	$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$TOTALanswers = ($row[0] + $REPONSEcalls);
+
+
+	$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$agent_non_pause_sec = $row[0];
+
+	if ($agent_non_pause_sec > 0)
+		{
+		$AVG_REPONSEagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
+		$AVG_REPONSEagent_non_pause_sec = round($AVG_REPONSEagent_non_pause_sec, 2);
+		}
+	else
+		{$AVG_REPONSEagent_non_pause_sec=0;}
+	$AVG_REPONSEagent_non_pause_sec = sprintf("%10s", $AVG_REPONSEagent_non_pause_sec);
+
+	$OUToutput .= "Productivity Rating:                          $AVG_REPONSEagent_non_pause_sec\n";
 
 
 
 
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- APPELS AUTOMATIQUES SANS REPONSES\n";
 
-##############################
-#########  CALL STATUS STATS
-
-$TOTALcalls = 0;
-
-echo "\n";
-echo "---------- CALL STATUS STATS\n";
-echo "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
-echo "|        |                      |                      |            |      CALL TIME                   |AGENT TIME|\n";
-echo "| STATUS | DESCRIPTION          | CATÉGORIE             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
-echo "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
-
-
-## Pull the count of agent seconds for the total tally
-$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
-$rslt=mysql_query($stmt, $link);
-$Ctally_to_print = mysql_num_rows($rslt);
-if ($Ctally_to_print > 0) 
-	{
-	$rowx=mysql_fetch_row($rslt);
-	$AGENTsec = "$rowx[0]";
-	}
-
-
-## get counts and time totals for all statuses in this campaign
-$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END'  $group_SQLand group by status;";
-if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$statuses_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $statuses_to_print)
-	{
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
 	$row=mysql_fetch_row($rslt);
 
-	$STATUScount =	$row[0];
-	$RAWstatus =	$row[1];
+	$NAcalls =	sprintf("%10s", $row[0]);
+	if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
+		{$NApercent = '0';}
+	else
+		{
+		$NApercent = (($NAcalls / $TOTALcalls) * 100);
+		$NApercent = round($NApercent, 2);
+		}
+
+	if ( ($row[0] < 1) or ($row[1] < 1) )
+		{$average_na_seconds = '         0';}
+	else
+		{
+		$average_na_seconds = ($row[1] / $row[0]);
+		$average_na_seconds = round($average_na_seconds, 2);
+		$average_na_seconds =	sprintf("%10s", $average_na_seconds);
+		}
+
+	$OUToutput .= "Total NA calls -Busy,Disconnect,RingNoAnswer: $NAcalls  $NApercent%\n";
+	$OUToutput .= "Durée moyenne des appels pour les appels NA en secondes:  $average_na_seconds\n";
+
+
+	##############################
+	#########  FAIT APPEL Hangup STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- FAIT APPEL Hangup STATS\n";
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| HANGUP REASON        | CALLS      |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+	$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$reasons_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $reasons_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$TOTALcalls = ($TOTALcalls + $row[0]);
+
+		$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+		$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+		if (ereg("NONE",$reason))	{$reason = 'NO REPONSE           ';}
+		if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
+
+		$OUToutput .= "| $reason | $REASONcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| TOTAL:               | $TOTALcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+
+
+	##############################
+	#########  CALL STATUS STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL STATUS STATS\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
+	$OUToutput .= "|        |                      |                      |            |      CALL TIME                   |AGENT TIME|\n";
+	$OUToutput .= "| STATUS | DESCRIPTION          | CATÉGORIE             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+
+	$campaignSQL = "$group_SQLand";
+	if (eregi("YES",$include_rollover))
+		{$campaignSQL = "$both_group_SQLand";}
+	## Pull the count of agent seconds for the total tally
+	$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $campaignSQL and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
+	$rslt=mysql_query($stmt, $link);
+	$Ctally_to_print = mysql_num_rows($rslt);
+	if ($Ctally_to_print > 0) 
+		{
+		$rowx=mysql_fetch_row($rslt);
+		$AGENTsec = "$rowx[0]";
+		}
+	if ($DB) {$OUToutput .= "$AGENTsec|$Ctally_to_print|$stmt\n";}
+
+
+	## get counts and time totals for all statuses in this campaign
+	$rollover_exclude_dropSQL='';
+	if (eregi("YES",$include_rollover))
+		{$rollover_exclude_dropSQL = "and status NOT IN('DROP')";}
+	$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $rollover_exclude_dropSQL $group_SQLand group by status;";
+
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$STATUScountARY[$i] =	$row[0];
+		$RAWstatusARY[$i] =		$row[1];
+		$RAWhoursARY[$i] =		$row[2];
+		$statusSQL .=			"'$row[1]',";
+		$i++;
+		}
+	if (eregi("YES",$include_rollover))
+		{
+		if (strlen($statusSQL) < 2)
+			{$statusSQL = "''";}
+		else
+			{
+			$statusSQL = eregi_replace(",$",'',$statusSQL);
+			}
+		$stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN($statusSQL) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		$inS_statuses_to_print = mysql_num_rows($rslt);
+		$n=0;
+		while ($inS_statuses_to_print > $n) 
+			{
+			$rowx=mysql_fetch_row($rslt);
+			$STATUScountARY[$i] =	0;
+			$RAWstatusARY[$i] =		$rowx[0];
+			$RAWhoursARY[$i] =		0;
+			$i++;
+			$n++;
+			$statuses_to_print++;
+			}
+		}
+
+
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$STATUScount = $STATUScountARY[$i];
+		$RAWstatus = $RAWstatusARY[$i];
+		$RAWhours = $RAWhoursARY[$i];
+
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status='$RAWstatus' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			$in_statuses_to_print = mysql_num_rows($rslt);
+			if ($in_statuses_to_print > 0) 
+				{
+				$rowx=mysql_fetch_row($rslt);
+				$inSTATUScount =	$rowx[0];
+				$inRAWhours =		$rowx[1];
+
+				$STATUScount = ($STATUScount + $inSTATUScount);
+				$RAWhours = ($RAWhours + $inRAWhours);
+				}
+			}
+
+		$r=0;
+		while ($r < $statcats_to_print)
+			{
+			if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
+				{
+				$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+				}
+			$r++;
+			}
+		if ($AGENTsec < 1) {$AGENTsec=1;}
+		$TOTALcalls =	($TOTALcalls + $STATUScount);
+		$TOTALtimeS =	($TOTALtimeS + $RAWhours);
+		$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
+			$STATUSrate =	sprintf("%.2f", $STATUSrate);
+		$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
+			$AGENTrate =	sprintf("%.2f", $AGENTrate);
+
+		$STATUShours =		sec_convert($RAWhours,'H'); 
+		$STATUSavg_sec =	($RAWhours / $STATUScount); 
+		$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+		$STATUScount =	sprintf("%10s", $STATUScount);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+		$status =	sprintf("%-6s", $RAWstatus);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+		$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+		$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+		$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+		$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
+
+		if ($non_latin < 1)
+			{
+			$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+			while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+			$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+			while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+			}
+		else
+			{
+			$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+			while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+			$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+			while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+			}
+
+		$OUToutput .= "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
+
+		$i++;
+		}
+
+	if ($TOTALcalls < 1)
+		{
+		$TOTALhours =	'0:00:00';
+		$TOTALavg =		'0:00:00';
+		$TOTALrate =	'0.00';
+		}
+	else
+		{
+		$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
+			$TOTALrate =	sprintf("%.2f", $TOTALrate);
+		$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
+			$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
+
+		$aTOTALhours =		sec_convert($AGENTsec,'H'); 
+		$TOTALhours =		sec_convert($TOTALtimeS,'H'); 
+		$TOTALavg_sec =		($TOTALtimeS / $TOTALcalls);
+		$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+		}
+	$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+	$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+	$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
+	$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+	$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+	$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
+
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+	$OUToutput .= "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
+#	$OUToutput .= "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
+	$OUToutput .= "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
+
+
+
+
+
+	##############################
+	#########  ID DE LA LISTE BREAKDOWN STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ID DE LA LISTE STATS\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| LIST                                     | CALLS      |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+	$stmt="select count(*),list_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by list_id;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$listids_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$LISTIDcalls[$i] =	$row[0];
+		$LISTIDlists[$i] =	$row[1];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$stmt="select list_name from vicidial_lists where list_id='$LISTIDlists[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$list_name_to_print = mysql_num_rows($rslt);
+		if ($list_name_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$LISTIDlist_names[$i] =	$row[0];
+			}
+
+		$TOTALcalls = ($TOTALcalls + $LISTIDcalls[$i]);
+
+		$LISTIDcount =	sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
+		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
+
+		$OUToutput .= "| $LISTIDname | $LISTIDcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| TOTAL:                                   | $TOTALcalls |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+
+
+
+
+	if ( ($carrier_logging_active > 0) and ($carrier_stats == 'YES') )
+		{
+		##############################
+		#########  STATUS CATÉGORIE STATS
+
+		$OUToutput .= "\n";
+		$OUToutput .= "---------- CARRIER CALL STATUSES\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| STATUS               | CALLS      |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+
+		## get counts and time totals for all statuses in this campaign
+		$stmt="select dialstatus,count(*) from vicidial_carrier_log vcl,vicidial_log vl where vcl.uniqueid=vl.uniqueid and vcl.call_date > \"$query_date_BEGIN\" and vcl.call_date < \"$query_date_END\" and vl.call_date > \"$query_date_BEGIN\" and vl.call_date < \"$query_date_END\" $group_SQLand group by dialstatus order by dialstatus;";
+		if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$carrierstatuses_to_print = mysql_num_rows($rslt);
+		$i=0;
+		while ($i < $carrierstatuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$TOTCARcalls = ($TOTCARcalls + $row[1]);
+			$CARstatus =	sprintf("%-20s", $row[0]); while(strlen($CARstatus)>20) {$CARstatus = substr("$CARstatus", 0, -1);}
+			$CARcount =		sprintf("%10s", $row[1]); while(strlen($CARcount)>10) {$CARcount = substr("$CARcount", 0, -1);}
+
+			$OUToutput .= "| $CARstatus | $CARcount |\n";
+
+			$i++;
+			}
+
+		$TOTCARcalls =	sprintf("%10s", $TOTCARcalls); while(strlen($TOTCARcalls)>10) {$TOTCARcalls = substr("$TOTCARcalls", 0, -1);}
+
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| TOTAL                | $TOTCARcalls |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		}
+
+
+	##############################
+	#########  STATUS CATÉGORIE STATS
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CUSTOM STATUS CATÉGORIE STATS\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| CATÉGORIE             | CALLS      | DESCRIPTION                    |\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+
+
+	$TOTCATcalls=0;
 	$r=0;
 	while ($r < $statcats_to_print)
 		{
-		if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
+		if ($vsc_id[$r] != 'UNDEFINED')
 			{
-			$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+			$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+			$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+			$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+			$OUToutput .= "| $category | $CATcount | $CATname |\n";
 			}
 		$r++;
 		}
-	if ($AGENTsec < 1) {$AGENTsec=1;}
-	$TOTALcalls =	($TOTALcalls + $row[0]);
-	$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
-		$STATUSrate =	sprintf("%.2f", $STATUSrate);
-	$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
-		$AGENTrate =	sprintf("%.2f", $AGENTrate);
 
-	$STATUShours_H =	($row[2] / 3600);
-	$STATUShours_H_int = round($STATUShours_H, 2);
-	$STATUShours_H_int = intval("$STATUShours_H_int");
-	$STATUShours_M = ($STATUShours_H - $STATUShours_H_int);
-	$STATUShours_M = ($STATUShours_M * 60);
-	$STATUShours_M_int = round($STATUShours_M, 2);
-	$STATUShours_M_int = intval("$STATUShours_M_int");
-	$STATUShours_S = ($STATUShours_M - $STATUShours_M_int);
-	$STATUShours_S = ($STATUShours_S * 60);
-	$STATUShours_S = round($STATUShours_S, 0);
-	if ($STATUShours_S < 10) {$STATUShours_S = "0$STATUShours_S";}
-	if ($STATUShours_M_int < 10) {$STATUShours_M_int = "0$STATUShours_M_int";}
-	$STATUShours = "$STATUShours_H_int:$STATUShours_M_int:$STATUShours_S";
+	$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
 
-	$STATUSavg_H =	(($row[2] / 3600) / $STATUScount);
-	$STATUSavg_H_int = round($STATUSavg_H, 2);
-	$STATUSavg_H_int = intval("$STATUSavg_H_int");
-	$STATUSavg_M = ($STATUSavg_H - $STATUSavg_H_int);
-	$STATUSavg_M = ($STATUSavg_M * 60);
-	$STATUSavg_M_int = round($STATUSavg_M, 2);
-	$STATUSavg_M_int = intval("$STATUSavg_M_int");
-	$STATUSavg_S = ($STATUSavg_M - $STATUSavg_M_int);
-	$STATUSavg_S = ($STATUSavg_S * 60);
-	$STATUSavg_S = round($STATUSavg_S, 0);
-	if ($STATUSavg_S < 10) {$STATUSavg_S = "0$STATUSavg_S";}
-	if ($STATUSavg_M_int < 10) {$STATUSavg_M_int = "0$STATUSavg_M_int";}
-	$STATUSavg = "$STATUSavg_H_int:$STATUSavg_M_int:$STATUSavg_S";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
 
-	$STATUScount =	sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
-	$status =	sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
-	$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
-	$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
-	$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
-	$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
 
-	if ($non_latin < 1)
+
+	##############################
+	#########  USER STATS
+
+	$TOTagents=0;
+	$TOTcalls=0;
+	$TOTtime=0;
+	$TOTavg=0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- AGENT STATS\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+
+	$stmt="select vicidial_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
 		{
-		$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
-		while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
-		$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
-		while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
-		}
-	else
-		{
-		$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
-		while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
-		$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
-		while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+		$row=mysql_fetch_row($rslt);
+
+		$RAWuser[$i] =			$row[0];
+		$RAWfull_name[$i] =		$row[1];
+		$RAWuser_calls[$i] =	$row[2];
+		$RAWuser_talk[$i] =		$row[3];
+		$RAWuser_average[$i] =	$row[4];
+
+		$TOTcalls = ($TOTcalls + $row[2]);
+		$TOTtime = ($TOTtime + $row[3]);
+
+		$i++;
 		}
 
-	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
-
-	$i++;
-	}
-
-if ($TOTALcalls < 1)
-	{
-	$TOTALhours =	'0:00:00';
-	$TOTALavg =		'0:00:00';
-	$TOTALrate =	'0.00';
-	}
-else
-	{
-	$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
-		$TOTALrate =	sprintf("%.2f", $TOTALrate);
-	$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
-		$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
-
-	$aTOTALhours_H =	($AGENTsec / 3600);
-	$aTOTALhours_H_int = round($aTOTALhours_H, 2);
-	$aTOTALhours_H_int = intval("$aTOTALhours_H_int");
-	$aTOTALhours_M = ($aTOTALhours_H - $aTOTALhours_H_int);
-	$aTOTALhours_M = ($aTOTALhours_M * 60);
-	$aTOTALhours_M_int = round($aTOTALhours_M, 2);
-	$aTOTALhours_M_int = intval("$aTOTALhours_M_int");
-	$aTOTALhours_S = ($aTOTALhours_M - $aTOTALhours_M_int);
-	$aTOTALhours_S = ($aTOTALhours_S * 60);
-	$aTOTALhours_S = round($aTOTALhours_S, 0);
-	if ($aTOTALhours_S < 10) {$aTOTALhours_S = "0$aTOTALhours_S";}
-	if ($aTOTALhours_M_int < 10) {$aTOTALhours_M_int = "0$aTOTALhours_M_int";}
-	$aTOTALhours = "$aTOTALhours_H_int:$aTOTALhours_M_int:$aTOTALhours_S";
-
-	$TOTALhours_H =	($TOTALsec / 3600);
-	$TOTALhours_H_int = round($TOTALhours_H, 2);
-	$TOTALhours_H_int = intval("$TOTALhours_H_int");
-	$TOTALhours_M = ($TOTALhours_H - $TOTALhours_H_int);
-	$TOTALhours_M = ($TOTALhours_M * 60);
-	$TOTALhours_M_int = round($TOTALhours_M, 2);
-	$TOTALhours_M_int = intval("$TOTALhours_M_int");
-	$TOTALhours_S = ($TOTALhours_M - $TOTALhours_M_int);
-	$TOTALhours_S = ($TOTALhours_S * 60);
-	$TOTALhours_S = round($TOTALhours_S, 0);
-	if ($TOTALhours_S < 10) {$TOTALhours_S = "0$TOTALhours_S";}
-	if ($TOTALhours_M_int < 10) {$TOTALhours_M_int = "0$TOTALhours_M_int";}
-	$TOTALhours = "$TOTALhours_H_int:$TOTALhours_M_int:$TOTALhours_S";
-
-	$TOTALavg_H =	(($TOTALsec / 3600) / $TOTALcalls);
-	$TOTALavg_H_int = round($TOTALavg_H, 2);
-	$TOTALavg_H_int = intval("$TOTALavg_H_int");
-	$TOTALavg_M = ($TOTALavg_H - $TOTALavg_H_int);
-	$TOTALavg_M = ($TOTALavg_M * 60);
-	$TOTALavg_M_int = round($TOTALavg_M, 2);
-	$TOTALavg_M_int = intval("$TOTALavg_M_int");
-	$TOTALavg_S = ($TOTALavg_M - $TOTALavg_M_int);
-	$TOTALavg_S = ($TOTALavg_S * 60);
-	$TOTALavg_S = round($TOTALavg_S, 0);
-	if ($TOTALavg_S < 10) {$TOTALavg_S = "0$TOTALavg_S";}
-	if ($TOTALavg_M_int < 10) {$TOTALavg_M_int = "0$TOTALavg_M_int";}
-	$TOTALavg = "$TOTALavg_H_int:$TOTALavg_M_int:$TOTALavg_S";
-	}
-$TOTALcalls =	sprintf("%10s", $TOTALcalls);
-$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
-$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
-$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
-$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
-$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
-
-echo "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
-echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
-echo "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
-echo "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
-
-
-
-##############################
-#########  STATUS CATEGORY STATS
-
-echo "\n";
-echo "---------- CUSTOM STATUS CATÉGORIE STATS\n";
-echo "+----------------------+------------+--------------------------------+\n";
-echo "| CATÉGORIE             | CALLS      | DESCRIPTION                    |\n";
-echo "+----------------------+------------+--------------------------------+\n";
-
-
-$TOTCATcalls=0;
-$r=0;
-while ($r < $statcats_to_print)
-	{
-	if ($vsc_id[$r] != 'UNDEFINED')
+	$i=0;
+	while ($i < $users_to_print)
 		{
-		$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
-		$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
-		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
-		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
-
-		echo "| $category | $CATcount | $CATname |\n";
-		}
-	$r++;
-	}
-
-$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
-
-echo "+----------------------+------------+--------------------------------+\n";
-echo "| TOTAL                | $TOTCATcalls |\n";
-echo "+----------------------+------------+\n";
-
-
-
-##############################
-#########  USER STATS
-
-$TOTagents=0;
-$TOTcalls=0;
-$TOTtime=0;
-$TOTavg=0;
-
-echo "\n";
-echo "---------- AGENT STATS\n";
-echo "+--------------------------+------------+----------+--------+\n";
-echo "| AGENT                    | CALLS      | TIME M   | AVRG M |\n";
-echo "+--------------------------+------------+----------+--------+\n";
-
-$stmt="select vicidial_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
-if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$users_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $users_to_print)
-	{
-	$row=mysql_fetch_row($rslt);
-
-	$TOTcalls = ($TOTcalls + $row[2]);
-	$TOTtime = ($TOTtime + $row[3]);
-
-	$user =	sprintf("%-6s", $row[0]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
-	if ($non_latin < 1)
-	{
- 	 $full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
-	}
-	else
-	{
-	 $full_name =	sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
-	}
-	$USERcalls =	sprintf("%10s", $row[2]);
-	$USERtotTALK =	$row[3];
-	$USERavgTALK =	$row[4];
-
-	$USERtotTALK_M = ($USERtotTALK / 60);
-	$USERtotTALK_M_int = round($USERtotTALK_M, 2);
-	$USERtotTALK_M_int = intval("$USERtotTALK_M_int");
-	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
-	$USERtotTALK_S = ($USERtotTALK_S * 60);
-	$USERtotTALK_S = round($USERtotTALK_S, 0);
-	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
-	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
-	$USERtotTALK_MS =		sprintf("%6s", $USERtotTALK_MS);
-
-	$USERavgTALK_M = ($USERavgTALK / 60);
-	$USERavgTALK_M_int = round($USERavgTALK_M, 2);
-	$USERavgTALK_M_int = intval("$USERavgTALK_M_int");
-	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
-	$USERavgTALK_S = ($USERavgTALK_S * 60);
-	$USERavgTALK_S = round($USERavgTALK_S, 0);
-	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
-	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
-	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
-
-	echo "| $user - $full_name | $USERcalls |   $USERtotTALK_MS | $USERavgTALK_MS |\n";
-
-	$i++;
-	}
-
-if (!$TOTcalls) {$TOTcalls = 1;}
-$TOTavg = ($TOTtime / $TOTcalls);
-$TOTavg = round($TOTavg, 0);
-$TOTavg_M = ($TOTavg / 60);
-$TOTavg_M_int = round($TOTavg_M, 2);
-$TOTavg_M_int = intval("$TOTavg_M_int");
-$TOTavg_S = ($TOTavg_M - $TOTavg_M_int);
-$TOTavg_S = ($TOTavg_S * 60);
-$TOTavg_S = round($TOTavg_S, 0);
-if ($TOTavg_S < 10) {$TOTavg_S = "0$TOTavg_S";}
-$TOTavg_MS = "$TOTavg_M_int:$TOTavg_S";
-$TOTavg =		sprintf("%6s", $TOTavg_MS);
-
-$TOTtime_M = ($TOTtime / 60);
-$TOTtime_M_int = round($TOTtime_M, 2);
-$TOTtime_M_int = intval("$TOTtime_M_int");
-$TOTtime_S = ($TOTtime_M - $TOTtime_M_int);
-$TOTtime_S = ($TOTtime_S * 60);
-$TOTtime_S = round($TOTtime_S, 0);
-if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";}
-$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S";
-$TOTtime =		sprintf("%6s", $TOTtime_MS);
-
-$TOTagents =		sprintf("%10s", $i);
-$TOTcalls =			sprintf("%10s", $TOTcalls);
-$TOTtime =			sprintf("%8s", $TOTtime);
-$TOTavg =			sprintf("%6s", $TOTavg);
-
-$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$AVGwait = $row[0];
-$AVGwait_M = ($AVGwait / 60);
-$AVGwait_M_int = round($AVGwait_M, 2);
-$AVGwait_M_int = intval("$AVGwait_M_int");
-$AVGwait_S = ($AVGwait_M - $AVGwait_M_int);
-$AVGwait_S = ($AVGwait_S * 60);
-$AVGwait_S = round($AVGwait_S, 0);
-if ($AVGwait_S < 10) {$AVGwait_S = "0$AVGwait_S";}
-$AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
-$AVGwait =		sprintf("%6s", $AVGwait_MS);
-
-echo "+--------------------------+------------+----------+--------+\n";
-echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
-echo "+--------------------------+------------+----------+--------+\n";
-echo "| Average Wait time between calls                    $AVGwait |\n";
-echo "+-----------------------------------------------------------+\n";
-
-##############################
-#########  TIME STATS
-
-echo "\n";
-echo "---------- STATISTIQUE TEMPORELLES\n";
-
-echo "\n";
-
-$hi_hour_count=0;
-$last_full_record=0;
-$i=0;
-$h=0;
-while ($i <= 96)
-	{
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' $group_SQLand;";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' $group_SQLand and status='DROP';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$drop_count[$i] = $row[0];
-	$i++;
-
-
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand and status='DROP';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$drop_count[$i] = $row[0];
-	$i++;
-
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand and status='DROP';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$drop_count[$i] = $row[0];
-	$i++;
-
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand and status='DROP';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$drop_count[$i] = $row[0];
-	$i++;
-	$h++;
-	}
-
-if ($hi_hour_count < 1)
-	{$hour_multiplier = 0;}
-else
-	{
-	$hour_multiplier = (100 / $hi_hour_count);
-	#$hour_multiplier = round($hour_multiplier, 0);
-	}
-
-echo "\n";
-echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES POUR LE TOTAL DES APPELS PLACES DEPUIS CETTE CAMPAGNE\n";
-
-$k=1;
-$Mk=0;
-$call_scale = '0';
-while ($k <= 102) 
-	{
-	if ($Mk >= 5) 
-		{
-		$Mk=0;
-		if ( ($k < 1) or ($hour_multiplier <= 0) )
-			{$scale_num = 100;}
+		$user =	sprintf("%-6s", $RAWuser[$i]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
+		if ($non_latin < 1)
+			{
+			$full_name =	sprintf("%-15s", $RAWfull_name[$i]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+			}
 		else
 			{
-			$scale_num=($k / $hour_multiplier);
-			$scale_num = round($scale_num, 0);
+			$full_name =	sprintf("%-45s", $RAWfull_name[$i]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
 			}
-		$LENscale_num = (strlen($scale_num));
-		$k = ($k + $LENscale_num);
-		$call_scale .= "$scale_num";
+		if (eregi("YES",$include_rollover))
+			{
+			$length_in_secZ=0;
+			$queue_secondsZ=0;
+			$agent_alert_delayZ=0;
+			$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and user='$RAWuser[$i]' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_printZ = mysql_num_rows($rslt);
+			$y=0;
+			while ($y < $INallcalls_to_printZ)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				$length_in_secZ = $row[0];
+				$queue_secondsZ = $row[1];
+				$agent_alert_delayZ = $row[2];
+
+				$CIdelay =		round($agent_alert_delayZ / 1000);
+				$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+				if ($thiscallsec < 0)
+					{$thiscallsec = 0;}
+				$inCIsec =	($inCIsec + $thiscallsec);	
+
+				$y++;
+				}
+
+			$inCIcallsRAW =	$y;
+			$RAWuser_talk[$i] = ($RAWuser_talk[$i] + $inCIsec);
+			$RAWuser_calls[$i] = ($RAWuser_calls[$i] + $inCIcallsRAW);
+
+			$TOTcalls = ($TOTcalls + $inCIcallsRAW);
+			$TOTtime = ($TOTtime + $inCIsec);
+			}
+
+		$USERcalls =	sprintf("%10s", $RAWuser_calls[$i]);
+		$USERtotTALK =	$RAWuser_talk[$i];
+		$USERavgTALK =	round($RAWuser_talk[$i] / $RAWuser_calls[$i]);
+
+		$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+		$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+		$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+		$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+		$OUToutput .= "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+		$i++;
 		}
-	else
+
+	$rawTOTtime = $TOTtime;
+
+	if (!$TOTcalls) {$TOTcalls = 1;}
+	$TOTavg = ($TOTtime / $TOTcalls);
+
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+	$TOTagents =		sprintf("%10s", $i);
+	$TOTcalls =			sprintf("%10s", $TOTcalls);
+	$TOTtime =			sprintf("%8s", $TOTtime);
+	$TOTavg =			sprintf("%6s", $TOTavg);
+
+	$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$AVGwait = $row[0];
+	$AVGwait_MS =	sec_convert($AVGwait,'H'); 
+	$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| Average Wait time between calls                      $AVGwait |\n";
+	$OUToutput .= "+-------------------------------------------------------------+\n";
+
+
+
+	if ($costformat > 0)
 		{
-		$call_scale .= " ";
-		$k++;   $Mk++;
+		$stmt="select campaign_id,phone_number,length_in_sec from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user=vicidial_users.user;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$allcalls_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $allcalls_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			if ($print_calls > 0)
+				{echo "$row[0]\t$row[1]\t$row[2]\n";}
+			$tempTALK = ($tempTALK + $row[2]);
+			$w++;
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select campaign_id,phone_number,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_print = mysql_num_rows($rslt);
+			$w=0;
+			while ($w < $INallcalls_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				if ($print_calls > 0)
+				{	echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\n";}
+				$newTALK = ($row[2] - $row[3] - ($row[4] / 1000) );
+				if ($newTALK < 0) {$newTALK = 0;}
+				$tempTALK = ($tempTALK + $newTALK);
+				$w++;
+				}
+			}
+		$tempTALKmin = ($tempTALK  / 60);
+		if ($print_calls > 0)
+			{echo "$w\t$tempTALK\t$tempTALKmin\n";}
+
+		echo "
\n"; + $rawTOTtalk_min = round($tempTALK / 60); + $outbound_cost = ($rawTOTtalk_min * $outbound_rate); + $outbound_cost = sprintf("%8.2f", $outbound_cost); + + echo "SORTANT $query_date to $end_date,   $rawTOTtalk_min minutes at \$$outbound_rate = \$$outbound_cost\n"; + + exit; } - } -echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; -#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; -echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; -echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + echo "$OUToutput"; -$ZZ = '00'; -$i=0; -$h=4; -$hour= -1; -$no_lines_yet=1; -while ($i <= 96) - { - $char_counter=0; - $time = ' '; - if ($h >= 4) + + + if ($bottom_graph == 'YES') { - $hour++; + ############################## + ######### TIME STATS + + echo "\n"; + echo "---------- STATISTIQUE TEMPORELLES\n"; + + echo "\n"; + + $hi_hour_count=0; + $last_full_record=0; + $i=0; $h=0; - if ($hour < 10) {$hour = "0$hour";} - $time = "+$hour$ZZ+"; - } - if ($h == 1) {$time = " 15 ";} - if ($h == 2) {$time = " 30 ";} - if ($h == 3) {$time = " 45 ";} - $Ghour_count = $hour_count[$i]; - if ($Ghour_count < 1) - { - if ( ($no_lines_yet) or ($i > $last_full_record) ) + while ($i <= 96) { - $do_nothing=1; + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} + if ($hour_count[$i] > 0) {$last_full_record = $i;} + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:00:00' and call_date <= '$query_date $h:14:59' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} + if ($hour_count[$i] > 0) {$last_full_record = $i;} + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} + if ($hour_count[$i] > 0) {$last_full_record = $i;} + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];} + if ($hour_count[$i] > 0) {$last_full_record = $i;} + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + $h++; } + + if ($hi_hour_count < 1) + {$hour_multiplier = 0;} else { - $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); - echo "|$time|"; - $k=0; while ($k <= 102) {echo " "; $k++;} - echo "| $hour_count[$i] |\n"; + $hour_multiplier = (100 / $hi_hour_count); + #$hour_multiplier = round($hour_multiplier, 0); } - } - else - { - $no_lines_yet=0; - $Xhour_count = ($Ghour_count * $hour_multiplier); - $Yhour_count = (99 - $Xhour_count); - $Gdrop_count = $drop_count[$i]; - if ($Gdrop_count < 1) + echo "\n"; + echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES POUR LE TOTAL DES APPELS PLACES DEPUIS CETTE CAMPAGNE\n"; + + $k=1; + $Mk=0; + $call_scale = '0'; + while ($k <= 102) { - $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); - - echo "|$time|"; - $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} - echo "*X"; $char_counter++; - $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} - while ($char_counter <= 101) {echo " "; $char_counter++;} - echo "| 0 | $hour_count[$i] |\n"; - + if ($Mk >= 5) + { + $Mk=0; + if ( ($k < 1) or ($hour_multiplier <= 0) ) + {$scale_num = 100;} + else + { + $scale_num=($k / $hour_multiplier); + $scale_num = round($scale_num, 0); + } + $LENscale_num = (strlen($scale_num)); + $k = ($k + $LENscale_num); + $call_scale .= "$scale_num"; + } + else + { + $call_scale .= " "; + $k++; $Mk++; + } } - else + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; + echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + $ZZ = '00'; + $i=0; + $h=4; + $hour= -1; + $no_lines_yet=1; + + while ($i <= 96) { - $Xdrop_count = ($Gdrop_count * $hour_multiplier); + $char_counter=0; + $time = ' '; + if ($h >= 4) + { + $hour++; + $h=0; + if ($hour < 10) {$hour = "0$hour";} + $time = "+$hour$ZZ+"; + } + if ($h == 1) {$time = " 15 ";} + if ($h == 2) {$time = " 30 ";} + if ($h == 3) {$time = " 45 ";} + $Ghour_count = $hour_count[$i]; + if ($Ghour_count < 1) + { + if ( ($no_lines_yet) or ($i > $last_full_record) ) + { + $do_nothing=1; + } + else + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + echo "|$time|"; + $k=0; while ($k <= 102) {echo " "; $k++;} + echo "| $hour_count[$i] |\n"; + } + } + else + { + $no_lines_yet=0; + $Xhour_count = ($Ghour_count * $hour_multiplier); + $Yhour_count = (99 - $Xhour_count); - # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + $Gdrop_count = $drop_count[$i]; + if ($Gdrop_count < 1) + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); - $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + echo "|$time|"; + $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} + echo "*X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 101) {echo " "; $char_counter++;} + echo "| 0 | $hour_count[$i] |\n"; - $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); - $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + } + else + { + $Xdrop_count = ($Gdrop_count * $hour_multiplier); - echo "|$time|"; - $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} - echo "D"; $char_counter++; - $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} - echo "X"; $char_counter++; - $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} - while ($char_counter <= 102) {echo " "; $char_counter++;} - echo "| $drop_count[$i] | $hour_count[$i] |\n"; + # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + + $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} + echo "D"; $char_counter++; + $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} + echo "X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 102) {echo " "; $char_counter++;} + echo "| $drop_count[$i] | $hour_count[$i] |\n"; + } + } + + + $i++; + $h++; } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + ### END bottom graph } - - - $i++; - $h++; + + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\nRun Time: $RUNtime seconds\n"; } -echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; - - - - - - -$ENDtime = date("U"); -$RUNtime = ($ENDtime - $STARTtime); -echo "\nRun Time: $RUNtime seconds\n"; - -} - - ?>
- \ No newline at end of file + diff --git a/LANG_www/vicidial_fr/AST_VICIDIAL_hopperlist.php b/LANG_www/vicidial_fr/AST_VICIDIAL_hopperlist.php index c2b36594..40a12be3 100644 --- a/LANG_www/vicidial_fr/AST_VICIDIAL_hopperlist.php +++ b/LANG_www/vicidial_fr/AST_VICIDIAL_hopperlist.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -10,6 +10,8 @@ # 70115-1614 - Added ALT field for vicidial_hopper alt_dial column # 71029-0852 - Added list_id to the output # 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY # require("dbconnect.php"); @@ -73,19 +75,19 @@ while ($i < $campaigns_to_print) --> -\n"; -echo "VICIDIAL: Liste des distributeurs de fiches\n"; +echo "Liste des distributeurs de fiches Report\n"; echo "\n"; #echo "\n"; #echo "\n"; echo "\n"; echo "\n"; @@ -96,74 +98,70 @@ echo "
\n\n";
 
 
 if (!$group)
-{
-echo "\n\n";
-echo "VEUILLEZ SELECTIONNER UNE CAMPAGNE CI-DESSUS ET CLIQUEZ SUR VALIDER\n";
-}
-
-else
-{
-
-
-echo "VICIDIAL: Liste des distributeurs de fiches en cours                      $NOW_TIME\n";
-
-echo "\n";
-echo "---------- TOTALS\n";
-
-$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$TOTALcalls =	sprintf("%10s", $row[0]);
-
-echo "Total de fiches dans le distributeur de fiches à l'instant:       $TOTALcalls\n";
-
-
-##############################
-#########  LEAD STATS
-
-echo "\n";
-echo "---------- LEADS IN HOPPER\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-echo "|ORDER |PRIORITÉ| LEAD ID   | ID DE LA LISTE    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-
-$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$users_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $users_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-
-	$FMT_i =		sprintf("%-4s", $i);
-	$lead_id =		sprintf("%-9s", $row[0]);
-	$phone_number =	sprintf("%-10s", $row[1]);
-	$state =		sprintf("%-5s", $row[2]);
-	$status =		sprintf("%-6s", $row[3]);
-	$count =		sprintf("%-5s", $row[4]);
-	$gmt =			sprintf("%-6s", $row[5]);
-	$hopper_id =	sprintf("%-6s", $row[6]);
-	$alt_dial =		sprintf("%-5s", $row[7]);
-	$list_id =		sprintf("%-10s", $row[8]);
-	$priority =		sprintf("%-6s", $row[9]);
-
-if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
-else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
-
-	$i++;
+	echo "\n\n";
+	echo "VEUILLEZ SELECTIONNER UNE CAMPAGNE CI-DESSUS ET CLIQUEZ SUR VALIDER\n";
 	}
 
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+else
+	{
+	echo "Liste des distributeurs de fiches en cours                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Total de fiches dans le distributeur de fiches à l'instant:       $TOTALcalls\n";
 
 
-}
+	##############################
+	#########  LEAD STATS
 
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORITÉ| LEAD ID   | ID DE LA LISTE    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
 
 
 ?>
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_fr/AST_agent_days_detail.php b/LANG_www/vicidial_fr/AST_agent_days_detail.php index ed269067..11e2a7d2 100644 --- a/LANG_www/vicidial_fr/AST_agent_days_detail.php +++ b/LANG_www/vicidial_fr/AST_agent_days_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-2202 - First build # 90225-1051 - Added CSV download option # 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags # @@ -157,10 +158,10 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Jours Etat\n"; + echo "Agent Jours Etat Report\n"; echo ""; $short_header=1; @@ -208,14 +209,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Days Détail: $user $NOW_TIME\n"; + echo "Agent Jours Etat Report: $user $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- AGENT Détails -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Days Détail: $user $NOW_TIME\n"; + $file_output .= "Agent Jours Etat Report: $user $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } @@ -529,9 +530,9 @@ echo "
to
Campagnes:
"; echo "
"; echo "\n"; +echo "
Dates:
"; echo "\n"; echo "\n"; -echo " to \n"; -echo "\n"; +echo "
Campagnes:
"; +echo "\n"; +echo "
Groupes d'utilisateurs:
"; +echo "\n"; -echo "\n"; +echo "
Shift:
"; echo "\n"; +echo "

\n"; echo "\n"; -echo "           MODIFIER | RAPPORTS \n"; +echo "
        "; + +echo "          \n"; +echo " RAPPORTS \n"; +echo "\n"; +echo "
"; + echo "\n\n"; + echo "
\n";
 
 
@@ -205,7 +267,7 @@ $query_date_END = "$end_date $time_END";
 if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
 else {$ugSQL='';}
 
-echo "VICIDIAL: Agent Performance Détail                        $NOW_TIME\n";
+echo "Agent Performance Détail                        $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENTS Détails -------------\n\n";
@@ -225,7 +287,7 @@ $usersARY[0]='';
 $user_namesARY[0]='';
 $k=0;
 
-$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000 $ugSQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $rows_to_print = mysql_num_rows($rslt);
@@ -243,6 +305,7 @@ while ($i < $rows_to_print)
 	$wait_sec[$i] =		$row[5];
 	$dispo_sec[$i] =	$row[6];
 	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
 	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
 		{
 		$statusesTXT = sprintf("%8s", $status[$i]);
@@ -264,9 +327,9 @@ while ($i < $rows_to_print)
 	}
 
 echo "CALL STATS BREAKDOWN:\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "| USER NAME       | ID       | CALLS  | TIME    | PAUSE  | PAUSAVG| WAIT   | WAITAVG| TALK   | TALKAVG| DISPO  | DISPAVG|$statusesHTML\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -281,6 +344,7 @@ while ($m < $k)
 	$Spause_sec=0;
 	$Swait_sec=0;
 	$Sdispo_sec=0;
+	$Sdead_sec=0;
 	$SstatusesHTML='';
 
 	### BEGIN loop through each status ###
@@ -300,6 +364,7 @@ while ($m < $k)
 				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
 				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
 				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
 				$SstatusTXT = sprintf("%8s", $calls[$i]);
 				$SstatusesHTML .= " $SstatusTXT |";
 				$status_found++;
@@ -321,6 +386,7 @@ while ($m < $k)
 	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
 	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
 	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
 	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
 	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
 		else {$Stalk_avg=0;}
@@ -330,6 +396,8 @@ while ($m < $k)
 		else {$Swait_avg=0;}
 	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
 		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
 
 	$RAWuser = $Suser;
 	$RAWcalls = $Scalls;
@@ -337,112 +405,45 @@ while ($m < $k)
 
 	if ($non_latin < 1)
 		{
-		 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
-			while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
-		 $Suser =		sprintf("%-8s", $Suser);
-			while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
 		}
 	else
 		{	
-			$Sfull_name=	sprintf("%-45s", $Sfull_name); 
-		 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
-			$Suser =	sprintf("%-24s", $Suser);
-		 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
 
-	$USERtime_M = ($Stime / 60);
-	$USERtime_M_int = round($USERtime_M, 2);
-	$USERtime_M_int = intval("$USERtime_M_int");
-	$USERtime_S = ($USERtime_M - $USERtime_M_int);
-	$USERtime_S = ($USERtime_S * 60);
-	$USERtime_S = round($USERtime_S, 0);
-	if ($USERtime_S < 10) {$USERtime_S = "0$USERtime_S";}
-	$USERtime_MS = "$USERtime_M_int:$USERtime_S";
-	$pfUSERtime_MS =		sprintf("%7s", $USERtime_MS);
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
 
-	$USERtotTALK_M = ($Stalk_sec / 60);
-	$USERtotTALK_M_int = round($USERtotTALK_M, 2);
-	$USERtotTALK_M_int = intval("$USERtotTALK_M_int");
-	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
-	$USERtotTALK_S = ($USERtotTALK_S * 60);
-	$USERtotTALK_S = round($USERtotTALK_S, 0);
-	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
-	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
-	$pfUSERtotTALK_MS =		sprintf("%6s", $USERtotTALK_MS);
-
-	$USERavgTALK_M = ($Stalk_avg / 60);
-	$USERavgTALK_M_int = round($USERavgTALK_M, 2);
-	$USERavgTALK_M_int = intval("$USERavgTALK_M_int");
-	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
-	$USERavgTALK_S = ($USERavgTALK_S * 60);
-	$USERavgTALK_S = round($USERavgTALK_S, 0);
-	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
-	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
-	$pfUSERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
-
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
 	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
 
-	$USERavgPAUSE_M = ($Spause_avg / 60);
-	$USERavgPAUSE_M_int = round($USERavgPAUSE_M, 2);
-	$USERavgPAUSE_M_int = intval("$USERavgPAUSE_M_int");
-	$USERavgPAUSE_S = ($USERavgPAUSE_M - $USERavgPAUSE_M_int);
-	$USERavgPAUSE_S = ($USERavgPAUSE_S * 60);
-	$USERavgPAUSE_S = round($USERavgPAUSE_S, 0);
-	if ($USERavgPAUSE_S < 10) {$USERavgPAUSE_S = "0$USERavgPAUSE_S";}
-	$USERavgPAUSE_MS = "$USERavgPAUSE_M_int:$USERavgPAUSE_S";
-	$pfUSERavgPAUSE_MS =		sprintf("%6s", $USERavgPAUSE_MS);
-
-	$USERtotWAIT_M = ($Swait_sec / 60);
-	$USERtotWAIT_M_int = round($USERtotWAIT_M, 2);
-	$USERtotWAIT_M_int = intval("$USERtotWAIT_M_int");
-	$USERtotWAIT_S = ($USERtotWAIT_M - $USERtotWAIT_M_int);
-	$USERtotWAIT_S = ($USERtotWAIT_S * 60);
-	$USERtotWAIT_S = round($USERtotWAIT_S, 0);
-	if ($USERtotWAIT_S < 10) {$USERtotWAIT_S = "0$USERtotWAIT_S";}
-	$USERtotWAIT_MS = "$USERtotWAIT_M_int:$USERtotWAIT_S";
-	$pfUSERtotWAIT_MS =		sprintf("%6s", $USERtotWAIT_MS);
-
-	$USERavgWAIT_M = ($Swait_avg / 60);
-	$USERavgWAIT_M_int = round($USERavgWAIT_M, 2);
-	$USERavgWAIT_M_int = intval("$USERavgWAIT_M_int");
-	$USERavgWAIT_S = ($USERavgWAIT_M - $USERavgWAIT_M_int);
-	$USERavgWAIT_S = ($USERavgWAIT_S * 60);
-	$USERavgWAIT_S = round($USERavgWAIT_S, 0);
-	if ($USERavgWAIT_S < 10) {$USERavgWAIT_S = "0$USERavgWAIT_S";}
-	$USERavgWAIT_MS = "$USERavgWAIT_M_int:$USERavgWAIT_S";
-	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
-	
-	$USERtotDISPO_M = ($Sdispo_sec / 60);
-	$USERtotDISPO_M_int = round($USERtotDISPO_M, 2);
-	$USERtotDISPO_M_int = intval("$USERtotDISPO_M_int");
-	$USERtotDISPO_S = ($USERtotDISPO_M - $USERtotDISPO_M_int);
-	$USERtotDISPO_S = ($USERtotDISPO_S * 60);
-	$USERtotDISPO_S = round($USERtotDISPO_S, 0);
-	if ($USERtotDISPO_S < 10) {$USERtotDISPO_S = "0$USERtotDISPO_S";}
-	$USERtotDISPO_MS = "$USERtotDISPO_M_int:$USERtotDISPO_S";
-	$pfUSERtotDISPO_MS =		sprintf("%6s", $USERtotDISPO_MS);
-
-	$USERavgDISPO_M = ($Sdispo_avg / 60);
-	$USERavgDISPO_M_int = round($USERavgDISPO_M, 2);
-	$USERavgDISPO_M_int = intval("$USERavgDISPO_M_int");
-	$USERavgDISPO_S = ($USERavgDISPO_M - $USERavgDISPO_M_int);
-	$USERavgDISPO_S = ($USERavgDISPO_S * 60);
-	$USERavgDISPO_S = round($USERavgDISPO_S, 0);
-	if ($USERavgDISPO_S < 10) {$USERavgDISPO_S = "0$USERavgDISPO_S";}
-	$USERavgDISPO_MS = "$USERavgDISPO_M_int:$USERavgDISPO_S";
-	$pfUSERavgDISPO_MS =		sprintf("%6s", $USERavgDISPO_MS);
-
-	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS |$SstatusesHTML\n";
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
 
 	$TOPsorted_output[$m] = $Toutput;
 
@@ -517,120 +518,60 @@ while ($n < $j)
 	}
 ### END loop through each status ###
 
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTcalls =	sprintf("%7s", $TOTcalls);
-	$TOT_AGENTS = sprintf("%-4s", $m);
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
 
-	$TOTtime_M = ($TOTtime / 60);
-	$TOTtime_M_int = round($TOTtime_M, 2);
-	$TOTtime_M_int = intval("$TOTtime_M_int");
-	$TOTtime_S = ($TOTtime_M - $TOTtime_M_int);
-	$TOTtime_S = ($TOTtime_S * 60);
-	$TOTtime_S = round($TOTtime_S, 0);
-	if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";}
-	$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S";
-	$TOTtime_MS =		sprintf("%8s", $TOTtime_MS);
-		while(strlen($TOTtime_MS)>8) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
 
-	$TOTtotTALK_M = ($TOTtotTALK / 60);
-	$TOTtotTALK_M_int = round($TOTtotTALK_M, 2);
-	$TOTtotTALK_M_int = intval("$TOTtotTALK_M_int");
-	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
-	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
-	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
-	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
-	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
-	$TOTtotTALK_MS =		sprintf("%8s", $TOTtotTALK_MS);
-		while(strlen($TOTtotTALK_MS)>8) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
 
-	if ($TOTtotDISPO < 1) {$TOTtotDISPO_M = '0';}
-	else {$TOTtotDISPO_M = ($TOTtotDISPO / 60);}
-	$TOTtotDISPO_M_int = round($TOTtotDISPO_M, 2);
-	$TOTtotDISPO_M_int = intval("$TOTtotDISPO_M_int");
-	$TOTtotDISPO_S = ($TOTtotDISPO_M - $TOTtotDISPO_M_int);
-	$TOTtotDISPO_S = ($TOTtotDISPO_S * 60);
-	$TOTtotDISPO_S = round($TOTtotDISPO_S, 0);
-	if ($TOTtotDISPO_S < 10) {$TOTtotDISPO_S = "0$TOTtotDISPO_S";}
-	$TOTtotDISPO_MS = "$TOTtotDISPO_M_int:$TOTtotDISPO_S";
-	$TOTtotDISPO_MS =		sprintf("%8s", $TOTtotDISPO_MS);
-		while(strlen($TOTtotDISPO_MS)>8) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTtotPAUSE_M = '0';}
-	else {$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);}
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTtotWAIT_M = '0';}
-	else {$TOTtotWAIT_M = ($TOTtotWAIT / 60);}
-	$TOTtotWAIT_M_int = round($TOTtotWAIT_M, 2);
-	$TOTtotWAIT_M_int = intval("$TOTtotWAIT_M_int");
-	$TOTtotWAIT_S = ($TOTtotWAIT_M - $TOTtotWAIT_M_int);
-	$TOTtotWAIT_S = ($TOTtotWAIT_S * 60);
-	$TOTtotWAIT_S = round($TOTtotWAIT_S, 0);
-	if ($TOTtotWAIT_S < 10) {$TOTtotWAIT_S = "0$TOTtotWAIT_S";}
-	$TOTtotWAIT_MS = "$TOTtotWAIT_M_int:$TOTtotWAIT_S";
-	$TOTtotWAIT_MS =		sprintf("%8s", $TOTtotWAIT_MS);
-		while(strlen($TOTtotWAIT_MS)>8) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
-
-	if ($TOTtotTALK < 1) {$TOTavgTALK_M = '0';}
-	else {$TOTavgTALK_M = ( ($TOTtotTALK / $TOTcalls) / 60);}
-	$TOTavgTALK_M_int = round($TOTavgTALK_M, 2);
-	$TOTavgTALK_M_int = intval("$TOTavgTALK_M_int");
-	$TOTavgTALK_S = ($TOTavgTALK_M - $TOTavgTALK_M_int);
-	$TOTavgTALK_S = ($TOTavgTALK_S * 60);
-	$TOTavgTALK_S = round($TOTavgTALK_S, 0);
-	if ($TOTavgTALK_S < 10) {$TOTavgTALK_S = "0$TOTavgTALK_S";}
-	$TOTavgTALK_MS = "$TOTavgTALK_M_int:$TOTavgTALK_S";
-	$TOTavgTALK_MS =		sprintf("%6s", $TOTavgTALK_MS);
-		while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
-
-	if ($TOTtotDISPO < 1) {$TOTavgDISPO_M = '0';}
-	else {$TOTavgDISPO_M = ( ($TOTtotDISPO / $TOTcalls) / 60);}
-	$TOTavgDISPO_M_int = round($TOTavgDISPO_M, 2);
-	$TOTavgDISPO_M_int = intval("$TOTavgDISPO_M_int");
-	$TOTavgDISPO_S = ($TOTavgDISPO_M - $TOTavgDISPO_M_int);
-	$TOTavgDISPO_S = ($TOTavgDISPO_S * 60);
-	$TOTavgDISPO_S = round($TOTavgDISPO_S, 0);
-	if ($TOTavgDISPO_S < 10) {$TOTavgDISPO_S = "0$TOTavgDISPO_S";}
-	$TOTavgDISPO_MS = "$TOTavgDISPO_M_int:$TOTavgDISPO_S";
-	$TOTavgDISPO_MS =		sprintf("%6s", $TOTavgDISPO_MS);
-		while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTavgPAUSE_M = '0';}
-	else {$TOTavgPAUSE_M = ( ($TOTtotPAUSE / $TOTcalls) / 60);}
-	$TOTavgPAUSE_M_int = round($TOTavgPAUSE_M, 2);
-	$TOTavgPAUSE_M_int = intval("$TOTavgPAUSE_M_int");
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_M - $TOTavgPAUSE_M_int);
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_S * 60);
-	$TOTavgPAUSE_S = round($TOTavgPAUSE_S, 0);
-	if ($TOTavgPAUSE_S < 10) {$TOTavgPAUSE_S = "0$TOTavgPAUSE_S";}
-	$TOTavgPAUSE_MS = "$TOTavgPAUSE_M_int:$TOTavgPAUSE_S";
-	$TOTavgPAUSE_MS =		sprintf("%6s", $TOTavgPAUSE_MS);
-		while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTavgWAIT_M = '0';}
-	else {$TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60);}
-	$TOTavgWAIT_M_int = round($TOTavgWAIT_M, 2);
-	$TOTavgWAIT_M_int = intval("$TOTavgWAIT_M_int");
-	$TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int);
-	$TOTavgWAIT_S = ($TOTavgWAIT_S * 60);
-	$TOTavgWAIT_S = round($TOTavgWAIT_S, 0);
-	if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";}
-	$TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S";
-	$TOTavgWAIT_MS =		sprintf("%6s", $TOTavgWAIT_MS);
-		while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
 
 
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 echo "\n\n";
 
@@ -658,7 +599,7 @@ $PCusers='-';
 $PCusersARY=$MT;
 $PCuser_namesARY=$MT;
 $k=0;
-$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 $ugSQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $subs_to_print = mysql_num_rows($rslt);
@@ -695,9 +636,9 @@ while ($i < $subs_to_print)
 	}
 
 echo "PAUSE CODE BREAKDOWN:\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
-echo "| USER NAME       | ID       | TOTAL  |NONPAUSE| PAUSE  |  |$sub_statusesHTML\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -738,15 +679,8 @@ while ($m < $k)
 				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
 				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
 
-				$USERcodePAUSE_M = ($PCpause_sec[$i] / 60);
-				$USERcodePAUSE_M_int = round($USERcodePAUSE_M, 2);
-				$USERcodePAUSE_M_int = intval("$USERcodePAUSE_M_int");
-				$USERcodePAUSE_S = ($USERcodePAUSE_M - $USERcodePAUSE_M_int);
-				$USERcodePAUSE_S = ($USERcodePAUSE_S * 60);
-				$USERcodePAUSE_S = round($USERcodePAUSE_S, 0);
-				if ($USERcodePAUSE_S < 10) {$USERcodePAUSE_S = "0$USERcodePAUSE_S";}
-				$USERcodePAUSE_MS = "$USERcodePAUSE_M_int:$USERcodePAUSE_S";
-				$pfUSERcodePAUSE_MS =		sprintf("%6s", $USERcodePAUSE_MS);
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
 
 				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
 				$SstatusesHTML .= " $SstatusTXT |";
@@ -775,7 +709,6 @@ while ($m < $k)
 		{
 		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
 		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
 		$Suser =	sprintf("%-24s", $Suser);
 		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
@@ -783,44 +716,19 @@ while ($m < $k)
 	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
 	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
 
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
 
-	$USERtotNONPAUSE_M = ($Snon_pause_sec / 60);
-	$USERtotNONPAUSE_M_int = round($USERtotNONPAUSE_M, 2);
-	$USERtotNONPAUSE_M_int = intval("$USERtotNONPAUSE_M_int");
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_M - $USERtotNONPAUSE_M_int);
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_S * 60);
-	$USERtotNONPAUSE_S = round($USERtotNONPAUSE_S, 0);
-	if ($USERtotNONPAUSE_S < 10) {$USERtotNONPAUSE_S = "0$USERtotNONPAUSE_S";}
-	$USERtotNONPAUSE_MS = "$USERtotNONPAUSE_M_int:$USERtotNONPAUSE_S";
-	$pfUSERtotNONPAUSE_MS =		sprintf("%6s", $USERtotNONPAUSE_MS);
-
-	$USERtotTOTAL_M = ($Stotal_sec / 60);
-	$USERtotTOTAL_M_int = round($USERtotTOTAL_M, 2);
-	$USERtotTOTAL_M_int = intval("$USERtotTOTAL_M_int");
-	$USERtotTOTAL_S = ($USERtotTOTAL_M - $USERtotTOTAL_M_int);
-	$USERtotTOTAL_S = ($USERtotTOTAL_S * 60);
-	$USERtotTOTAL_S = round($USERtotTOTAL_S, 0);
-	if ($USERtotTOTAL_S < 10) {$USERtotTOTAL_S = "0$USERtotTOTAL_S";}
-	$USERtotTOTAL_MS = "$USERtotTOTAL_M_int:$USERtotTOTAL_S";
-	$pfUSERtotTOTAL_MS =		sprintf("%6s", $USERtotTOTAL_MS);
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
 
 	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
 
 	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
 
-#	if (!ereg("ID|TIME|CALLS",$stage))
-#		{
-		echo "$BOTTOMoutput";
-#		}
+	echo "$BOTTOMoutput";
 
 	$m++;
 	}
@@ -873,15 +781,8 @@ while ($n < $j)
 		{
 		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
 
-		$USERsumstatPAUSE_M = ($Scalls / 60);
-		$USERsumstatPAUSE_M_int = round($USERsumstatPAUSE_M, 2);
-		$USERsumstatPAUSE_M_int = intval("$USERsumstatPAUSE_M_int");
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_M - $USERsumstatPAUSE_M_int);
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_S * 60);
-		$USERsumstatPAUSE_S = round($USERsumstatPAUSE_S, 0);
-		if ($USERsumstatPAUSE_S < 10) {$USERsumstatPAUSE_S = "0$USERsumstatPAUSE_S";}
-		$USERsumstatPAUSE_MS = "$USERsumstatPAUSE_M_int:$USERsumstatPAUSE_S";
-		$pfUSERsumstatPAUSE_MS =		sprintf("%6s", $USERsumstatPAUSE_MS);
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
 
 		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
 		$SUMstatusesHTML .= " $SUMstatusTXT |";
@@ -892,44 +793,22 @@ while ($n < $j)
 
 	$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
 
-	$TOTtotNONPAUSE_M = ($TOTtotNONPAUSE / 60);
-	$TOTtotNONPAUSE_M_int = round($TOTtotNONPAUSE_M, 2);
-	$TOTtotNONPAUSE_M_int = intval("$TOTtotNONPAUSE_M_int");
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_M - $TOTtotNONPAUSE_M_int);
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_S * 60);
-	$TOTtotNONPAUSE_S = round($TOTtotNONPAUSE_S, 0);
-	if ($TOTtotNONPAUSE_S < 10) {$TOTtotNONPAUSE_S = "0$TOTtotNONPAUSE_S";}
-	$TOTtotNONPAUSE_MS = "$TOTtotNONPAUSE_M_int:$TOTtotNONPAUSE_S";
-	$TOTtotNONPAUSE_MS =		sprintf("%8s", $TOTtotNONPAUSE_MS);
-		while(strlen($TOTtotNONPAUSE_MS)>8) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
 
-	$TOTtotTOTAL_M = ($TOTtotTOTAL / 60);
-	$TOTtotTOTAL_M_int = round($TOTtotTOTAL_M, 2);
-	$TOTtotTOTAL_M_int = intval("$TOTtotTOTAL_M_int");
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_M - $TOTtotTOTAL_M_int);
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_S * 60);
-	$TOTtotTOTAL_S = round($TOTtotTOTAL_S, 0);
-	if ($TOTtotTOTAL_S < 10) {$TOTtotTOTAL_S = "0$TOTtotTOTAL_S";}
-	$TOTtotTOTAL_MS = "$TOTtotTOTAL_M_int:$TOTtotTOTAL_S";
-	$TOTtotTOTAL_MS =		sprintf("%8s", $TOTtotTOTAL_MS);
-		while(strlen($TOTtotTOTAL_MS)>8) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
 
 
-
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 echo "\n\n";
 
@@ -940,4 +819,4 @@ echo "\n\n";
 
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_fr/AST_agent_status_detail.php b/LANG_www/vicidial_fr/AST_agent_status_detail.php index d04cfb55..389d0dfa 100644 --- a/LANG_www/vicidial_fr/AST_agent_status_detail.php +++ b/LANG_www/vicidial_fr/AST_agent_status_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-1554 - First build # 90225-2252 - Added CSV download option # 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags # @@ -202,9 +203,9 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Jours Etat\n"; + echo "Agent Status Détail Report\n"; echo ""; $short_header=1; @@ -252,14 +253,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Status Détail $NOW_TIME\n"; + echo "Agent Status Détail Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- AGENT Détails -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Status Détail $NOW_TIME\n"; + $file_output .= "Agent Status Détail Report $NOW_TIME\n"; $file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n"; } @@ -284,7 +285,7 @@ else { $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) and (strlen($row[3]) > 0) ) + if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3]))) { $calls[$i] = $row[0]; $full_name[$i] = $row[1]; @@ -585,9 +586,9 @@ echo "
to
Campagnes:
"; echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/LANG_www/vicidial_fr/AST_agent_time_sheet.php b/LANG_www/vicidial_fr/AST_agent_time_sheet.php
index e5bbd4a7..9c5ce9ed 100644
--- a/LANG_www/vicidial_fr/AST_agent_time_sheet.php
+++ b/LANG_www/vicidial_fr/AST_agent_time_sheet.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -9,9 +9,28 @@
 #            - Added required user/pass to gain access to this page
 # 80624-0132 - Added vicidial_timeclock entries
 # 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
 #
 
 require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
 
 $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
 $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
@@ -32,11 +51,12 @@ $user=$agent;
 $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
 $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
 
-	$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
-	if ($DB) {echo "|$stmt|\n";}
-	$rslt=mysql_query($stmt, $link);
-	$row=mysql_fetch_row($rslt);
-	$auth=$row[0];
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
 
   if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
 	{
@@ -64,9 +84,9 @@ if (!isset($query_date)) {$query_date = $NOW_DATE;}
 -->
  
 
-\n";
-echo "VICIDIAL: Agent Feuille de temps";
+echo "<TITLE>Agent Feuille de temps";
 
 
 ##### BEGIN Set variables to make header show properly #####
@@ -122,7 +142,7 @@ if ($DB) {echo "$stmt\n";}
 $row=mysql_fetch_row($rslt);
 $full_name = $row[0];
 
-echo "VICIDIAL: AgentFeuille de temps                            $NOW_TIME\n";
+echo "AgentFeuille de temps                            $NOW_TIME\n";
 
 echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
@@ -136,120 +156,25 @@ if ($calls_summary)
 
 	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
 
-		$TOTAL_TIME_H = ($TOTAL_TIME / 3600);
-		$TOTAL_TIME_H = round($TOTAL_TIME_H, 2);
-		$TOTAL_TIME_H_int = intval("$TOTAL_TIME_H");
-		$TOTAL_TIME_M = ($TOTAL_TIME_H - $TOTAL_TIME_H_int);
-		$TOTAL_TIME_M = ($TOTAL_TIME_M * 60);
-		$TOTAL_TIME_M = round($TOTAL_TIME_M, 2);
-		$TOTAL_TIME_M_int = intval("$TOTAL_TIME_M");
-		$TOTAL_TIME_S = ($TOTAL_TIME_M - $TOTAL_TIME_M_int);
-		$TOTAL_TIME_S = ($TOTAL_TIME_S * 60);
-		$TOTAL_TIME_S = round($TOTAL_TIME_S, 0);
-		if ($TOTAL_TIME_S < 10) {$TOTAL_TIME_S = "0$TOTAL_TIME_S";}
-		if ($TOTAL_TIME_M_int < 10) {$TOTAL_TIME_M_int = "0$TOTAL_TIME_M_int";}
-		$TOTAL_TIME_HMS = "$TOTAL_TIME_H_int:$TOTAL_TIME_M_int:$TOTAL_TIME_S";
-		$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
 
-		$TALK_TIME_H = ($row[1] / 3600);
-		$TALK_TIME_H = round($TALK_TIME_H, 2);
-		$TALK_TIME_H_int = intval("$TALK_TIME_H");
-		$TALK_TIME_M = ($TALK_TIME_H - $TALK_TIME_H_int);
-		$TALK_TIME_M = ($TALK_TIME_M * 60);
-		$TALK_TIME_M = round($TALK_TIME_M, 2);
-		$TALK_TIME_M_int = intval("$TALK_TIME_M");
-		$TALK_TIME_S = ($TALK_TIME_M - $TALK_TIME_M_int);
-		$TALK_TIME_S = ($TALK_TIME_S * 60);
-		$TALK_TIME_S = round($TALK_TIME_S, 0);
-		if ($TALK_TIME_S < 10) {$TALK_TIME_S = "0$TALK_TIME_S";}
-		if ($TALK_TIME_M_int < 10) {$TALK_TIME_M_int = "0$TALK_TIME_M_int";}
-		$TALK_TIME_HMS = "$TALK_TIME_H_int:$TALK_TIME_M_int:$TALK_TIME_S";
-		$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
-
-		$PAUSE_TIME_H = ($row[3] / 3600);
-		$PAUSE_TIME_H = round($PAUSE_TIME_H, 2);
-		$PAUSE_TIME_H_int = intval("$PAUSE_TIME_H");
-		$PAUSE_TIME_M = ($PAUSE_TIME_H - $PAUSE_TIME_H_int);
-		$PAUSE_TIME_M = ($PAUSE_TIME_M * 60);
-		$PAUSE_TIME_M = round($PAUSE_TIME_M, 2);
-		$PAUSE_TIME_M_int = intval("$PAUSE_TIME_M");
-		$PAUSE_TIME_S = ($PAUSE_TIME_M - $PAUSE_TIME_M_int);
-		$PAUSE_TIME_S = ($PAUSE_TIME_S * 60);
-		$PAUSE_TIME_S = round($PAUSE_TIME_S, 0);
-		if ($PAUSE_TIME_S < 10) {$PAUSE_TIME_S = "0$PAUSE_TIME_S";}
-		if ($PAUSE_TIME_M_int < 10) {$PAUSE_TIME_M_int = "0$PAUSE_TIME_M_int";}
-		$PAUSE_TIME_HMS = "$PAUSE_TIME_H_int:$PAUSE_TIME_M_int:$PAUSE_TIME_S";
-		$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
-
-		$WAIT_TIME_H = ($row[5] / 3600);
-		$WAIT_TIME_H = round($WAIT_TIME_H, 2);
-		$WAIT_TIME_H_int = intval("$WAIT_TIME_H");
-		$WAIT_TIME_M = ($WAIT_TIME_H - $WAIT_TIME_H_int);
-		$WAIT_TIME_M = ($WAIT_TIME_M * 60);
-		$WAIT_TIME_M = round($WAIT_TIME_M, 2);
-		$WAIT_TIME_M_int = intval("$WAIT_TIME_M");
-		$WAIT_TIME_S = ($WAIT_TIME_M - $WAIT_TIME_M_int);
-		$WAIT_TIME_S = ($WAIT_TIME_S * 60);
-		$WAIT_TIME_S = round($WAIT_TIME_S, 0);
-		if ($WAIT_TIME_S < 10) {$WAIT_TIME_S = "0$WAIT_TIME_S";}
-		if ($WAIT_TIME_M_int < 10) {$WAIT_TIME_M_int = "0$WAIT_TIME_M_int";}
-		$WAIT_TIME_HMS = "$WAIT_TIME_H_int:$WAIT_TIME_M_int:$WAIT_TIME_S";
-		$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
-
-		$WRAPUP_TIME_H = ($row[7] / 3600);
-		$WRAPUP_TIME_H = round($WRAPUP_TIME_H, 2);
-		$WRAPUP_TIME_H_int = intval("$WRAPUP_TIME_H");
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_H - $WRAPUP_TIME_H_int);
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_M * 60);
-		$WRAPUP_TIME_M = round($WRAPUP_TIME_M, 2);
-		$WRAPUP_TIME_M_int = intval("$WRAPUP_TIME_M");
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_M - $WRAPUP_TIME_M_int);
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_S * 60);
-		$WRAPUP_TIME_S = round($WRAPUP_TIME_S, 0);
-		if ($WRAPUP_TIME_S < 10) {$WRAPUP_TIME_S = "0$WRAPUP_TIME_S";}
-		if ($WRAPUP_TIME_M_int < 10) {$WRAPUP_TIME_M_int = "0$WRAPUP_TIME_M_int";}
-		$WRAPUP_TIME_HMS = "$WRAPUP_TIME_H_int:$WRAPUP_TIME_M_int:$WRAPUP_TIME_S";
-		$pfWRAPUP_TIME_HMS =		sprintf("%8s", $WRAPUP_TIME_HMS);
-
-		$TALK_AVG_M = ($row[2] / 60);
-		$TALK_AVG_M = round($TALK_AVG_M, 2);
-		$TALK_AVG_M_int = intval("$TALK_AVG_M");
-		$TALK_AVG_S = ($TALK_AVG_M - $TALK_AVG_M_int);
-		$TALK_AVG_S = ($TALK_AVG_S * 60);
-		$TALK_AVG_S = round($TALK_AVG_S, 0);
-		if ($TALK_AVG_S < 10) {$TALK_AVG_S = "0$TALK_AVG_S";}
-		$TALK_AVG_MS = "$TALK_AVG_M_int:$TALK_AVG_S";
-		$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
-
-		$PAUSE_AVG_M = ($row[4] / 60);
-		$PAUSE_AVG_M = round($PAUSE_AVG_M, 2);
-		$PAUSE_AVG_M_int = intval("$PAUSE_AVG_M");
-		$PAUSE_AVG_S = ($PAUSE_AVG_M - $PAUSE_AVG_M_int);
-		$PAUSE_AVG_S = ($PAUSE_AVG_S * 60);
-		$PAUSE_AVG_S = round($PAUSE_AVG_S, 0);
-		if ($PAUSE_AVG_S < 10) {$PAUSE_AVG_S = "0$PAUSE_AVG_S";}
-		$PAUSE_AVG_MS = "$PAUSE_AVG_M_int:$PAUSE_AVG_S";
-		$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
-
-		$WAIT_AVG_M = ($row[6] / 60);
-		$WAIT_AVG_M = round($WAIT_AVG_M, 2);
-		$WAIT_AVG_M_int = intval("$WAIT_AVG_M");
-		$WAIT_AVG_S = ($WAIT_AVG_M - $WAIT_AVG_M_int);
-		$WAIT_AVG_S = ($WAIT_AVG_S * 60);
-		$WAIT_AVG_S = round($WAIT_AVG_S, 0);
-		if ($WAIT_AVG_S < 10) {$WAIT_AVG_S = "0$WAIT_AVG_S";}
-		$WAIT_AVG_MS = "$WAIT_AVG_M_int:$WAIT_AVG_S";
-		$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
-
-		$WRAPUP_AVG_M = ($row[8] / 60);
-		$WRAPUP_AVG_M = round($WRAPUP_AVG_M, 2);
-		$WRAPUP_AVG_M_int = intval("$WRAPUP_AVG_M");
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_M - $WRAPUP_AVG_M_int);
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_S * 60);
-		$WRAPUP_AVG_S = round($WRAPUP_AVG_S, 0);
-		if ($WRAPUP_AVG_S < 10) {$WRAPUP_AVG_S = "0$WRAPUP_AVG_S";}
-		$WRAPUP_AVG_MS = "$WRAPUP_AVG_M_int:$WRAPUP_AVG_S";
-		$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
 
 	echo "TOTAL DES APPELSTAKEN: $row[0]\n";
 	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
@@ -284,23 +209,11 @@ echo "LAST LOG ACTIVITY:    $row[0]\n";
 $end = $row[1];
 
 $login_time = ($end - $start);
-	$LOGIN_TIME_H = ($login_time / 3600);
-	$LOGIN_TIME_H = round($LOGIN_TIME_H, 2);
-	$LOGIN_TIME_H_int = intval("$LOGIN_TIME_H");
-	$LOGIN_TIME_M = ($LOGIN_TIME_H - $LOGIN_TIME_H_int);
-	$LOGIN_TIME_M = ($LOGIN_TIME_M * 60);
-	$LOGIN_TIME_M = round($LOGIN_TIME_M, 2);
-	$LOGIN_TIME_M_int = intval("$LOGIN_TIME_M");
-	$LOGIN_TIME_S = ($LOGIN_TIME_M - $LOGIN_TIME_M_int);
-	$LOGIN_TIME_S = ($LOGIN_TIME_S * 60);
-	$LOGIN_TIME_S = round($LOGIN_TIME_S, 0);
-	if ($LOGIN_TIME_S < 10) {$LOGIN_TIME_S = "0$LOGIN_TIME_S";}
-	if ($LOGIN_TIME_M_int < 10) {$LOGIN_TIME_M_int = "0$LOGIN_TIME_M_int";}
-	$LOGIN_TIME_HMS = "$LOGIN_TIME_H_int:$LOGIN_TIME_M_int:$LOGIN_TIME_S";
-	$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
 
 echo "-----------------------------------------\n";
-echo "TOTAL LOGGED-IN TIME:    $pfLOGIN_TIME_HMS\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
 
 
 ### timeclock records
@@ -354,20 +267,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f
 			{
 			$login_sec = $row[3];
 			$total_login_time = ($total_login_time + $login_sec);
-			$event_hours = ($login_sec / 3600);
-			$event_hours_int = round($event_hours, 2);
-			$event_hours_int = intval("$event_hours_int");
-			$event_minutes = ($event_hours - $event_hours_int);
-			$event_minutes = ($event_minutes * 60);
-			$event_minutes_int = round($event_minutes, 0);
-			if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";}
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
 			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
 			echo "<td align=right><font size=2>$manager_edit</td>";
 			echo "<td align=right><font size=2>$row[0]</td>";
 			echo "<td align=right><font size=2> $TC_log_date</td>\n";
 			echo "<td align=right><font size=2> $row[4]</td>\n";
 			echo "<td align=right><font size=2> $row[2]</td>\n";
-			echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int";
+			echo "<td align=right><font size=2> $event_hours_minutes";
 			if ($DB) {echo " - $total_login_time - $login_sec";}
 			echo "</td></tr>\n";
 			}
@@ -379,13 +287,7 @@ if (strlen($login_sec)<1)
 	$total_login_time = ($total_login_time + $login_sec);
 		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
 	}
-$total_login_hours = ($total_login_time / 3600);
-$total_login_hours_int = round($total_login_hours, 2);
-$total_login_hours_int = intval("$total_login_hours_int");
-$total_login_minutes = ($total_login_hours - $total_login_hours_int);
-$total_login_minutes = ($total_login_minutes * 60);
-$total_login_minutes_int = round($total_login_minutes, 0);
-if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
 
 	if ($DB) {echo " - $total_login_time - $login_sec";}
 
@@ -393,8 +295,8 @@ echo "<tr><td align=right><font size=2> </td>";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
-echo "<td align=right><font size=2><font size=2>TOTAL </td>\n";
-echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int  </td></tr>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
 
 echo "</TABLE>\n";
 
@@ -406,4 +308,4 @@ echo "</TABLE>\n";
 
 ?>
 
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
diff --git a/LANG_www/vicidial_fr/AST_agent_timeclock_detail.php b/LANG_www/vicidial_fr/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/LANG_www/vicidial_fr/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
+$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
+
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
+	{
+    Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\"");
+    Header("HTTP/1.0 401 Unauthorized");
+    echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/LANG_www/vicidial_fr/AST_inboundEXTstats.php b/LANG_www/vicidial_fr/AST_inboundEXTstats.php index 75662f86..2a462624 100644 --- a/LANG_www/vicidial_fr/AST_inboundEXTstats.php +++ b/LANG_www/vicidial_fr/AST_inboundEXTstats.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # 60421-1450 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60620-1322 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $inbound_to_print) --> -\n"; #echo"\n"; echo "ASTERISK: Statistiques des appels entrants\n"; diff --git a/LANG_www/vicidial_fr/AST_server_performance.php b/LANG_www/vicidial_fr/AST_server_performance.php index 6c7d3859..4ee25002 100644 --- a/LANG_www/vicidial_fr/AST_server_performance.php +++ b/LANG_www/vicidial_fr/AST_server_performance.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # - Fixed vertical scaling issues # 80118-1508 - Fixed horizontal scale marking issues # 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -24,6 +25,8 @@ if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"]; elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} @@ -82,9 +85,9 @@ while ($i < $servers_to_print) --> -\n"; -echo "VICIDIAL: Server Performance\n"; +echo "Server Performance Report\n"; $short_header=1; @@ -125,7 +128,7 @@ $query_date_BEGIN = $begin_query_time; $query_date_END = $end_query_time; -echo "VICIDIAL: Server Performance $NOW_TIME\n"; +echo "Server Performance Report $NOW_TIME\n"; echo "Time range: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- TOTALS, PEAKS and AVERAGES\n"; diff --git a/LANG_www/vicidial_fr/AST_timeonVDAD.php b/LANG_www/vicidial_fr/AST_timeonVDAD.php index c9863310..c209d665 100644 --- a/LANG_www/vicidial_fr/AST_timeonVDAD.php +++ b/LANG_www/vicidial_fr/AST_timeonVDAD.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -13,6 +13,7 @@ # 80422-0305 - Added phone login to display, lower font size to 2 # 81013-2227 - Fixed Remote Agent display bug # 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -77,7 +78,7 @@ if ($reset_counter > 7) -\n"; echo " -\n"; echo"\n"; -echo "VICIDIAL: Time On VDAD\n"; +echo "Server-Specific Real-Time Report\n"; $short_header=1; @@ -143,7 +144,7 @@ echo "SERVER: $server_ip\n"; if ($closer_display>0) {$closer_display_reverse=0; $closer_reverse_link='DEFAULT';} else {$closer_display_reverse=1; $closer_reverse_link='CLOSER';} -echo "VICIDIAL: Agents Time On Calls $NOW_TIME $closer_reverse_link | RAPPORTS\n\n"; +echo "Agents Time On Calls $NOW_TIME $closer_reverse_link | RAPPORTS\n\n"; if ($closer_display>0) { @@ -364,7 +365,7 @@ $talking_to_print = mysql_num_rows($rslt); #echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Time On VDAD TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; +echo "Server-Specific Real-Time Report TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; echo "| CHANNEL | STATUS | CAMPAIGN | PHONE NUMBER | CALLTIME | MINUTES |\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; diff --git a/LANG_www/vicidial_fr/AST_timeonVDADall.php b/LANG_www/vicidial_fr/AST_timeonVDADall.php index e33960f4..b913886c 100644 --- a/LANG_www/vicidial_fr/AST_timeonVDADall.php +++ b/LANG_www/vicidial_fr/AST_timeonVDADall.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -45,14 +45,29 @@ # 90105-1153 - Changed monitor links to use 0 prefix instead of 6 # 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option # 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended # -$version = '2.0.5-36'; -$build = '90310-0906'; + +$version = '2.2.0-49'; +$build = '91204-1548'; header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -97,6 +112,11 @@ if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdispl elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -115,13 +135,14 @@ while ($i < $qm_conf_ct) ##### END SETTINGS LOOKUP ##### ########################################### +if (!isset($DB)) {$DB=0;} if (!isset($RR)) {$RR=40;} if (!isset($group)) {$group='';} if (!isset($usergroup)) {$usergroup='';} if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes -if (!isset($UidORname)) {$UidORname=0;} # 0=id, 1=name +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name if (!isset($orderby)) {$orderby='timeup';} -if (!isset($SERVdisplay)) {$SERVdisplay=1;} # 0=no, 1=yes +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes @@ -138,50 +159,66 @@ $ingroup_detail=''; if (strlen($group)>1) {$groups[0] = $group; $RR=40;} else {$group = $groups[0];} -function get_server_load($windows = false) { -$os = strtolower(PHP_OS); -if(strpos($os, "win") === false) { -if(file_exists("/proc/loadavg")) { -$load = file_get_contents("/proc/loadavg"); -$load = explode(' ', $load); -return $load[0]; -} -elseif(function_exists("shell_exec")) { -$load = explode(' ', `uptime`); -return $load[count($load)-1]; -} -else { -return false; -} -} -elseif($windows) { -if(class_exists("COM")) { -$wmi = new COM("WinMgmts:\\\\."); -$cpus = $wmi->InstancesOf("Win32_Processor"); +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); -$cpuload = 0; -$i = 0; -while ($cpu = $cpus->Next()) { -$cpuload += $cpu->LoadPercentage; -$i++; -} + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } -$cpuload = round($cpuload / $i, 2); -return "$cpuload%"; -} -else { -return false; -} -} -} + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } $load_ave = get_server_load(true); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); @@ -195,17 +232,18 @@ $auth=$row[0]; echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - -$NOW_TIME = date("Y-m-d H:i:s"); -$NOW_DAY = date("Y-m-d"); -$NOW_HOUR = date("H:i:s"); -$STARTtime = date("U"); -$epochSIXhoursAGO = ($STARTtime - 21600); -$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } $stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; $rslt=mysql_query($stmt, $link); -if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; @@ -230,21 +268,32 @@ while($i < $group_ct) $groupQS .= "&groups[]=$groups[$i]"; $i++; } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) { + $all_active = 0; $group_SQL = "''"; -# $group_SQL = "group_id IN('')"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; } else { - $group_SQL = eregi_replace(",$",'',$group_SQL); -# $group_SQL = "group_id IN($group_SQL)"; + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; } -#if ( (eregi('ALL-ACTIVE',$group_string)) and ($with_inbound=='O') and ($outbound_autodial_active > 0) ) -# {$with_inbound='N';} -$stmt="select * from vicidial_user_groups;"; +$stmt="select user_group from vicidial_user_groups;"; $rslt=mysql_query($stmt, $link); if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} @@ -265,14 +314,14 @@ $F=''; $FG=''; $B=''; $BG=''; $select_list = ""; $select_list .= "
Select Campagnes:
"; $select_list .= ""; $select_list .= "
(Pour sélectionner plus de 1 campagne, maintenez la touche Ctrl enfoncée et cliquez sur)"; @@ -284,12 +333,12 @@ if ($UGdisplay > 0) $select_list .= "Select Groupe utilisateur:
"; $select_list .= "

"; } @@ -306,6 +355,26 @@ $select_list .= "
"; @@ -315,7 +384,7 @@ $select_list .= ""; $select_list .= "VERSION: $version   CONSTRUCTION: $build"; $select_list .= "
"; -$open_list = "
Rapport Choisissez Options d'affichage
"; +$open_list = "
Rapport Choisissez Options d-affichage
"; ?> @@ -323,18 +392,229 @@ $open_list = "< \n"; -$stmt = "select count(*) from vicidial_campaigns where campaign_id IN($group_SQL) and campaign_allow_inbound='Y';"; +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $campaign_allow_inbound = $row[0]; echo "\n"; -echo"\n"; -echo "VICIDIAL: Time On VDAD Campagne: $group\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; $short_header=1; @@ -397,9 +678,11 @@ echo "VICIDIAL: Time On VDAD Campagne: $group
"; -echo "
\n"; +echo "\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -411,15 +694,18 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL Real-Time                                                                          \n"; -echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; echo "
\n"; -echo "Rapport Choisissez Options d'affichage"; +echo "Rapport Choisissez Options d-affichage"; echo "
\n"; echo "
\n"; -echo "STOP | "; -echo "SLOW | "; -echo "GO"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; if (eregi('ALL-ACTIVE',$group_string)) { echo "       MODIFIER | \n"; @@ -436,14 +722,30 @@ if (!$group) {echo "

please select a campaign from the pulldown above $c) { - $multi_drop++; - $stmt = "select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); $ccamps_to_print = mysql_num_rows($rslt); + $c=0; while ($ccamps_to_print > $c) { $row=mysql_fetch_row($rslt); @@ -453,8 +755,19 @@ if (ereg('O',$with_inbound)) $closer_campaignsSQL .= "'$closer_campaigns',"; $c++; } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; if ($adastats>1) { @@ -569,16 +882,19 @@ if (ereg('O',$with_inbound)) } - $stmt="select agent_pause_codes_active from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; if (eregi('ALL-ACTIVE',$group_string)) { - $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats;"; + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; } - $stmtC="select agent_non_pause_sec from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} @@ -696,10 +1012,13 @@ else { if (eregi('ALL-ACTIVE',$group_string)) { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} $multi_drop++; - $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns;"; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; - $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats;"; + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; } else { @@ -708,29 +1027,15 @@ else if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) { $multi_drop++; - $stmt = "select distinct closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} - $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; } else { - $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; } @@ -758,16 +1063,11 @@ else $CALLtime = $row[16]; $DIALtimeout = $row[17]; $DIALstatuses = $row[18]; - $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); - $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; - $stmt="select count(*) from vicidial_hopper where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select count(*) from vicidial_hopper;"; - } + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $VDhop = $row[0]; @@ -809,15 +1109,29 @@ else } else {$diffpctONEMIN = '0.00';} - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats;"; - } + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $balanceSHORT = $row[0]; + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Liste Mix: $row[0]"; + $DIALorder = "Liste Mix: $row[0]"; + } + } + echo "
"; echo ""; echo ""; @@ -890,59 +1204,59 @@ echo "$ingroup_detail"; if ($adastats<2) { - echo "+ VIEW MORE"; + echo "+ VIEW MORE"; } else { - echo "+ VIEW LESS"; + echo "+ VIEW LESS"; } if ($UGdisplay>0) { - echo "       CACHER GROUPE D'UTILISATEURS"; + echo "       CACHER GROUPE D'UTILISATEURS"; } else { - echo "       VIEW GROUPE D'UTILISATEURS"; + echo "       VIEW GROUPE D'UTILISATEURS"; } if ($UidORname>0) { - echo "       MONTRER AGENT ID"; + echo "       MONTRER AGENT ID"; } else { - echo "       MONTRER AGENT NAME"; + echo "       MONTRER AGENT NAME"; } if ($SERVdisplay>0) { - echo "       CACHER SERVEUR INFO"; + echo "       CACHER SERVEUR INFO"; } else { - echo "       MONTRER SERVEUR INFO"; + echo "       MONTRER SERVEUR INFO"; } if ($CALLSdisplay>0) { - echo "       CACHER WAITING CALLS"; + echo "       CACHER WAITING CALLS"; } else { - echo "       MONTRER WAITING CALLS"; + echo "       MONTRER WAITING CALLS"; } if ($PHONEdisplay>0) { - echo "       CACHER PHONES"; + echo "       CACHER PHONES"; } else { - echo "       MONTRER PHONES"; + echo "       MONTRER PHONES"; } if ($CUSTPHONEdisplay>0) { - echo "       CACHER CUSTPHONES"; + echo "       CACHER CUSTPHONES"; } else { - echo "       MONTRER CUSTPHONES"; + echo "       MONTRER CUSTPHONES"; } echo ""; echo ""; @@ -955,34 +1269,15 @@ echo "\n\n"; ################################################################################### if ($campaign_allow_inbound > 0) { - $stmt="select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - $closer_campaignsSQL=''; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (campaign_id IN($group_SQL) and call_type IN('OUT','OUTBALANCE')) ) order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; } else { - if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} - else {$UgroupSQL = " and campaign_id IN($group_SQL)";} - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $UgroupSQL order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; } if ($CALLSdisplay > 0) { - $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority"; + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; } else { @@ -991,6 +1286,7 @@ else $k=0; +$agentonlycount=0; $stmt = "$stmtA $stmtB"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} @@ -1019,6 +1315,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1037,6 +1335,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1089,11 +1389,13 @@ $parked_to_print = mysql_num_rows($rslt); ################################################################################### ###### CALLS WAITING ################################################################################### - +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} $Cecho = ''; $Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; -$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITÉ |\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITÉ | $agentonlyheader\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; $p=0; @@ -1105,24 +1407,23 @@ while($p<$k) $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); - $Ccall_time_M = ($Ccall_time_S / 60); - $Ccall_time_M = round($Ccall_time_M, 2); - $Ccall_time_M_int = intval("$Ccall_time_M"); - $Ccall_time_SEC = ($Ccall_time_M - $Ccall_time_M_int); - $Ccall_time_SEC = ($Ccall_time_SEC * 60); - $Ccall_time_SEC = round($Ccall_time_SEC, 0); - if ($Ccall_time_SEC < 10) {$Ccall_time_SEC = "0$Ccall_time_SEC";} - $Ccall_time_MS = "$Ccall_time_M_int:$Ccall_time_SEC"; + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); $G = ''; $EG = ''; if ($CDcall_type[$p] == 'IN') { - $G=""; $EG=''; + $G=""; $EG=''; } - $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG |\n"; + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; $p++; } @@ -1164,34 +1465,36 @@ $Aecho .= "VICIDIAL: Agents Time On Calls Campagne: $group_string $NO $HDbegin = "+"; $HTbegin = "|"; -$HDstation = "------------+"; -$HTstation = " STATION |"; -$HDphone = "------------+"; -$HTphone = " PHONE |"; -$HDuser = "--------------------+"; -$HTuser = " USER |"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; $HDusergroup = "--------------+"; -$HTusergroup = " GROUPE D'UTILISATEURS |"; +$HTusergroup = " GROUPE D'UTILISATEURS |"; $HDsessionid = "------------------+"; $HTsessionid = " SESSIONID |"; $HDbarge = "-------+"; $HTbarge = " BARGE |"; $HDstatus = "----------+"; $HTstatus = " STATUS |"; -$HDcustphone = "------------+"; -$HTcustphone = " CUST PHONE |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; $HDserver_ip = "-----------------+"; $HTserver_ip = " SERVEUR IP |"; $HDcall_server_ip = "-----------------+"; $HTcall_server_ip = " CALL SERVEUR IP |"; $HDtime = "---------+"; -$HTtime = " MM:SS |"; +$HTtime = " MM:SS |"; $HDcampaign = "------------+"; -$HTcampaign = " CAMPAIGN |"; +$HTcampaign = " CAMPAIGN |"; $HDcalls = "-------+"; $HTcalls = " CALLS |"; $HDpause = ''; $HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; if (!ereg("N",$agent_pause_codes_active)) { @@ -1215,12 +1518,12 @@ if ($UGdisplay < 1) $HDusergroup = ''; $HTusergroup = ''; } -if ( ($SIPmonitorLINK<1) && ($IAXmonitorLINK<1) ) +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) { $HDsessionid = "-----------+"; $HTsessionid = " SESSIONID |"; } -if ( ($SIPmonitorLINK<2) && ($IAXmonitorLINK<2) ) +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) { $HDbarge = ''; $HTbarge = ''; @@ -1235,8 +1538,8 @@ if ($SERVdisplay < 1) -$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls\n"; -$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls\n"; +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; $Aecho .= "$Aline"; $Aecho .= "$Bline"; $Aecho .= "$Aline"; @@ -1265,7 +1568,7 @@ else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} if (strlen($usergroup)<1) {$usergroupSQL = '';} else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} -$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); @@ -1291,6 +1594,7 @@ $talking_to_print = mysql_num_rows($rslt); $Acalls_today[$i] = $row[12]; $Acallerid[$i] = $row[13]; $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; $i++; } @@ -1352,6 +1656,12 @@ $calls_to_list = mysql_num_rows($rslt); $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); $exten = "extension='$dialplan'"; } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; $rslt=mysql_query($stmt, $link); @@ -1396,9 +1706,9 @@ $calls_to_list = mysql_num_rows($rslt); $phone_split = explode("-----",$Alogin[$j]); $i = $phone_split[1]; - if (eregi("READY|PAUSED",$Astatus[$i])) + if (eregi("READY|PAUSED",$Astatus[$i])) { - $Acall_time[$i]=$Acall_finish[$i]; + $Acall_time[$i]=$Astate_change[$i]; if ($Alead_id[$i] > 0) { @@ -1407,27 +1717,28 @@ $calls_to_list = mysql_num_rows($rslt); $status = ' DISPO'; } } - if ($non_latin < 1) + if ($non_latin < 1) { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-10s", $extension); - while(strlen($extension)>10) {$extension = substr("$extension", 0, -1);} + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} } - else + else { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-40s", $extension); - while(mb_strlen($extension, 'utf-8')>10) {$extension = mb_substr("$extension", 0, -1,'utf8');} + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} } - $phone = sprintf("%-10s", $phone_split[0]); - $custphone = sprintf("%-10s", $custphone); + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); $Luser = $Auser[$i]; - $user = sprintf("%-18s", $Auser[$i]); + $user = sprintf("%-20s", $Auser[$i]); $Lsessionid = $Asessionid[$i]; $sessionid = sprintf("%-9s", $Asessionid[$i]); $Lstatus = $Astatus[$i]; $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; $server_ip = sprintf("%-15s", $Aserver_ip[$i]); $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); @@ -1441,12 +1752,27 @@ $calls_to_list = mysql_num_rows($rslt); if (eregi("INCALL",$Lstatus)) { - ### temporarily deactivate DEAD calls display until bug is fixed - if (!ereg("$Acallerid[$i]\|",$callerids)) + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) { - $Astatus[$i] = 'DEAD'; - $Lstatus = 'DEAD'; - $status = ' DEAD '; + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } } if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) @@ -1463,12 +1789,12 @@ $calls_to_list = mysql_num_rows($rslt); if ($UGdisplay > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { $user_group = sprintf("%-12s", $Auser_group[$i]); while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} } - else + else { $user_group = sprintf("%-40s", $Auser_group[$i]); while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} @@ -1476,42 +1802,35 @@ $calls_to_list = mysql_num_rows($rslt); } if ($UidORname > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { - $user = sprintf("%-18s", $Afull_name[$i]); - while(strlen($user)>18) {$user = substr("$user", 0, -1);} + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} } - else + else { - $user = sprintf("%-40s", $Afull_name[$i]); - while(mb_strlen($user, 'utf-8')>18) {$user = mb_substr("$user", 0, -1,'utf8');} + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} } } - if (!eregi("INCALL|QUEUE",$Astatus[$i])) - {$call_time_S = ($STARTtime - $Acall_finish[$i]);} + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} else {$call_time_S = ($STARTtime - $Acall_time[$i]);} - $call_time_M = ($call_time_S / 60); - $call_time_M = round($call_time_M, 2); - $call_time_M_int = intval("$call_time_M"); - $call_time_SEC = ($call_time_M - $call_time_M_int); - $call_time_SEC = ($call_time_SEC * 60); - $call_time_SEC = round($call_time_SEC, 0); - if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} - $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sec_convert($call_time_S,'M'); $call_time_MS = sprintf("%7s", $call_time_MS); $G = ''; $EG = ''; - if ($Lstatus=='INCALL') + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) { if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} - # if ($call_time_M_int >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} } if ($Lstatus=='DEAD') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { @@ -1522,15 +1841,15 @@ $calls_to_list = mysql_num_rows($rslt); } if ($Lstatus=='DISPO') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } if ($Lstatus=='PAUSED') @@ -1546,27 +1865,27 @@ $calls_to_list = mysql_num_rows($rslt); else {$pausecode='';} - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } # if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) # {$G=''; $EG='';} - if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) { $G=''; $EG=''; - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } $L=''; @@ -1575,6 +1894,10 @@ $calls_to_list = mysql_num_rows($rslt); if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} if ($SIPmonitorLINK>1) {$R=" | BARGE";} if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} else {$CP = "";} @@ -1586,31 +1909,31 @@ $calls_to_list = mysql_num_rows($rslt); else {$SVD = "";} if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} - else {$phoneD = "";} + else {$phoneD = " ";} $vac_stage=''; $vac_campaign=''; $INGRP=''; if ($CM == 'I') { - $stmt="select campaign_id,stage from vicidial_auto_calls where callerid='$Acallerid[$i]' LIMIT 1;"; + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $ingrp_to_print = mysql_num_rows($rslt); if ($ingrp_to_print > 0) { $row=mysql_fetch_row($rslt); - $vac_campaign = sprintf("%-20s", $row[0]); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); $row[1] = eregi_replace(".*-",'',$row[1]); $vac_stage = sprintf("%-4s", $row[1]); } - $INGRP = " $G$vac_stage$EG $G$vac_campaign$EG "; + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; } $agentcount++; - $Aecho .= "| $G$extension$EG |$phoneD $G$user$EG |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG+ |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; $j++; } diff --git a/LANG_www/vicidial_fr/AST_timeonVDADallSUMMARY.php b/LANG_www/vicidial_fr/AST_timeonVDADallSUMMARY.php index 7d4c5778..bd20b41f 100644 --- a/LANG_www/vicidial_fr/AST_timeonVDADallSUMMARY.php +++ b/LANG_www/vicidial_fr/AST_timeonVDADallSUMMARY.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -15,6 +15,7 @@ # 71029-1900 - Changed CLOSER-type to not require campaign_id restriction # 80525-1040 - Added IVR status summary display for inbound calls # 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -103,10 +104,10 @@ if (!isset($RR)) {$RR=4;} --> -\n"; -echo "VICIDIAL: Realtime All Campagnes Summary\n"; +echo "Real-Time All Campagnes Summary\n"; $short_header=1; @@ -114,7 +115,7 @@ echo "VICIDIAL: Realtime All Campagnes Summary
DIAL NIVEAU:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL    
"; -echo "VICIDIAL: Realtime All Campagnes Summary           \n"; +echo "Real-Time All Campagnes Summary           \n"; echo "STOP | "; echo "SLOW | "; echo "GO "; diff --git a/LANG_www/vicidial_fr/AST_timeonpark.php b/LANG_www/vicidial_fr/AST_timeonpark.php index e80182a3..8aac7043 100644 --- a/LANG_www/vicidial_fr/AST_timeonpark.php +++ b/LANG_www/vicidial_fr/AST_timeonpark.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60620-1042 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -83,7 +84,7 @@ if ($reset_counter > 7) --> -\n"; echo"\n"; echo "VICIDIAL: Time On Park\n"; diff --git a/LANG_www/vicidial_fr/admin.php b/LANG_www/vicidial_fr/admin.php index 0edcd060..f260e66d 100644 --- a/LANG_www/vicidial_fr/admin.php +++ b/LANG_www/vicidial_fr/admin.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -38,6 +38,9 @@ $reports_color = '#99FF33'; $carriers_color = '#FF33FF'; $settings_color = '#FF33FF'; $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; $subcamp_color = '#FF9933'; $users_font = 'BLACK'; $campaigns_font = 'BLACK'; @@ -55,6 +58,9 @@ $reports_font = 'BLACK'; $server_font = 'BLACK'; $settings_font = 'BLACK'; $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; $subcamp_font = 'BLACK'; ### comment this section out for colorful section headings @@ -77,6 +83,9 @@ $reports_color = '#E6E6E6'; $carriers_color = '#C6C6C6'; $settings_color = '#C6C6C6'; $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; $subcamp_color = '#C6C6C6'; ### @@ -954,7 +963,208 @@ if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enfor elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} - +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -967,12 +1177,11 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -980,7 +1189,9 @@ while ($i < $qm_conf_ct) $SSenable_vtiger_integration = $row[2]; $SSqc_features_active = $row[3]; $SSoutbound_autodial_active = $row[4]; - $i++; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -992,476 +1203,601 @@ while ($i < $qm_conf_ct) ###################################################################################################### if ($non_latin < 1) -{ -### DIGITS ONLY ### -$adaptive_dropped_percentage = ereg_replace("[^0-9]","",$adaptive_dropped_percentage); -$adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); -$admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); -$admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); -$admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); -$AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); -$agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); -$agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); -$agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); -$AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); -$allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); -$alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); -$am_message_exten = ereg_replace("[^0-9]","",$am_message_exten); -$answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); -$ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); -$ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); -$attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); -$attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); -$auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); -$balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); -$call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); -$CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); -$campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); -$campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); -$campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); -$change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); -$closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); -$conf_exten = ereg_replace("[^0-9]","",$conf_exten); -$conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); -$conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); -$ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); -$ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); -$ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); -$ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); -$ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); -$ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); -$ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); -$ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); -$ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); -$ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); -$ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); -$ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); -$ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); -$ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); -$ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); -$ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); -$DBX_port = ereg_replace("[^0-9]","",$DBX_port); -$DBY_port = ereg_replace("[^0-9]","",$DBY_port); -$dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); -$delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); -$delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); -$delete_filters = ereg_replace("[^0-9]","",$delete_filters); -$delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); -$delete_lists = ereg_replace("[^0-9]","",$delete_lists); -$delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); -$delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); -$delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); -$delete_users = ereg_replace("[^0-9]","",$delete_users); -$dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); -$dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); -$drop_call_seconds = ereg_replace("[^0-9]","",$drop_call_seconds); -$enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); -$enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); -$fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); -$hopper_level = ereg_replace("[^0-9]","",$hopper_level); -$hotkey = ereg_replace("[^0-9]","",$hotkey); -$hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); -$list_id = ereg_replace("[^0-9]","",$list_id); -$load_leads = ereg_replace("[^0-9]","",$load_leads); -$max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); -$modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); -$modify_users = ereg_replace("[^0-9]","",$modify_users); -$modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); -$modify_lists = ereg_replace("[^0-9]","",$modify_lists); -$modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); -$modify_filters = ereg_replace("[^0-9]","",$modify_filters); -$modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); -$modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); -$modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); -$modify_servers = ereg_replace("[^0-9]","",$modify_servers); -$view_reports = ereg_replace("[^0-9]","",$view_reports); -$modify_leads = ereg_replace("[^0-9]","",$modify_leads); -$monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); -$number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); -$old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); -$outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); -$park_ext = ereg_replace("[^0-9]","",$park_ext); -$park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -$QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); -$recording_exten = ereg_replace("[^0-9]","",$recording_exten); -$remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); -$telnet_port = ereg_replace("[^0-9]","",$telnet_port); -$updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); -$user_level = ereg_replace("[^0-9]","",$user_level); -$user_start = ereg_replace("[^0-9]","",$user_start); -$user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); -$VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); -$VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); -$vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); -$vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); -$voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); -$voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); -$voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); -$voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); -$voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); -$wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); -$use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); -$webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); -$enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); -$enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); -$allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); -$mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); -$prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); -$agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); -$manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); -$qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); -$qc_pass = ereg_replace("[^0-9]","",$qc_pass); -$qc_finish = ereg_replace("[^0-9]","",$qc_finish); -$qc_commit = ereg_replace("[^0-9]","",$qc_commit); -$shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); -$timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); -$survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); -$add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); -$modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); -$delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); -$vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); -$vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); -$hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); -$hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); -$did_id = ereg_replace("[^0-9]","",$did_id); -$source_did = ereg_replace("[^0-9]","",$source_did); -$modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); -$delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); -$answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); -$answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); -$enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); -$qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); -$outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); -$download_lists = ereg_replace("[^0-9]","",$download_lists); -$caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); -$outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); -$manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); -$export_reports = ereg_replace("[^0-9]","",$export_reports); + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); -### DIGITS and COLONS -$shift_length = ereg_replace("[^\:0-9]","",$shift_length); + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); -### DIGITS and HASHES and STARS -$survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); -$survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); -### DIGITS and DASHES -$group_rank = ereg_replace("[^-0-9]","",$group_rank); -$campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); -$queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); -### DIGITS and NEWLINES -$phone_numbers = ereg_replace("[^\n0-9]","",$phone_numbers); + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); -### Y or N ONLY ### -$active = ereg_replace("[^NY]","",$active); -$allow_closers = ereg_replace("[^NY]","",$allow_closers); -$reset_hopper = ereg_replace("[^NY]","",$reset_hopper); -$amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); -$alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); -$selectable = ereg_replace("[^NY]","",$selectable); -$reset_list = ereg_replace("[^NY]","",$reset_list); -$fronter_display = ereg_replace("[^NY]","",$fronter_display); -$use_internal_dnc = ereg_replace("[^NY]","",$use_internal_dnc); -$use_campaign_dnc = ereg_replace("[^NY]","",$use_campaign_dnc); -$omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); -$available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); -$sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); -$vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); -$vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); -$campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); -$disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); -$no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); -$human_answered = ereg_replace("[^NY]","",$human_answered); -$tovdad_display = ereg_replace("[^NY]","",$tovdad_display); -$campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); -$disable_alter_custphone = ereg_replace("[^NY]","",$disable_alter_custphone); -$display_queue_count = ereg_replace("[^NY]","",$display_queue_count); -$qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); -$sale_category = ereg_replace("[^NY]","",$sale_category); -$dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); -$agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); -$play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); -$play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); -$no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); -$did_active = ereg_replace("[^NY]","",$did_active); -$active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); -$generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); -$rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); -$agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); -$qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + ### Y or N ONLY ### + $allow_closers = ereg_replace("[^NY]","",$allow_closers); + $reset_hopper = ereg_replace("[^NY]","",$reset_hopper); + $amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); + $alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); -### ALPHA-NUMERIC ONLY ### -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); -$submit = ereg_replace("[^0-9a-zA-Z]","",$submit); -$campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); -$get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); -$campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); -$ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); -$dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); -$state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); -$scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); -$concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); -$billable = ereg_replace("[^0-9a-zA-Z]","",$billable); -$pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); -$vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); -$ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); -$queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); -$after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); -$after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); -$qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); -$code = ereg_replace("[^0-9a-zA-Z]","",$code); -$survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); -$survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); -$qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); -$agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); -$three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); -$shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); -$agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); + $get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); + $campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); + $ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); + $dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); + $state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); -### DIGITS and Dots -$server_ip = ereg_replace("[^\.0-9]","",$server_ip); -$auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); -$adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); -$phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); -$old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); -$computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); -$queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); -$vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); -### ALPHA-NUMERIC and spaces and hash and star and comma -$xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); -$xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); -### ALPHACAPS-NUMERIC -$xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); -$xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); -### ALPHA-NUMERIC and underscore and dash -$agi_output = ereg_replace("[^-\_0-9a-zA-Z]","",$agi_output); -$ASTmgrSECRET = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrSECRET); -$ASTmgrUSERNAME = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAME); -$ASTmgrUSERNAMElisten = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); -$ASTmgrUSERNAMEsend = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); -$ASTmgrUSERNAMEupdate = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); -$call_time_id = ereg_replace("[^-\_0-9a-zA-Z]","",$call_time_id); -$campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); -$CoNfIrM = ereg_replace("[^-\_0-9a-zA-Z]","",$CoNfIrM); -$DBX_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_database); -$DBX_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_pass); -$DBX_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_user); -$DBY_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_database); -$DBY_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_pass); -$DBY_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_user); -$dial_method = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_method); -$dial_status_a = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_a); -$dial_status_b = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_b); -$dial_status_c = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_c); -$dial_status_d = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_d); -$dial_status_e = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_e); -$ext_context = ereg_replace("[^-\_0-9a-zA-Z]","",$ext_context); -$group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_id); -$lead_filter_id = ereg_replace("[^-\_0-9a-zA-Z]","",$lead_filter_id); -$local_call_time = ereg_replace("[^-\_0-9a-zA-Z]","",$local_call_time); -$login = ereg_replace("[^-\_0-9a-zA-Z]","",$login); -$login_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$login_campaign); -$login_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$login_pass); -$login_user = ereg_replace("[^-\_0-9a-zA-Z]","",$login_user); -$next_agent_call = ereg_replace("[^-\_0-9a-zA-Z]","",$next_agent_call); -$old_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_campaign_id); -$old_server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_server_id); -$OLDuser_group = ereg_replace("[^-\_0-9a-zA-Z]","",$OLDuser_group); -$park_file_name = ereg_replace("[^-\_0-9a-zA-Z]","",$park_file_name); -$pass = ereg_replace("[^-\_0-9a-zA-Z]","",$pass); -$phone_login = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_login); -$phone_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_pass); -$PHP_AUTH_PW = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_PW); -$PHP_AUTH_USER = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_USER); -$protocol = ereg_replace("[^-\_0-9a-zA-Z]","",$protocol); -$server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$server_id); -$stage = ereg_replace("[^-\_0-9a-zA-Z]","",$stage); -$state_rule = ereg_replace("[^-\_0-9a-zA-Z]","",$state_rule); -$status = ereg_replace("[^-\_0-9a-zA-Z]","",$status); -$trunk_restriction = ereg_replace("[^-\_0-9a-zA-Z]","",$trunk_restriction); -$user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); -$user_group = ereg_replace("[^-\_0-9a-zA-Z]","",$user_group); -$VICIDIAL_park_on_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); -$auto_alt_dial = ereg_replace("[^-\_0-9a-zA-Z]","",$auto_alt_dial); -$dial_status = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status); -$queuemetrics_eq_prepend = ereg_replace("[^-\_0-9a-zA-Z]","",$queuemetrics_eq_prepend); -$vicidial_agent_disable = ereg_replace("[^-\_0-9a-zA-Z]","",$vicidial_agent_disable); -$alter_custdata_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custdata_override); -$list_order_mix = ereg_replace("[^-\_0-9a-zA-Z]","",$list_order_mix); -$vcl_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vcl_id); -$mix_method = ereg_replace("[^-\_0-9a-zA-Z]","",$mix_method); -$category = ereg_replace("[^-\_0-9a-zA-Z]","",$category); -$vsc_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vsc_id); -$moh_context = ereg_replace("[^-\_0-9a-zA-Z]","",$moh_context); -$agent_alert_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_alert_exten); -$source_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_campaign_id); -$source_user_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_user_id); -$source_group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_group_id); -$default_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$default_xfer_group); -$drop_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_exten); -$safe_harbor_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$safe_harbor_exten); -$drop_action = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_action); -$drop_inbound_group = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_inbound_group); -$afterhours_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$afterhours_xfer_group); -$after_hours_action = ereg_replace("[^-\_0-9a-zA-Z]","",$after_hours_action); -$alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$alias_id); -$shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$shift_id); -$qc_shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$qc_shift_id); -$survey_first_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_first_audio_file); -$survey_opt_in_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_opt_in_audio_file); -$survey_ni_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_ni_audio_file); -$survey_method = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_method); -$alter_custphone_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custphone_override); -$manual_dial_filter = ereg_replace("[^-\_0-9a-zA-Z]","",$manual_dial_filter); -$agent_clipboard_copy = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_clipboard_copy); -$hold_time_option = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option); -$hold_time_option_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_xfer_group); -$hold_recall_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_recall_xfer_group); -$play_welcome_message = ereg_replace("[^-\_0-9a-zA-Z]","",$play_welcome_message); -$did_route = ereg_replace("[^-\_0-9a-zA-Z]","",$did_route); -$user_unavailable_action = ereg_replace("[^-\_0-9a-zA-Z]","",$user_unavailable_action); -$user_route_settings_ingroup = ereg_replace("[^-\_0-9a-zA-Z]","",$user_route_settings_ingroup); -$call_handle_method = ereg_replace("[^-\_0-9a-zA-Z]","",$call_handle_method); -$agent_search_method = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_search_method); -$hold_time_option_voicemail = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_voicemail); -$hold_time_option_callback_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_callback_filename); -$exten_context = ereg_replace("[^-\_0-9a-zA-Z]","",$exten_context); -$three_way_call_cid = ereg_replace("[^-\_0-9a-zA-Z]","",$three_way_call_cid); -$web_form_target = ereg_replace("[^-\_0-9a-zA-Z]","",$web_form_target); -$recording_web_link = ereg_replace("[^-\_0-9a-zA-Z]","",$recording_web_link); -$vtiger_search_category = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_search_category); -$vtiger_create_call_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_call_record); -$vtiger_create_lead_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_lead_record); -$vtiger_screen_login = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_screen_login); -$cpd_amd_action = ereg_replace("[^-\_0-9a-zA-Z]","",$cpd_amd_action); -$template_id = ereg_replace("[^-\_0-9a-zA-Z]","",$template_id); -$carrier_id = ereg_replace("[^-\_0-9a-zA-Z]","",$carrier_id); -$group_alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_alias_id); -$default_group_alias = ereg_replace("[^-\_0-9a-zA-Z]","",$default_group_alias); + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); -### ALPHA-NUMERIC and underscore and dash and comma -$logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); -$forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); -### ALPHA-NUMERIC and spaces -$lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); -### ALPHA-NUMERIC and hash -$group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); -### ALPHA-NUMERIC and hash and star and dot and underscore -$hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); -$did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); -$voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); -$phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); -$phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); -### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores -$adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); -$adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); -$asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); -$call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); -$call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); -$campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); -$campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); -$ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); -$company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); -$full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); -$fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); -$group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); -$HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); -$lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); -$lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); -$list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); -$local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); -$phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); -$picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); -$script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); -$script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); -$server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); -$status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); -$status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); -$wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); -$pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); -$campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); -$list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); -$vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); -$vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); -$vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); -$code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); -$alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); -$shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); -$did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); -$alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); -$template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); -$carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); -$group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); -$caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### ALPHA-NUMERIC and spaces + $lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); + ### ALPHA-NUMERIC and hash + $group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); + ### ALPHA-NUMERIC and hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); -### ALPHA-NUMERIC and underscore and dash and slash and at and dot -$call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); -$client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); -$DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); -$DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); -$dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); -$extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); -$install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); -$old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); -$telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); -$queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); -$queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); -$queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); -$after_hours_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$after_hours_message_filename); -$welcome_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$welcome_message_filename); -$onhold_prompt_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$onhold_prompt_filename); -$email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); -$vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); -$vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); -$vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); -### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon -$vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); -$vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); -### ALPHA-NUMERIC and underscore and dash and at and space and parantheses -$vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); -### remove semi-colons ### -$lead_filter_sql = ereg_replace(";","",$lead_filter_sql); -$list_mix_container = ereg_replace(";","",$list_mix_container); -$survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); -$survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); -$conf_override = ereg_replace(";","",$conf_override); -$template_contents = ereg_replace(";","",$template_contents); -$registration_string = ereg_replace(";","",$registration_string); -$account_entry = ereg_replace(";","",$account_entry); -$globals_string = ereg_replace(";","",$globals_string); -$dialplan_entry = ereg_replace(";","",$dialplan_entry); + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); -### VARIABLES TO BE mysql_real_escape_string ### -# $web_form_address -# $queuemetrics_url -# $admin_home_url -# $qc_web_form_address -# $vtiger_url + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); -### VARIABLES not filtered at all ### -# $script_text + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } -} # end of non_latin ##### END VARIABLE FILTERING FOR SECURITY ##### -# AST GUI database administration +# ViciDial database administration # admin.php # # CHANGELOG: @@ -1644,12 +1980,74 @@ $dialplan_entry = ereg_replace(";","",$dialplan_entry); # 90308-0956 - Added server statistics # 90309-0059 - Changed logging to admin_server_log # 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 # 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.0.5-173'; -$build = '90320-0424'; +$admin_version = '2.2.0-233'; +$build = '100104-1454'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -1664,29 +2062,50 @@ $past_month_date = date("Y-m-d H:i:s",$month_old); $week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); $past_week_date = date("Y-m-d H:i:s",$week_old); +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Vous êtes maintenant déconnecté. Merci.\n"; + exit; } - echo "Vous êtes maintenant déconnecté. Merci.\n"; - exit; -} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin FROM system_settings;"; +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -1705,21 +2124,20 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT * from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGfull_name =$row[3]; @@ -1754,11 +2172,12 @@ $browser = getenv("HTTP_USER_AGENT"); $LOGdelete_dids =$row[57]; $LOGmanager_shift_enforcement_override=$row[61]; $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - $LOGallowed_campaigns =$row[0]; + $LOGallowed_campaigns = $row[0]; if ($WeBRooTWritablE > 0) { @@ -1787,7 +2206,7 @@ header ("Content-type: text/html; charset=utf-8"); echo "\n"; echo "\n"; echo "\n"; -echo "ADMINISTRATION DE VICIDIAL: "; +echo "<title>ADMINISTRATION: "; if (!isset($ADD)) {$ADD=0;} @@ -1801,6 +2220,8 @@ if ($ADD==1111) {$hh='ingroups'; echo "Ajouter un nouveau in-group";} if ($ADD==1211) {$hh='ingroups'; echo "Dans-Groupe De Copy";} if ($ADD==1311) {$hh='ingroups'; echo "Ajouter un nouveauDID";} if ($ADD==1411) {$hh='ingroups'; echo "CopieDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Ajouter un appel Menu";} +if ($ADD==1611) {$hh='ingroups'; echo "Copiez Appel du menu";} if ($ADD==11111) {$hh='remoteagent'; echo "Ajouter de nouveaux agents distants";} if ($ADD==111111) {$hh='usergroups'; echo "Ajouter de nouveaux groupes d'utilisateurs";} if ($ADD==1111111) {$hh='scripts'; echo "Ajouter un nouveau script";} @@ -1814,6 +2235,9 @@ if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW GROUP ALIAS";} if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "AJOUTER UN NOUVEAU SERVEUR";} if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "ADD NEW CONF TEMPLATE";} if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "ADD NEW CARRIER";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW ENTRY TTS";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC ON HOLD ENTRY";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW messagerie vocale";} if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "AJOUTER UNE NOUVELLE CONFERENCE";} if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} if ($ADD=='2') {$hh='users'; echo "Ajout d'un nouvel utilisateur";} @@ -1832,6 +2256,8 @@ if ($ADD==2111) {$hh='ingroups'; echo "Ajout d'un nouvel In-Group";} if ($ADD==2011) {$hh='ingroups'; echo "Nouvelle Addition Copiée De Dans-Groupe";} if ($ADD==2311) {$hh='ingroups'; echo "A New Addition";} if ($ADD==2411) {$hh='ingroups'; echo "Nouvelle adjonction Copied DID";} +if ($ADD==2511) {$hh='ingroups'; echo "Nouvel appel Menu";} +if ($ADD==2611) {$hh='ingroups'; echo "Nouvel appel Menu";} if ($ADD==21111) {$hh='remoteagent'; echo "Ajout d'un nouvel agent distant";} if ($ADD==211111) {$hh='usergroups'; echo "Ajout d'un nouveau groupe d'utilisateurs";} if ($ADD==2111111) {$hh='scripts'; echo "Ajout d'un nouveau script";} @@ -1846,6 +2272,9 @@ if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "AJOUTER UN NOUVEAU SER if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "AJOUT D'UN NOUVEAU TRUNK VERS UN SERVEUR VICIDIAL";} if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "AJOUT DE NOUVEAUX CONF TEMPLATE";} if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "AJOUT DE NOUVEAUX CARRIER";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Ajout de nouveaux TTS ENTRY";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "AJOUT DE NEW MUSIC ON HOLD ENTRY";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "AJOUT DE NOUVEAUX la boîte vocale";} if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "AJOUT D'UNE NOUVELLE CONFERENCE";} if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "AJOUTER DES STATUTS DE SYSTÈME DE VICIDIAL";} @@ -1854,29 +2283,29 @@ if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "AJOUT VICIDIAL QC C if ($ADD==3) {$hh='users'; echo "Modifier un utilisateur";} if ($ADD==30) {$hh='campaigns'; echo "Camapagne non autorisée";} if ($ADD==31) - { - $hh='campaigns'; $sh='detail'; echo "Modifier la campagne - Détail - $campaign_id"; - if ($SUB==22) {echo " - Statuts";} - if ($SUB==23) {echo " - HotKeys";} - if ($SUB==25) {echo " -Le Fil RéutilisentEntries";} - if ($SUB==26) {echo " - Auto Alt Dial Statuts";} - if ($SUB==27) {echo " - Agent Pause Codes";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Liste Mixes";} - if ($SUB=='20A') {echo " - Sondage";} - } + { + $hh='campaigns'; $sh='detail'; echo "Modifier la campagne - Détail - $campaign_id"; + if ($SUB==22) {echo " - Statuts";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Le Fil RéutilisentEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Statuts";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Liste Mixes";} + if ($SUB=='20A') {echo " - Sondage";} + } if ($ADD==34) - { - $hh='campaigns'; $sh='basic'; echo "Modifier une Campagne - Vue Basique - $campaign_id"; - if ($SUB==22) {echo " - Statuts";} - if ($SUB==23) {echo " - HotKeys";} - if ($SUB==25) {echo " -Le Fil RéutilisentEntries";} - if ($SUB==26) {echo " - Auto Alt Dial Statuts";} - if ($SUB==27) {echo " - Agent Pause Codes";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Liste Mixes";} - if ($SUB=='20A') {echo " - Sondage";} - } + { + $hh='campaigns'; $sh='basic'; echo "Modifier une Campagne - Vue Basique - $campaign_id"; + if ($SUB==22) {echo " - Statuts";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Le Fil RéutilisentEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Statuts";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Liste Mixes";} + if ($SUB=='20A') {echo " - Sondage";} + } if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Statuts De Campagne";} if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Campagne HotKeys";} if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "Le Fil De Campagne Réutilisent Des Entrées";} @@ -1887,6 +2316,7 @@ if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Mlanges De Liste De Campa if ($ADD==311) {$hh='lists'; echo "Modifier la liste";} if ($ADD==3111) {$hh='ingroups'; echo "Modifier le In-Group";} if ($ADD==3311) {$hh='ingroups'; echo "ModifierDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Modifier menu d-appel";} if ($ADD==31111) {$hh='remoteagent'; echo "Modifier les agents distants";} if ($ADD==311111) {$hh='usergroups'; echo "Modifier les groupes d'utilisateurs";} if ($ADD==3111111) {$hh='scripts'; echo "Modifier le script";} @@ -1901,6 +2331,9 @@ if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "Modifier un groupe ALIA if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "MODIFIER LE SERVEUR";} if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFIER TTS ENTRY";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFIER LA MUSIQUE EN ATTENTE ENTREE";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFIER la boîte vocale";} if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "MODIFIER LA CONFERENCE";} if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIER LES REGLAGES DU SYSTEME VICIDIAL";} @@ -1922,6 +2355,7 @@ if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Modifier Campagne Sondag if ($ADD==411) {$hh='lists'; echo "Modifier la liste";} if ($ADD==4111) {$hh='ingroups'; echo "Modifier le In-Group";} if ($ADD==4311) {$hh='ingroups'; echo "ModifierDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Modifier menu d-appel";} if ($ADD==41111) {$hh='remoteagent'; echo "Modifier les agents distants";} if ($ADD==411111) {$hh='usergroups'; echo "Modifier les groupes d'utilisateurs";} if ($ADD==4111111) {$hh='scripts'; echo "Modifier le script";} @@ -1936,6 +2370,9 @@ if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "MODIFIER LE SERVEUR";} if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "MODIFIER LE TRUNK SERVEUR VICIDIAL";} if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFIER TTS ENTRY";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFIER LA MUSIQUE EN ATTENTE ENTREE";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFIER la boîte vocale";} if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "MODIFIER LA CONFERENCE";} if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIER LES REGLAGES DU SYSTEME VICIDIAL";} @@ -1949,6 +2386,7 @@ if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Emergency VDAC Jam Clear"; if ($ADD==511) {$hh='lists'; echo "SupprimerList";} if ($ADD==5111) {$hh='ingroups'; echo "SupprimerIn-Group";} if ($ADD==5311) {$hh='ingroups'; echo "SupprimerDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Supprimer menu d-appel";} if ($ADD==51111) {$hh='remoteagent'; echo "Supprimer les agents distants";} if ($ADD==511111) {$hh='usergroups'; echo "Supprimer les utilisateurs Group";} if ($ADD==5111111) {$hh='scripts'; echo "Supprimer les scripts";} @@ -1962,6 +2400,9 @@ if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE la boîte vocale";} if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==6) {$hh='users'; echo "SupprimerUtilisateur";} @@ -1976,6 +2417,7 @@ if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "Mélange De Liste De Camp if ($ADD==611) {$hh='lists'; echo "SupprimerList";} if ($ADD==6111) {$hh='ingroups'; echo "SupprimerIn-Group";} if ($ADD==6311) {$hh='ingroups'; echo "SupprimerDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Supprimer menu d-appel";} if ($ADD==61111) {$hh='remoteagent'; echo "Supprimer les agents distants";} if ($ADD==611111) {$hh='usergroups'; echo "Supprimer les utilisateurs Group";} if ($ADD==6111111) {$hh='scripts'; echo "Supprimer les scripts";} @@ -1988,8 +2430,11 @@ if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "SUPPRIMER LE TRUNK SERVEUR VICIDIAL";} -if ($ADD==621111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} -if ($ADD==621111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE la boîte vocale";} if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==73) {$hh='campaigns'; echo "Nombre de fiches désavtivées";} @@ -2007,6 +2452,7 @@ if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Campagnes";} if ($ADD==100) {$hh='lists'; echo "Listes";} if ($ADD==1000) {$hh='ingroups'; echo "In-Groups";} if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Appel Menus";} if ($ADD==10000) {$hh='remoteagent'; echo "Agents distants";} if ($ADD==100000) {$hh='usergroups'; echo "Groupes d'utilisateurs";} if ($ADD==1000000) {$hh='scripts'; echo "Scripts";} @@ -2020,6 +2466,9 @@ if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GROUPE ALIAS LISTE";} if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "LISTE DE SERVEURS";} if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF TEMPLATE LISTE";} if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "CARRIER LISTE";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS Entry List";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "MUSIC ON HOLD Entry List";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "VOCAL encadrés Liste";} if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "LISTE DE CONFERENCES";} if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL LISTE DE CONFERENCES";} if ($ADD==550) {$hh='users'; echo "Formulaire de recherche";} @@ -2216,53 +2665,53 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### BEGIN get inbound groups listing for checkboxes ##### $xfer_groupsSQL=''; if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) - { - $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - $xfer_groups = $row[1]; - $xfer_groups = preg_replace("/ -$/","",$xfer_groups); - $XFERgroups = explode(" ", $xfer_groups); - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } - if ($ADD==41) - { - $p=0; - $XFERgroup_ct = count($XFERgroups); - while ($p < $XFERgroup_ct) { - $xfer_groups .= " $XFERgroups[$p]"; - $p++; + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; } - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } if ($ADD==3) - { - $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; # $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; @@ -2390,10 +2839,10 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get inbound groups listing for checkboxes ##### - ##### BEGIN get campaigns listing for checkboxes ##### - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) { - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) { $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -2415,26 +2864,26 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; $qc_groups_value=''; $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; - $p=0; - while ($p<100) + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) { - if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) - { - $campaigns_list.=" CHECKED"; - $campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) - { - $qc_campaigns_list.=" CHECKED"; - $qc_campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-GROUPS',$qc_groups[$p])) - { - $qc_groups_list.=" CHECKED"; - $qc_groups_value .= " -ALL-GROUPS- -"; - } - $p++; + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } $campaigns_list.="> ALL-CAMPAIGNS - LES UTILISATEURS PEUVENT VOIR CHAQUE CAMPAGNE</B><BR>\n"; $qc_campaigns_list.="> ALL-CAMPAIGNS - UTILISATEURS CAN QC TOUTE LA CAMPAGNE</B><BR>\n"; $qc_groups_list.="> ALL-GROUPS - UTILISATEURS CAN QC ENTRANT TOUT GROUP</B><BR>\n"; @@ -2452,9 +2901,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; $p=0; - while ($p<100) + while ($p<1000) { - if ($campaign_id_value == $campaigns[$p]) + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) { # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; $campaigns_list .= " CHECKED"; @@ -2485,9 +2934,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $group_name_value = $rowx[1]; $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; $p=0; - while ($p<100) + while ($p<2000) { - if ($group_id_value == $qc_groups[$p]) + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) { $qc_groups_list .= " CHECKED"; $qc_groups_value .= " $group_id_value"; @@ -2505,7 +2954,7 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get campaigns listing for checkboxes ##### - if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) { ##### get server listing for dynamic pulldown $stmt="SELECT server_ip,server_description from servers order by server_ip"; @@ -2540,1360 +2989,1452 @@ $NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"AIDE\" ALIG ###################### if ($ADD==99999) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "
ADMINISTRATION DE VICIDIAL: AIDE


\n"; - -?> -VICIDIAL_UTILISATEURS TABLE

- -
-ID Utilisateur - C'est ici que vous mettez le numéro ID de l'utilisateur VICIDIAL, entre 2 et 8 caractères. - -
-
-
-Mot de passe - Mot de passe de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères. - -
-
-
-Nom complet - C'est dans ce champ que vous mettez le nom complet de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères. - -
-
-
-Niveau de l'utilisateur - C'est ici que vous sélectionnez le niveau de l'utilisateur. Le niveau doit être de 1 pour pouvoir ce connecter à VICIDIAL, plus grand que 2 pour se connecter à une campagne de type Closer, doit être superieur ou égal à 8 pour accéder à la section web administrateur. - -
-
-
-Groupe d'utilisateur - C'est dans ce menu que vous selectionnez le groupe utilisateur dans lequel sera cet utilisateur. Pour l'instant il n'y a pas de restriction, ce n'est que pour répartir les utilisateurs et autoriser les futures fonctions basées sur ceci. - -
-
-
-Login du téléphone - C'est ici que vous mettez le login par défaut du téléphone pour quand cette utilisateur se connecte dans vicidial.php. Le champ phone_login sera automatiquement rempli par cette valeur quand l'utilisateur se connectera avec son utilisateur-mot_de_passe_passe-campagne dans l'écran de connection vicidial.php . - -
-
-
-Mot de passe du téléphone - C'est ici que vous mettez le mot de passe par defaut du téléphone pour quand l'utisateur se connecte dans vicidial.php. Le champ phone_pass sera rempli automatiquement avec cette valeur quand l'utilisateur se connectera avec utilislateur-passe-campagne dans l'écran de conncetion vicidial.php. - -
-
-
-Active - Ce champ détermine si l'utilisateur est actif dans le système et peuvent utiliser VICIDIAL ressources. La valeur par défaut est Y - -
-
-
-Raccourcis clavier actifs - Si cette option est à 1 elle autorise l'utilisateur à utiliser les raccourcis clavier vicidial.php. - -
-
-
-Choix des Ingroups -<\/B> Cette option, si elle est mise à 1 autorise l'utilisateur à choisir les ingroups depuis lesquels il recevra des appels quand il est connecté dans une campagne de type CLOSER ou ENTRANT sinon le manager devra le définir dans l'écran de détails de l'utiliseur sur la page d'amiministration. - -
-
-
-Rappels programmés - Cette option autorise un agent à statuer un appel comme CALLBK et à choisir une date et une heure à laquelle la fiche sera réactivée. - -
-
-
-Rappel Agent-Seulement - Cette option autorise un agent à assigner un rappel pour lequel il sera le seul a pouvoir rappeler le client. Cela autorise aussi l'agent à voir sa liste de rappel quand il le désire. - -
-
-
-Appel manuel pour l'agent- Cette option autorise un agent à entrer manuellement une nouvelle fiche et à l'appeler. Elle autorise aussi l'appel de n'importe quel numéro de téléphone depuis vicidial et met cette appel dans sa session. Utilisez cette option avec précaution. - -
-
-
-Enregistrement vicidial - Cette otpion peut empêcher un agent de faire un enregistrement après qu'il se soit connecté à vicidial. Cette option doit être activée pour que vicidial suive la session d'enregistrement de la campagne. - -
-
-
-Transferts Vicidial - Cette option peut empêcher un agent d'ouvrir un transfert - conférence dans vicidial. Si c'est desactivé, l'agent ne pourra pas appeler une tierce personne ou transferer l'appel. - - 0) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: AIDE


\n"; + ?> + VICIDIAL_UTILISATEURS TABLE

+
-
+ ID Utilisateur - C'est ici que vous mettez le numéro ID de l'utilisateur VICIDIAL, entre 2 et 8 caractères. +
- Closer Default Blended -<\/B> Cette option coche simplement par défaut la checbox Blended sur un écran de connection d'une campagne de type CLOSER. - +
+
+ Mot de passe - Mot de passe de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères. -
-
-
-Ecrasement de l'enregistrement de VICIDIAL - Cette option va écraser l'option d'enregistrement de la campagne quelle qu'elle soit. DISABLED n'écrasera pas les réglages d'enregistrement de la campagne. NEVER désactivera l'enregistrement sur le client. ONDEMAND est la valeur par défaut et autorise l'agent à démarrer ou arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrment à chaque fois qu'un appel est passé à un agent. ALLFORCE démarrera l'enregistrement à chaque fois qu'un appel à un agent est passé sans permettre à l'agent d'arrêter l'enregistrement. Pour les valeurs ALLCALLS et ALLFORCE il possible d'utiliser l'option 'Délai d'enregistrement' pour réduire la taille des enregistrments et la charge du système. +
+
+
+ Nom complet - C'est dans ce champ que vous mettez le nom complet de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères. -
-
-
-Agent de l'exécution Shift Override - Ce paramètre remplace les utilisateurs quel que soit le groupe d'utilisateurs a mis en application de la loi pour Maj. HANDICAPES utilise l'utilisateur groupe. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est désactivé. +
+
+
+ Niveau de l'utilisateur - C'est ici que vous sélectionnez le niveau de l'utilisateur. Le niveau doit être de 1 pour pouvoir ce connecter à VICIDIAL, plus grand que 2 pour se connecter à une campagne de type Closer, doit être superieur ou égal à 8 pour accéder à la section web administrateur. -
-
-
-Alerte Activé - Ce champ indique si l'agent est le navigateur Web des alertes lorsque les appels ont permis de venir dans leur vicidial.php session. La valeur par défaut est 0 pour les NO. +
+
+
+ Groupe d'utilisateur - C'est dans ce menu que vous selectionnez le groupe utilisateur dans lequel sera cet utilisateur. Pour l'instant il n'y a pas de restriction, ce n'est que pour répartir les utilisateurs et autoriser les futures fonctions basées sur ceci. -
-
-
-La campagne se range - dans cette section vous pouvez définir le rangque un agent aura pour chaque campagne. Ces rangs peuvent êtreemployés pour tenir compte du cheminement préféré d'appel quand leprochain appel d'agent est placé au campaign_rank. Également dans cette section sont le WEB VAR pour chaque campagne. Il s'agit de permettre à chaque agent d'avoir une autre variable de chaîne qui peuvent être ajoutés à la fiche de Web ou SCRIPT onglet URL, simplement en mettant - A - web_vars - B - comme vous le mettre dans tout autre domaine. +
+
+
+ Login du téléphone - C'est ici que vous mettez le login par défaut du téléphone pour quand cette utilisateur se connecte dans vicidial.php. Le champ phone_login sera automatiquement rempli par cette valeur quand l'utilisateur se connectera avec son utilisateur-mot_de_passe_passe-campagne dans l'écran de connection vicidial.php . -
-
-
-Groupes entrants - C'est ici que vous selectionnez les groupes entrants depuis lesquels vous voulez recevoir des appels si vous avez selectionné une campagne de type CLOSER. Vous pourrez également placer le rang, ou le niveau de compétence,dans cette section pour chacun des groupes d'arrivée aussi bien quepouvoir voir le nombre d'appels reçus de chaque groupe d'arrivéepour cet agent spécifique. En outre dans cette section est la capacité de donner à l'agent unrang pour chaque groupe d'arrivée. Ces rangs peuvent être employéspour le cheminement préféré d'appel quand cette option est choisiedans l'écran de dans-groupe. Également dans cette section sont le WEB VAR pour chaque campagne. Il s'agit de permettre à chaque agent d'avoir une autre variable de chaîne qui peuvent être ajoutés à la fiche de Web ou SCRIPT onglet URL, simplement en mettant - A - web_vars - B - comme vous le mettre dans tout autre domaine. +
+
+
+ Mot de passe du téléphone - C'est ici que vous mettez le mot de passe par defaut du téléphone pour quand l'utisateur se connecte dans vicidial.php. Le champ phone_pass sera rempli automatiquement avec cette valeur quand l'utilisateur se connectera avec utilislateur-passe-campagne dans l'écran de conncetion vicidial.php. -
-
-
-Modifications des données des clients pour l'agent - Cette option permet de surcharger, pour un agent précis, l'option de la campagne concernant la modification des données du clients. NOT_ACTIVE utilisera la valeur présente dans l'option de la campagne. ALLOW_ALTER autorisera toujours à cet agent de modifier les données du client quelque soit la valeur de l'option dans la campagne. La valeur par défaut est NOT_ACTIVE. +
+
+
+ Active - Ce champ détermine si l'utilisateur est actif dans le système et peuvent utiliser VICIDIAL ressources. La valeur par défaut est Y -
-
-
-Alter Agent Client Téléphone Override - Cette option va remplacer ce que l'option est dans la campagne pour modifier le numéro de téléphone du client. NOT_ACTIVE va utiliser quel que soit l'établissement est présent pour la campagne. ALLOW_ALTER toujours de permettre à l'agent de modifier le numéro de téléphone des clients, quel que soit le réglage de la campagne. La valeur par défaut est NOT_ACTIVE. +
+
+
+ Courrier électronique, code utilisateur et territoire - Ce sont des champs optionnels. -
-
-
-Modifier les options de l'interface agent - Cette option, si elle est à 1, autorise l'utilisateur administrateur à modifier les otpions de l'interface Agent dans admin.php. +
+
+
+ Raccourcis clavier actifs - Si cette option est à 1 elle autorise l'utilisateur à utiliser les raccourcis clavier vicidial.php. -
-
-
-Effacer des utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer d'autres utilisateurs qui ont un niveau inférieur ou égal depuis le système. +
+
+
+ Choix des Ingroups -<\/B> Cette option, si elle est mise à 1 autorise l'utilisateur à choisir les ingroups depuis lesquels il recevra des appels quand il est connecté dans une campagne de type CLOSER ou ENTRANT sinon le manager devra le définir dans l'écran de détails de l'utiliseur sur la page d'amiministration. -
-
-
-Supprimer des groupes d'utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer les groupes d'utilisateurs depuis le système. +
+
+
+ Agent Choisir Territoires - Cette option si la valeur 1 permet à l-utilisateur de choisir les territoires qu-ils vont recevoir des appels à partir de leur connexion à un manuel ou ENTRANT_MAN campagne. Sinon, l-utilisateur sera configuré pour utiliser l-ensemble des territoires qu-ils sont définis comme appartenant à l-utilisateur dans les Territoires Section administrative. -
-
-
-Supprimer des listes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des listes depuis le système. +
+
+
+ Scheduled Callbacks - Cette option permet à un agent à disposition un appel comme CALLBK et choisir la date et l-heure à laquelle le plomb sera ré-activé. -
-
-
-Supprimer des campagnes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des campagnes vicidial depuis le système. +
+
+
+ Rappel Agent-Seulement - Cette option autorise un agent à assigner un rappel pour lequel il sera le seul a pouvoir rappeler le client. Cela autorise aussi l'agent à voir sa liste de rappel quand il le désire. -
-
-
-Supprimer des In-groups - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des In-groups vicidial depuis le système. +
+
+
+ Appel manuel pour l'agent- Cette option autorise un agent à entrer manuellement une nouvelle fiche et à l'appeler. Elle autorise aussi l'appel de n'importe quel numéro de téléphone depuis vicidial et met cette appel dans sa session. Utilisez cette option avec précaution. -
-
-
-Supprimer des agents distants - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des agents distants vicidial depuis le système. +
+
+
+ Enregistrement vicidial - Cette otpion peut empêcher un agent de faire un enregistrement après qu'il se soit connecté à vicidial. Cette option doit être activée pour que vicidial suive la session d'enregistrement de la campagne. - 0) - { +
+
+
+ Transferts Vicidial - Cette option peut empêcher un agent d'ouvrir un transfert - conférence dans vicidial. Si c'est desactivé, l'agent ne pourra pas appeler une tierce personne ou transferer l'appel. + + 0) + { + ?> +
+
+
+ Closer Default Blended -<\/B> Cette option coche simplement par défaut la checbox Blended sur un écran de connection d'une campagne de type CLOSER. + +
-
+
- Charger des fiches - Cette option et mise à 1 pour autoriser l'utilisateur à charger des fiches dans la table vicidial_list en utilisant le chargeur de fiches web. - + Ecrasement de l'enregistrement de VICIDIAL - Cette option va écraser l'option d'enregistrement de la campagne quelle qu'elle soit. DISABLED n'écrasera pas les réglages d'enregistrement de la campagne. NEVER désactivera l'enregistrement sur le client. ONDEMAND est la valeur par défaut et autorise l'agent à démarrer ou arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrment à chaque fois qu'un appel est passé à un agent. ALLFORCE démarrera l'enregistrement à chaque fois qu'un appel à un agent est passé sans permettre à l'agent d'arrêter l'enregistrement. Pour les valeurs ALLCALLS et ALLFORCE il possible d'utiliser l'option 'Délai d'enregistrement' pour réduire la taille des enregistrments et la charge du système. -
-
-
-Détails de la campagne- Cette option et mise à 1 pour autoriser l'utilisateur à voir et modifier les éléments de l'écran de details de la campagne. +
+
+
+ Agent de l'exécution Shift Override - Ce paramètre remplace les utilisateurs quel que soit le groupe d'utilisateurs a mis en application de la loi pour Maj. HANDICAPES utilise l'utilisateur groupe. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est désactivé. -
-
-
-Accès administrateur AGC - Cette option et mise à 1 pour autoriser l'utilisateur à se connecter aux pages d'administration de astGUIclient. +
+
+
+ Alerte Activé - Ce champ indique si l'agent est le navigateur Web des alertes lorsque les appels ont permis de venir dans leur vicidial.php session. La valeur par défaut est 0 pour les NO. -
-
-
-Supprimer des téléphones AGC - Cette option est mise à 1 pour autoriser l'utilisateur à effacer des téléphones dans les pages d'aministration d'astGUIclient. +
+
+
+ Permettez Alertes - Ce champ vous donne la possibilité de permettre navigateur agent des alertes pour être activé par l-agent pour les appels entrants sur leur session vicidial.php. Par défaut est 0 pour le NO. -
-
-
-Supprimer des scripts - Cette option si elle est mise à 1 autorise l'utilisateur à supprimer des scripts de campagne dans l'écran de modification du script. +
+
+
+ La campagne se range - dans cette section vous pouvez définir le rangque un agent aura pour chaque campagne. Ces rangs peuvent êtreemployés pour tenir compte du cheminement préféré d'appel quand leprochain appel d'agent est placé au campaign_rank. Également dans cette section sont le WEB VAR pour chaque campagne. Il s'agit de permettre à chaque agent d'avoir une autre variable de chaîne qui peuvent être ajoutés à la fiche de Web ou SCRIPT onglet URL, simplement en mettant - A - web_vars - B - comme vous le mettre dans tout autre domaine. -
-
-
-Modifier les fiches - Si cette otpion est à 1 elle autorise l'utilisateur à modifier les fiches dans la page des résultats de la recherche de fiches dans la section d'administration. +
+
+
+ Groupes entrants - C'est ici que vous selectionnez les groupes entrants depuis lesquels vous voulez recevoir des appels si vous avez selectionné une campagne de type CLOSER. Vous pourrez également placer le rang, ou le niveau de compétence,dans cette section pour chacun des groupes d'arrivée aussi bien quepouvoir voir le nombre d'appels reçus de chaque groupe d'arrivéepour cet agent spécifique. En outre dans cette section est la capacité de donner à l'agent unrang pour chaque groupe d'arrivée. Ces rangs peuvent être employéspour le cheminement préféré d'appel quand cette option est choisiedans l'écran de dans-groupe. Également dans cette section sont le WEB VAR pour chaque campagne. Il s'agit de permettre à chaque agent d'avoir une autre variable de chaîne qui peuvent être ajoutés à la fiche de Web ou SCRIPT onglet URL, simplement en mettant - A - web_vars - B - comme vous le mettre dans tout autre domaine. -
-
-
-Changer l'agent de campagne - Cette option, si elle est mise à 1, permet à l'utilisateur de changer la campagne dans laquelle est connecté un agent alors qu'il y est connecté. +
+
+
+ Modifications des données des clients pour l'agent - Cette option permet de surcharger, pour un agent précis, l'option de la campagne concernant la modification des données du clients. NOT_ACTIVE utilisera la valeur présente dans l'option de la campagne. ALLOW_ALTER autorisera toujours à cet agent de modifier les données du client quelque soit la valeur de l'option dans la campagne. La valeur par défaut est NOT_ACTIVE. - 0) - { +
+
+
+ Alter Agent Client Téléphone Override - Cette option va remplacer ce que l'option est dans la campagne pour modifier le numéro de téléphone du client. NOT_ACTIVE va utiliser quel que soit l'établissement est présent pour la campagne. ALLOW_ALTER toujours de permettre à l'agent de modifier le numéro de téléphone des clients, quel que soit le réglage de la campagne. La valeur par défaut est NOT_ACTIVE. + +
+
+
+ Custom Utilisateur Fields - Ces cinq champs peuvent être utilisés à des fins diverses, et ils peuvent être archivés dans les adresses formulaire web et des scripts comme user_custom_one et ainsi de suite. + +
+
+
+ Modifier les options de l'interface agent - Cette option, si elle est à 1, autorise l'utilisateur administrateur à modifier les otpions de l'interface Agent dans admin.php. + +
+
+
+ Effacer des utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer d'autres utilisateurs qui ont un niveau inférieur ou égal depuis le système. + +
+
+
+ Supprimer des groupes d'utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer les groupes d'utilisateurs depuis le système. + +
+
+
+ Supprimer des listes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des listes depuis le système. + +
+
+
+ Supprimer des campagnes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des campagnes vicidial depuis le système. + +
+
+
+ Supprimer des In-groups - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des In-groups vicidial depuis le système. + +
+
+
+ Supprimer des agents distants - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des agents distants vicidial depuis le système. + + 0) + { + ?> +
+
+
+ Charger des fiches - Cette option et mise à 1 pour autoriser l'utilisateur à charger des fiches dans la table vicidial_list en utilisant le chargeur de fiches web. + +
-
+
- Supprimer des filtres - Cette option autorise l'utilisateur à supprimer les filtres de fiches du système. - + Détails de la campagne- Cette option et mise à 1 pour autoriser l'utilisateur à voir et modifier les éléments de l'écran de details de la campagne. -
-
-
-Suppression des périodes d'appels -<\/B> Cette option permet à l'utilisateur de supprimer les enregistrements des périodes d'appels vicidial et les enregistrement des périodes d'appels d'état de ce système. +
+
+
+ Accès administrateur AGC - Cette option et mise à 1 pour autoriser l'utilisateur à se connecter aux pages d'administration de astGUIclient. -
-
-
-Modification des périodes d'appels -<\/B> Cette option autorise l'utilisateur à voir et modifier les périodes d'appels et les périodes d'appels d'état. Un utilisateur n'a pas besoin de cette option si il a seulement besoin de changer les options des périodes d'appels sur l'écran de campagne. +
+
+
+ Supprimer des téléphones AGC - Cette option est mise à 1 pour autoriser l'utilisateur à effacer des téléphones dans les pages d'aministration d'astGUIclient. -
-
-
-Modifications des sections - Cette option autorise l'utilisateur à voir et modifier chaque enregistrement de section. Si cette option a pour valeur 0, l'utilisateur pourra voir la liste des sections, mais pas le détail et ne pourra pas modifier les enregistrements dans cette section. +
+
+
+ Supprimer des scripts - Cette option si elle est mise à 1 autorise l'utilisateur à supprimer des scripts de campagne dans l'écran de modification du script. -
-
-
-Voir les rapports - Cette option autorise l'utilisateur à voir les rapports VICIDIAL. +
+
+
+ Modifier les fiches - Si cette otpion est à 1 elle autorise l'utilisateur à modifier les fiches dans la page des résultats de la recherche de fiches dans la section d'administration. - 0) - { +
+
+
+ Changer l'agent de campagne - Cette option, si elle est mise à 1, permet à l'utilisateur de changer la campagne dans laquelle est connecté un agent alors qu'il y est connecté. + + 0) + { + ?> +
+
+
+ Supprimer des filtres - Cette option autorise l'utilisateur à supprimer les filtres de fiches du système. + -
-
-
- QC Activé - Cette option permet à l'utilisateur de se connecter à l'agent de contrôle de la qualité d'écran.
-
+
- QC Niveau de l'utilisateur - Ce paramètre définit ce que l'agent de contrôle de la qualité est au niveau utilisateur. Ce qui déterminera le niveau de fonctionnalité de l'agent dans la section QC:
- 1 - Rien Modifier
- 2 - Modifier Rien Sauf Etat
- 3 - Modifier tous les Domaines
- 4 - Vérifiez Premier Cycle de QC
- 5 - Voir QC Statistiques
- 6 - Possibilité de modifier fini records
- 7 - Level Manager
+ Suppression des périodes d'appels -<\/B> Cette option permet à l'utilisateur de supprimer les enregistrements des périodes d'appels vicidial et les enregistrement des périodes d'appels d'état de ce système.
-
+
- Record QC Pass - Cette option permet à l'agent de préciser que le dossier a franchi le premier tour de Québec, après avoir examiné le dossier. + Modification des périodes d'appels -<\/B> Cette option autorise l'utilisateur à voir et modifier les périodes d'appels et les périodes d'appels d'état. Un utilisateur n'a pas besoin de cette option si il a seulement besoin de changer les options des périodes d'appels sur l'écran de campagne.
-
+
- Record QC Finish - Cette option permet à l'agent de préciser que le dossier a terminé la deuxième ronde de Québec après avoir examiné le dossier transmis. + Modifications des sections - Cette option autorise l'utilisateur à voir et modifier chaque enregistrement de section. Si cette option a pour valeur 0, l'utilisateur pourra voir la liste des sections, mais pas le détail et ne pourra pas modifier les enregistrements dans cette section.
-
+
- Record QC Commit - Cette option permet à l'agent de préciser que le record a été commise dans QC. Il ne peut plus être modifié par n'importe qui. - + Voir les rapports - Cette option autorise l'utilisateur à voir les rapports VICIDIAL. -
-
-
-Ajouter Log timeclock Record - Cette option permet à l'utilisateur d'ajouter des enregistrements à l'timeclock journal. + 0) + { + ?> +
+
+
+ QC Activé - Cette option permet à l'utilisateur de se connecter à l'agent de contrôle de la qualité d'écran. -
-
-
-Modifier timeclock Connexion Record - Cette option permet à l'utilisateur de modifier des enregistrements dans le journal timeclock. +
+
+
+ QC Niveau de l'utilisateur - Ce paramètre définit ce que l'agent de contrôle de la qualité est au niveau utilisateur. Ce qui déterminera le niveau de fonctionnalité de l'agent dans la section QC:
+ 1 - Rien Modifier
+ 2 - Modifier Rien Sauf Etat
+ 3 - Modifier tous les Domaines
+ 4 - Vérifiez Premier Cycle de QC
+ 5 - Voir QC Statistiques
+ 6 - Possibilité de modifier fini records
+ 7 - Level Manager
-
-
-
-Supprimer timeclock Connexion Record - Cette option permet à l'utilisateur de supprimer des enregistrements dans les journaux timeclock. +
+
+
+ Record QC Pass - Cette option permet à l'agent de préciser que le dossier a franchi le premier tour de Québec, après avoir examiné le dossier. -
-
-
-Agent API d'accès - Cette option permet le compte à utiliser avec l'agent VICIDIAL commandes API. +
+
+
+ Record QC Finish - Cette option permet à l'agent de préciser que le dossier a terminé la deuxième ronde de Québec après avoir examiné le dossier transmis. -
-
-
-Shift Manager exécution Override - Ce paramètre, s'il est à 1 permettra d'entrer dans un gestionnaire d'utilisateur et leur mot de passe sur l'écran d'un agent pour l'emporter sur l'évolution des restrictions sur un agent de la session si l'agent essaie de se connecter à l'extérieur de leur quart de travail. La valeur par défaut est 0. - -
-
-
-Download Listes - Ce paramètre, s'il est à 1 permet à un gestionnaire de téléchargement, cliquez sur le lien de la liste au bas de l'écran de modification d'une liste d'exporter la totalité du contenu d'une liste de données à un fichier plat. La valeur par défaut est 0. - -
-
-
-Rapports d'exportation - Ce paramètre, s'il est à 1 permettra d'accéder à un gestionnaire de l'exportation des rapports sur l'appel RAPPORTS écran. La valeur par défaut est 0. Pour le rapport invite l'exportation, l'ordre suivant est utilisé pour les exportations:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds - - - - - - -



- -VICIDIAL_CAMPAGNES TABLE

-
-
-ID de la campagne - C'est un nom court pour la campagne, il n'est pas modifiable après validation, il ne peut contenir d'espaces et doit contenir entre 2 et 8 caractèresh. - -
-
-
-Nom de la campagne - C'est la description de la campagne, elle doit contenir entre 6 et 40 caractères. - -
-
-
-Description de la campagne - C'est un champ de note pour la campagne, il est optionel et ne peut contenir plus de 255 caractères. - -
-
-
-Date de changement de la campagne - C'est la dernière fois que les réglages de la campagne ont été modifié. - -
-
-
-Date de la dernière connection à la campagne - C'est la dernière fois qu'un agent s'est connecté à la campagne. - -
-
-
-Rafraichissement des statistiques de la campagne - Cette checkbox permet de forcer un rafraichissement des statistiques de vicidial, même si la campagne n'est pas active. - -
-
-
-Active - C'est ici que vous indiquez si la campagne est active ou non. Si elle est inactive personne ne peut se connecter à cette campagne. - -
-
-
-Extension de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que l'extension est en place dans le fichier extension.conf et qu'elle pointe sur le fichier suivant. - -
-
-
-Fichier de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que le nom du fichier fasse moins de 10 caractères et qu'il soit bien en place dans le répertoire /var/lib/asterisk/sounds. - -
-
-
-Formulaire Web - C'est ici que que vous pouvez mettre une page web personnalisée qui sera ouverte quand l'utilisateur cliquera sur le bouton FORMULAIRE WEB. Pour personnaliser la chaîne de requête, après le formulaire Web, il suffit de commencer avec le formulaire web, VAR et puis l'URL que vous voulez utiliser, en remplaçant les variables avec les noms des variables que vous voulez utiliser - A - phone_number - B -- comme dans l'onglet SCRIPTS. - -
-
-
-Formulaire Web Public- C'est là que vous pouvez définir la page Web personnalisée cadre que le formulaire web sera ouverte lorsque l'utilisateur clique sur le bouton de formulaire Web. La valeur par défaut est _blank. - -
-
-
-Autoriser les Closers - C'est ici que vous pouvez définir si les utilisateurs de cette campagne pouront envoyer l'appel vers une campagne de type closer. - -
-
-
-Groupe de transfert de défaut - ce champ est le Dans-Groupe dedéfaut qui sera automatiquement choisi quand l'agent va à l'armaturede transférer-conférence dans leur interface d'agent. - -
-
-
-Groupes laissés de transfert - avec ces listes de checkbox vouspouvez choisir les groupes aux lesquels les agents dans cette campagnepeuvent transférer des appels. Permettez Closers doit être permispour que cette option révèle. - - 0) - { +
+
+
+ Record QC Commit - Cette option permet à l'agent de préciser que le record a été commise dans QC. Il ne peut plus être modifié par n'importe qui. + -
-
-
- Permettez d'arrivée et mélangé - c'est où vous pouvez placer siles utilisateurs de cette campagne auront l'option pour prendre desappels d'arrivée avec cette campagne. Si vous voulez faire d'arrivéeet en partance mélangés puis ceci doit être placé à Y. Si vousvoulez seulement faire composer en partance sur cette campagne placiezceci à N. Default est N.
-
+
- Statut de l'appel -<\/B> C'est ici que vous indiquez les statuts que vous voulez appeler dans les listes actives pour la campagne suivante. Pour ajouter un autre statut d'appel, selectionnez le dans la liste déroulante et cliquez sur AJOUTER. Pour supprimer un de ces statuts, cliquez sur le lien SUPPRIMER à côté du statut que vous voulez supprimer. + Ajouter Log timeclock Record - Cette option permet à l'utilisateur d'ajouter des enregistrements à l'timeclock journal.
-
+
- Ordre de la liste - C'est dans ce menu que vous selectionnez comment les fiches qui correspondent aux statuts selectionnés ci-dessus seront mises dans le distributeur de fiches: -
  - DOWN: selectionne les premières fiches chargées dans la table vicidial_list -
  - UP: selectionne les dernières fiches chargées dans la table vicidial_list -
  - UP PHONE: selectionne le plus grand numéro de téléphone et continue vers le bas -
  - DOWN PHONE: selectionne le plus petit numéro de téléphone et continue vers le haut -
  - UP LAST NAME: commence avec les noms commençant pas Z et continue vers le bas -
  - DOWN LAST NAME: commence avec les noms commençant par A et continue vers le haut -
  - UP COUNT: commence avec les fiches les plus appelées et continue en descendant -
  - DOWN COUNT: commence avec les fiches les moins appelées et continue en augmentant -
  - DOWN COUNT 2nd NEW: commence avec les fiches les moins appelées et continue en montant en insérant une fiche NEW à chaque autre fiche - Ne doit PAS avoir NEW selectionné dans les statuts d'appel -
  - DOWN COUNT 3nd NEW: commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 3 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel -
  - DOWN COUNT 4th NEW: commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 4 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel + Modifier timeclock Connexion Record - Cette option permet à l'utilisateur de modifier des enregistrements dans le journal timeclock.
-
+
- Niveau du distributeur - C'est le nombre de fiches que le script VDhopper essaye de garder dans la table vicidial_hopper pour cette campagne. Si l'on lance le script VDhopper chaque minute, mettez juste au dessus du nombre de fiches que vous voulez traiter par minute. + Supprimer timeclock Connexion Record - Cette option permet à l'utilisateur de supprimer des enregistrements dans les journaux timeclock.
-
+
- Filtre de fiches - C'est une méthode de filtrage de vos fiches utilisant un fragment de requête SQL. Utilisez cette fonction avec précaution, il est facile de stoper une comunication accidentellement avec le plus petit changement du statement SQL. La valeur par défaut est NONE. + Agent API d'accès - Cette option permet le compte à utiliser avec l'agent VICIDIAL commandes API.
-
+
- Forcer la réinitialisation du distributeur - Cela vous autorise à éliminer le contenu du distributeur depuis un formulaire de validation. Il devrait être rempli une nouvelle fois quand le quand VDhopper se lance. + Shift Manager exécution Override - Ce paramètre, s'il est à 1 permettra d'entrer dans un gestionnaire d'utilisateur et leur mot de passe sur l'écran d'un agent pour l'emporter sur l'évolution des restrictions sur un agent de la session si l'agent essaie de se connecter à l'extérieur de leur quart de travail. La valeur par défaut est 0.
-
+
- Méthode d'appel - Ce champ permet de définir la façon dont sont passés les appels. Si c'est MANUAL alors le auto_dial_level sera bloqué à 0 à moins que le méthode d'appel ne change. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Niveau de l'appel automatique if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. ENTRANT_MAN permet à l'agent de mise manuel composer des appels de la liste d'une campagne tout en étant en mesure de prendre des appels entrants entre le manuel de composer des appels. + Download Listes - Ce paramètre, s'il est à 1 permet à un gestionnaire de téléchargement, cliquez sur le lien de la liste au bas de l'écran de modification d'une liste d'exporter la totalité du contenu d'une liste de données à un fichier plat. La valeur par défaut est 0.
-
+
- Niveau de l'appel automatique - C'est ici que vous mettez combien de lignes VICIDIAL devrait utiliser par agent. 0 veut dire que l'appel automatique est désactivé et que l'agent doit cliquer pour appeler chaque numéro. Autrement VICIDIAL maintiendra le nombre de lignes égale au nombre d'agents actifs multiplié par le niveau de l'appel automatique pour arriver au nombres de lignes que cette campagne devrait permettre sur chaque serveur . La checkbox ADAPTER LE DEPASSEMENT vous permet de forcer un nouveau niveau d'appel même si la méthode d'appel est ADAPT. C'est utile s'il y a une variation dramatique dans la qualité des fiches et que vous voulez changer rigoureusement le dial_level manuellement. + Rapports d'exportation - Ce paramètre, s'il est à 1 permettra d'accéder à un gestionnaire de l'exportation des rapports sur l'appel RAPPORTS écran. La valeur par défaut est 0. Pour le rapport invite l'exportation, l'ordre suivant est utilisé pour les exportations:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner
-
+
- Valable seulement pour les contrôles - Si ce champ est à Y les agents ayant pour statut INCALL ou QUEUE seront omis pour le calcul des appels à passer quand le mode d'appel n'est pas MANUAL. La valeur par défaut est N. + Supprimer From Listes DNC - Ce paramètre si la valeur 1 permettra à un manager pour supprimer des numéros de téléphone dans les listes du DNC dans le système VICIDIAL. + + + + + + +



+ + VICIDIAL_CAMPAIGNS TABLE

+
+
+ ID de la campagne - C'est un nom court pour la campagne, il n'est pas modifiable après validation, il ne peut contenir d'espaces et doit contenir entre 2 et 8 caractèresh.
-
+
- Pourcentage limite d'abandon - Ce champ permet de définir le pourcentage limite d'appels abandonnés voulu lors de l'utilisation de méthode d'appel adaptive-predictive, pas MANUAL ni RATIO. + Nom de la campagne - C'est la description de la campagne, elle doit contenir entre 6 et 40 caractères.
-
+
- Niveau maximum d'adaptation d'appel - Ce champ permet de définir la limite du nombre de lignes que vous voulez composer par agent lors de l'utilisation d'une méthode d'appel adaptive-predictive, pas MANUAL ni RATIO. Ce nombre peut être plus grand que le Niveau de l'appel automatique de votre matériel ci celui-ci le supporte. La valeur doit être un nombre positif plus grand que 1 qui peut être décimal. La valeur par défaut est 3.0. + Description de la campagne - C'est un champ de note pour la campagne, il est optionel et ne peut contenir plus de 255 caractères.
-
+
- Heure maximum du serveur - Ce champ est seulement utilisé par la méthode d'appel ADAPT_TAPERED. Vous devez y saisir l'heure à laquelle vous allez arrêter d'appeler pour cette campagne, 2100 veut dire que vous arrêterez d'appeler pour cette campagne à 21h00. Cela autorise l'algorithme Tapered de décider comment appeler agressivement en fonction du temps restant avant d'arrêter d'appeler. + Date de changement de la campagne - C'est la dernière fois que les réglages de la campagne ont été modifié.
-
+
- Adapter le modifieur d'intensité -<\/B> Ce champ est utilisé pour ajuster l'intensité prédictive à la fois plus haut ou plus bas. Plus vous selectionnez un nombre positif grand, plus l'appeleur augmentera considérablement l'appel quand il monte et plus l'appeleur dimunera lentement l'appel quand il descend. Plus le chiffre négatif que vous selectionnez est petit, plus l'appeleur augmentera lentement l'appel et plus l'appeleur diminuera rapidement l'appel quand il descend. La valeur par défaut est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO. + Date de la dernière connection à la campagne - C'est la dernière fois qu'un agent s'est connecté à la campagne.
-
+
- Différence cible du niveau d'appel -<\/B> Ce champ est utilisé pour définir quel nombre spécifique d'agents vous désiser avoir en attente d'appels ou d'appels en attente d'agents. Par exemple, si vous voulez avoir toujours en moyenne un agent de libre pour prendre des appels immediatement vous devriez mettre ceci à -1, si vous ciblez d'avoir un appel gardé en attente d'un agent vous devriez mettre ceci à 1. La valeur par default est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO. + Dernière campagne téléphonique Date - Il s-agit de la dernière fois qu-un appel a été traitée par un mandataire inscrit dans cette campagne.
-
+
- Transferts concurents - Ce champ permet de définir le nombre d'appels qui peuvent être envoyés à un agent simultanément. Il est recommandé de laisser AUTO. Le champ n'est pas utilisé si la méthode est MANUAL. + Rafraichissement des statistiques de la campagne - Cette checkbox permet de forcer un rafraichissement des statistiques de vicidial, même si la campagne n'est pas active.
-
+
- File d'attente de priorité - Ce paramètre est utilisé pour définir l'ordre dans lequel les appels sortants à partir de cette campagne devrait être répondu en ce qui concerne les appels entrants si cette campagne est en mode mixte. + Active - C'est ici que vous indiquez si la campagne est active ou non. Si elle est inactive personne ne peut se connecter à cette campagne.
-
+
- Appeler automatiquement le numéro alternatif - Ce champ est utilisé pour appeler automatiquement le numéro alternatif si les méthodes d'appels RATIO ou ADAPT sont utilisées quand il n'y pas de réponse au numéro de téléphone principale d'une fiche, les statuts NA, B, DC et N. Cette option n'est pas utilisée pour la méthode d'appel MANUAL. EXTENDED suppléant nombres sont des nombres dans le système en dehors de la norme de l'écran principal de l'information. L'aide de vous pouvez avoir des centaines de numéros de téléphone pour un seul client record. + Extension de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que l'extension est en place dans le fichier extension.conf et qu'elle pointe sur le fichier suivant.
-
+
- Délai d'appel -<\/B> Si défini, les appels qui seraient normalement raccrochés après le délai défini dans extensions.conf le seront après ce nombre de secondes si c'est moins que le délai dans extensions.conf. Cela autorise des délais de changement d'appel rapide de serveur à serveur et limite les effets à une simple campagne. Si vous avez beaucoup de répondeur et de boîte vocales, vous devriez essayer de mettre une valeur entre 21 et 26 et voir si les résultats s'améliorent. + Fichier de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que le nom du fichier fasse moins de 10 caractères et qu'il soit bien en place dans le répertoire /var/lib/asterisk/sounds.
-
+
- Campagne VDAD extension - Ce champ permet une coutume VDAD transfert extension. Cela vous permet d'utiliser différentes méthodes de traitement des appels en fonction de votre campagne. -- 8364 - même que 8368 -- 8365 - Will seulement envoyer l'appel à un agent sur le même serveur que l'appel est en -- 8366 - Occasions-1 pour la presse et campagnes de sondage -- 8367 - Le premier à essayer d'envoyer l'appel à un agent sur le serveur local, il se penchera sur d'autres serveurs - - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on -- 8369 - Occasions de Answering Machine de détection après que, même comportement que 8368 -- 8373 - Occasions de Answering Machine de détection après cette même comportement que 8366 + Formulaire Web - C'est ici que que vous pouvez mettre une page web personnalisée qui sera ouverte quand l'utilisateur cliquera sur le bouton FORMULAIRE WEB. Pour personnaliser la chaîne de requête, après le formulaire Web, il suffit de commencer avec le formulaire web, VAR et puis l'URL que vous voulez utiliser, en remplaçant les variables avec les noms des variables que vous voulez utiliser - A - phone_number - B -- comme dans l'onglet SCRIPTS.
-
+
- Message de répondeur - Entrez dans ce champ l'extension pour tranferer aveuglement des appels pour quand l'agent tombe sur un répondeur et qu'il clique sur le bouton Message de répondeur dans la fenêtre de transfert de conférence. Vous devez placer cet exten dans le Dial Plan - extensions.conf - et vous assurer qu'il joue un fichier audio puis raccroche. + Formulaire Web Public- C'est là que vous pouvez définir la page Web personnalisée cadre que le formulaire web sera ouverte lorsque l'utilisateur clique sur le bouton de formulaire Web. La valeur par défaut est _blank.
-
+
- AMD envoyé au vm exten -<\/B> Ce menu vous permet de définir si un message est laissé sur un répondeur quand il est détecté. L'appel sera immédiatement transmis à l'extention Answering-Machine-Message si AMD est actif et si il est déterminé que l'appel est un répondeur. + Autoriser les Closers - C'est ici que vous pouvez définir si les utilisateurs de cette campagne pouront envoyer l'appel vers une campagne de type closer.
-
+
- CPD AMD Action - Si vous utilisez le Sangoma ParaXip Call Progress logiciel de détection, vous souhaitez activer ce paramètre, soit la mise à disposition DISPO qui l'appel comme AA et l'accrocher si l'appel est en cours de traitement et n'a pas été envoyée à un agent ou encore MESSAGE qui enverra l'appel à la définition Message de répondeur pour cette campagne. La valeur par défaut est DISABLED. + Groupe de transfert de défaut - ce champ est le Dans-Groupe dedéfaut qui sera automatiquement choisi quand l'agent va à l'armaturede transférer-conférence dans leur interface d'agent.
-
+
- Appel du numéro alternatif pour l'agent - Cette option permet à l'agent d'appeler le numéro de téléphone alternatif ou le champ adresse3 après que le numéro de téléphone principal ait été appelé. + Groupes laissés de transfert - avec ces listes de checkbox vouspouvez choisir les groupes aux lesquels les agents dans cette campagnepeuvent transférer des appels. Permettez Closers doit être permispour que cette option révèle. + + 0) + { + ?> +
+
+
+ Permettez d'arrivée et mélangé - c'est où vous pouvez placer siles utilisateurs de cette campagne auront l'option pour prendre desappels d'arrivée avec cette campagne. Si vous voulez faire d'arrivéeet en partance mélangés puis ceci doit être placé à Y. Si vousvoulez seulement faire composer en partance sur cette campagne placiezceci à N. Default est N. + +
+
+
+ Statut de l'appel -<\/B> C'est ici que vous indiquez les statuts que vous voulez appeler dans les listes actives pour la campagne suivante. Pour ajouter un autre statut d'appel, selectionnez le dans la liste déroulante et cliquez sur AJOUTER. Pour supprimer un de ces statuts, cliquez sur le lien SUPPRIMER à côté du statut que vous voulez supprimer. + +
+
+
+ Ordre de la liste - C'est dans ce menu que vous selectionnez comment les fiches qui correspondent aux statuts selectionnés ci-dessus seront mises dans le distributeur de fiches: +
  - DOWN: selectionne les premières fiches chargées dans la table vicidial_list +
  - UP: selectionne les dernières fiches chargées dans la table vicidial_list +
  - UP PHONE: selectionne le plus grand numéro de téléphone et continue vers le bas +
  - DOWN PHONE: selectionne le plus petit numéro de téléphone et continue vers le haut +
  - UP LAST NAME: commence avec les noms commençant pas Z et continue vers le bas +
  - DOWN LAST NAME: commence avec les noms commençant par A et continue vers le haut +
  - UP COUNT: commence avec les fiches les plus appelées et continue en descendant +
  - DOWN COUNT: commence avec les fiches les moins appelées et continue en augmentant +
  - DOWN COUNT 2nd NEW: commence avec les fiches les moins appelées et continue en montant en insérant une fiche NEW à chaque autre fiche - Ne doit PAS avoir NEW selectionné dans les statuts d'appel +
  - DOWN COUNT 3nd NEW: commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 3 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel +
  - DOWN COUNT 4th NEW: commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 4 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel +
  - RANDOM: Hasard s-empare de plomb dans les statuts et listes définies +
  - UP LAST CALL TIME: Trie par la nouvelle durée d-un appel local pour le conduit +
  - DOWN LAST CALL TIME: Trie par le doyen des temps d-appel local pour le conduit +
  - UP RANK: Commence par le plus haut rang et fait son chemin vers le bas +
  - DOWN RANK: Commence avec le plus bas grade et fait son chemin jusqu-à +
  - UP OWNER: Commence avec les propriétaires commençant par Z et fait son chemin vers le bas +
  - DOWN OWNER: Commence avec les propriétaires commençant par A et fait son chemin jusqu-à +
  - UP TIMEZONE: Commence avec les fuseaux horaires de l-Est et l-Ouest de travaux +
  - DOWN TIMEZONE: Commence avec les fuseaux horaires de l-Ouest et travaille Est + +
+
+
+ Niveau du distributeur - C'est le nombre de fiches que le script VDhopper essaye de garder dans la table vicidial_hopper pour cette campagne. Si l'on lance le script VDhopper chaque minute, mettez juste au dessus du nombre de fiches que vous voulez traiter par minute. + +
+
+
+ Filtre de fiches - C'est une méthode de filtrage de vos fiches utilisant un fragment de requête SQL. Utilisez cette fonction avec précaution, il est facile de stoper une comunication accidentellement avec le plus petit changement du statement SQL. La valeur par défaut est NONE. + +
+
+
+ Drop Lockout Time - Il s-agit d-un nombre d-heures que DROP abandonner les appels seront empêchés d-être composés, pour définir désactiver à 0. Ce paramètre est très utile dans des pays comme le Royaume-Uni où il existe une réglementation empêchant l-appelant a tenté de clients dans les 72 heures d-un abandon, ou DROP. Par défaut est 0. + +
+
+
+ Forcer la réinitialisation du distributeur - Cela vous autorise à éliminer le contenu du distributeur depuis un formulaire de validation. Il devrait être rempli une nouvelle fois quand le quand VDhopper se lance. + +
+
+
+ Méthode d'appel - Ce champ permet de définir la façon dont sont passés les appels. Si c'est MANUAL alors le auto_dial_level sera bloqué à 0 à moins que le méthode d'appel ne change. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Niveau de l'appel automatique if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. ENTRANT_MAN permet à l'agent de mise manuel composer des appels de la liste d'une campagne tout en étant en mesure de prendre des appels entrants entre le manuel de composer des appels. + +
+
+
+ Niveau de l'appel automatique - C'est ici que vous mettez combien de lignes VICIDIAL devrait utiliser par agent. 0 veut dire que l'appel automatique est désactivé et que l'agent doit cliquer pour appeler chaque numéro. Autrement VICIDIAL maintiendra le nombre de lignes égale au nombre d'agents actifs multiplié par le niveau de l'appel automatique pour arriver au nombres de lignes que cette campagne devrait permettre sur chaque serveur . La checkbox ADAPTER LE DEPASSEMENT vous permet de forcer un nouveau niveau d'appel même si la méthode d'appel est ADAPT. C'est utile s'il y a une variation dramatique dans la qualité des fiches et que vous voulez changer rigoureusement le dial_level manuellement. + +
+
+
+ Valable seulement pour les contrôles - Si ce champ est à Y les agents ayant pour statut INCALL ou QUEUE seront omis pour le calcul des appels à passer quand le mode d'appel n'est pas MANUAL. La valeur par défaut est N. + +
+
+
+ Pourcentage limite d'abandon - Ce champ permet de définir le pourcentage limite d'appels abandonnés voulu lors de l'utilisation de méthode d'appel adaptive-predictive, pas MANUAL ni RATIO. + +
+
+
+ Niveau maximum d'adaptation d'appel - Ce champ permet de définir la limite du nombre de lignes que vous voulez composer par agent lors de l'utilisation d'une méthode d'appel adaptive-predictive, pas MANUAL ni RATIO. Ce nombre peut être plus grand que le Niveau de l'appel automatique de votre matériel ci celui-ci le supporte. La valeur doit être un nombre positif plus grand que 1 qui peut être décimal. La valeur par défaut est 3.0. + +
+
+
+ Heure maximum du serveur - Ce champ est seulement utilisé par la méthode d'appel ADAPT_TAPERED. Vous devez y saisir l'heure à laquelle vous allez arrêter d'appeler pour cette campagne, 2100 veut dire que vous arrêterez d'appeler pour cette campagne à 21h00. Cela autorise l'algorithme Tapered de décider comment appeler agressivement en fonction du temps restant avant d'arrêter d'appeler. + +
+
+
+ Adapter le modifieur d'intensité -<\/B> Ce champ est utilisé pour ajuster l'intensité prédictive à la fois plus haut ou plus bas. Plus vous selectionnez un nombre positif grand, plus l'appeleur augmentera considérablement l'appel quand il monte et plus l'appeleur dimunera lentement l'appel quand il descend. Plus le chiffre négatif que vous selectionnez est petit, plus l'appeleur augmentera lentement l'appel et plus l'appeleur diminuera rapidement l'appel quand il descend. La valeur par défaut est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO. + +
+
+
+ Différence cible du niveau d'appel -<\/B> Ce champ est utilisé pour définir quel nombre spécifique d'agents vous désiser avoir en attente d'appels ou d'appels en attente d'agents. Par exemple, si vous voulez avoir toujours en moyenne un agent de libre pour prendre des appels immediatement vous devriez mettre ceci à -1, si vous ciblez d'avoir un appel gardé en attente d'un agent vous devriez mettre ceci à 1. La valeur par default est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO. + +
+
+
+ Transferts concurents - Ce champ permet de définir le nombre d'appels qui peuvent être envoyés à un agent simultanément. Il est recommandé de laisser AUTO. Le champ n'est pas utilisé si la méthode est MANUAL. + +
+
+
+ File d'attente de priorité - Ce paramètre est utilisé pour définir l'ordre dans lequel les appels sortants à partir de cette campagne devrait être répondu en ce qui concerne les appels entrants si cette campagne est en mode mixte. + +
+
+
+ Multiples campagne Drop Rate Group - Cette fonctionnalité vous permet de définir une campagne comme un membre d-un groupe de la Campagne taux d-abandon, ou un groupe de campagnes dont l-homme appels répondus et les appels de chute pour toutes les campagnes dans le groupe seront combinés en un pourcentage partagée déposer, ou les taux d-abandon. Ceci vous permet d-exécuter plusieurs campagnes à la fois et plus facile à contrôler votre taux de chute. Ceci est particulièrement utile dans le Royaume-Uni où la réglementation permet cette méthode de calcul des taux d-abandon avec une campagne de groupement pour la même compagnie, même s-il ya plusieurs campagnes cette société est en marche pendant le jour même. Pour activer ce pour une campagne, il suffit de sélectionner un groupe de la liste. Il existe 10 groupes définis dans le système par défaut, vous pouvez contacter votre administrateur système d-ajouter d-autres. Par défaut est Disabled. + +
+
+
+ Appeler automatiquement le numéro alternatif - Ce champ est utilisé pour appeler automatiquement le numéro alternatif si les méthodes d'appels RATIO ou ADAPT sont utilisées quand il n'y pas de réponse au numéro de téléphone principale d'une fiche, les statuts NA, B, DC et N. Cette option n'est pas utilisée pour la méthode d'appel MANUAL. EXTENDED suppléant nombres sont des nombres dans le système en dehors de la norme de l'écran principal de l'information. L'aide de vous pouvez avoir des centaines de numéros de téléphone pour un seul client record. + +
+
+
+ Délai d'appel -<\/B> Si défini, les appels qui seraient normalement raccrochés après le délai défini dans extensions.conf le seront après ce nombre de secondes si c'est moins que le délai dans extensions.conf. Cela autorise des délais de changement d'appel rapide de serveur à serveur et limite les effets à une simple campagne. Si vous avez beaucoup de répondeur et de boîte vocales, vous devriez essayer de mettre une valeur entre 21 et 26 et voir si les résultats s'améliorent. + +
+
+
+ Campagne VDAD extension - Ce champ permet une coutume VDAD transfert extension. Cela vous permet d'utiliser différentes méthodes de traitement des appels en fonction de votre campagne. + - 8364 - même que 8368 + - 8365 - Will seulement envoyer l'appel à un agent sur le même serveur que l'appel est en + - 8366 - Occasions-1 pour la presse et campagnes de sondage + - 8367 - Le premier à essayer d'envoyer l'appel à un agent sur le serveur local, il se penchera sur d'autres serveurs + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Occasions de Answering Machine de détection après que, même comportement que 8368 + - 8373 - Occasions de Answering Machine de détection après cette même comportement que 8366 + +
+
+
+ Message de répondeur - Ce champ sert à saisir l-invite à jouer lorsque l-agent est un répondeur et clique sur le bouton Répondre Message Machine dans le cadre de conférences de transfert. Vous devez définir ce soit à un fichier audio dans le magasin audio ou une invite si TTS TTS est activé sur votre système. + +
+
+
+ WaitForSilence Options - Si Wait For Silence est demandée sur les appels qui sont détectés comme répondeur alors ce champ possède ces options. Il ya deux paramètres séparés par une virgule, la première option est combien de temps pour détecter le silence en millisecondes et la seconde option est pour combien de fois de détecter que avant la lecture du message. Par défaut est vide pour les handicapés. Une valeur standard pour ce serait attendre 2 secondes de silence à deux reprises: 2000,2 + +
+
+
+ AMD envoyé au vm exten -<\/B> Ce menu vous permet de définir si un message est laissé sur un répondeur quand il est détecté. L'appel sera immédiatement transmis à l'extention Answering-Machine-Message si AMD est actif et si il est déterminé que l'appel est un répondeur. + +
+
+
+ CPD AMD Action - Si vous utilisez le Sangoma ParaXip Call Progress logiciel de détection, vous souhaitez activer ce paramètre, soit la mise à disposition DISPO qui l'appel comme AA et l'accrocher si l'appel est en cours de traitement et n'a pas été envoyée à un agent ou encore MESSAGE qui enverra l'appel à la définition Message de répondeur pour cette campagne. La valeur par défaut est DISABLED. + +
+
+
+ Appel du numéro alternatif pour l'agent - Cette option permet à l'agent d'appeler le numéro de téléphone alternatif ou le champ adresse3 après que le numéro de téléphone principal ait été appelé. + +
+
+
+ Secondes avant abandon de l'appel -<\/B> C'est le nombre de secondes depuis le moment où la ligne du client est prise jusqu'à ce que l'appel soit considéré comme abandonné, s'applique seulement aux appels sortants. + +
+
+
+ Drop Action - Ce menu vous permet de choisir ce qui se passe à un appel quand il a attendu plus longtemps que ce qui est prévu dans le Temps avant abandon de l'appel domaine. Hangup simplement raccrocher l'appel, envoyer le message de l'appel Drop EXTEN que vous avez définies ci-après, à la messagerie vocale vous envoyer l'appel à la boîte vocale que vous avez définis ci-dessous et IN_GROUP envoie l'appel à la Inbound groupe qui est défini ci-dessous + +
+
+
+ Extension du port sûr -<\/B> C'est l'extension du dial plan où le fichier audio désiré est localisé sur le serveur. + +
+
+
+ Boîte vocale - Si elle est définie, les appels qui sont normalement abandonné seront redirigés vers une boîte vocale pour écouter et laisser un message. + +
+
+
+ Drop de transfert Group - Si Drop action est fixée à IN_GROUP, l'appel sera envoyé à ce groupe d'arrivée si elle parvient Temps avant abandon de l'appel. + +
+
+
+ Autoriser la connection aux distributeurs de fiches vides - Si défini à Y, autorise les agents à se connecter à la campagne même si il n'y a pas de fiches chargées dans le distributeur pour cette campagne. Cette fonction est nécessaire pour les campagne de type CLOSER. La valeur par défaut est N. + +
+
+
+ N Hopper Dialing - Si elle est activée, la trémie ne fonctionnera pas pour cette campagne. Cette option n-est disponible que lorsque la méthode du cadran est mis en mode manuel ou ENTRANT_MAN. Il est recommandé de ne pas activer cette option si vous avez une base très large de plomb, plus de 100.000 prospects. Avec pas d-appel Hopper, les caractéristiques suivantes ne fonctionnent pas: recyclage du plomb, auto-alt-numérotation, mélanger la liste, mise en ordre avec Xème NEW. Si vous souhaitez utiliser Propriétaire composer seulement vous devez avoir pas d-appel Hopper activé. Par défaut est N pour les handicapés. + +
+
+
+ Propriétaire composer seulement - Si elle est activée, l-agent ne recevra pistes qu-ils sont dans les paramètres de propriété pour. Si cela est réglé sur Utilisateur, puis l-agent doit être définie par l-utilisateur dans la base de données en tant que propriétaire de ce plomb. Si cela est défini au territoire, le propriétaire de la direction doit correspondre au territoire énumérées dans l-écran de Modification de l-utilisateur pour cet agent. Si ce réglage est à GROUPE_UTILISATEUR le propriétaire du nom de la sonde doit correspondre au groupe d-utilisateurs que l-agent est un membre de. Pour que cette fonction soit la méthode cadran doit être réglé en mode manuel ou ENTRANT_MAN Hopper et pas d-appel doit être activé. Par défaut est AUCUN pour les handicapés. + + 0) + { + ?> +
+
+
+ Agent de sélectionner des territoires - Si cette option est activée et que l-agent appartient à au moins un territoire, l-agent aura la possibilité de choisir les territoires à composer mène de. L-agent pourrez voir une liste des territoires disponibles sur login et ils auront la possibilité de retourner à cette liste le territoire pendant la pause pour changer leurs territoires. Pour que cette fonction de travail de la propriétaire composer seulement option doit être définie sur le territoire et les territoires d-utilisateur doit être activé dans les paramètres système. + + +
+
+
+ Mélange d'ordre de liste - dépasse les champs d'ordre de fil et destatut de cadran. Emploiera les paramètres de liste et de statut pourl'entrée choisie de mélange de liste dans la section de sous-marinde mélange de liste à la place. Le défaut est HANDICAPÉ. + +
+
+
+ Identification de mélange de liste - identification du mélange deliste. Doit être de 2-20 caractères de longueur sans les espaces outoute autre ponctuation spéciale. + +
+
+
+ Nom de mélange de liste - nom descriptif du mélange de liste. Doitêtre de 2-50 caractères de longueur. + +
+
+
+ Détail de mélange de liste - la composition de l'entrée de mélangede liste. Contient l'identification de liste, l'ordre de mélange, lespourcentages et les statuts qui composent ce mélange de liste. Lespourcentages toujours doivent additionner jusqu'à 100, et toutes leslistes doivent être en activité et réglées à la campagne pour quel'entrée de mélange d'ordre soit activée. + +
+
+
+ Méthode de mélange de liste - la méthode de mélanger toutes lesparties du détail de mélange de liste ensemble. EVEN_MIX mélangerades fils de chaque partie intercalée aux autres parties, comme ces1.2.3.1.2.3.1.2.3. IN_ORDER mettra les fils dans l'ordre dans lequelils sont énumérés dans l'écran 1.1.1.2.2.2.3.3.3 de détail demélange de liste. La volonté ALÉATOIRE les a mis dans l'ordreALÉATOIRE 1.3.2.1.1.3.2.1.3. Le défaut est IN_ORDER. + +
+
+
+ Agent Screen Extended Alt Dial - Cette fonction permet aux agents d'accéder à des numéros de téléphone suppléant étendue des pistes au-delà de l'Alt Address3 de téléphone et les champs qui peuvent être utilisés dans VICIDIAL de numéros de téléphone au-delà du numéro de téléphone principal. L'étendue des numéros de téléphone peut être composé automatiquement en utilisant la fonction Auto-Alt-Dial VICIDIAL dans les paramètres de campagne, mais l'activation de cette fonctionnalité, agent d'écran permettra également l'agent d'appeler ces numéros à partir de l'écran de leur mandataire, ainsi que de modifier leurs informations. + +
+
+
+ Première Enquête Audio File - Il s'agit du nom de fichier audio qui se joue dès que le client choisit le téléphone lors de l'exécution d'une étude campagne. + +
+
+
+ Enquête DTMF Digits - Ce domaine est l'endroit où vous définissez les chiffres que le client peut presse comme une option sur une campagne de sondage. valable chiffres DTMF sont0123456789*#. Toutes les options à l-exception des pas intéressé, troisième et quatrième options chiffre passera à la voie des appels de méthode Enquête. + +
+
+
+ Enquête Non Intéressé Digit - Ce domaine est l'endroit où vous définissez le client pressé chiffres qui montrent qu'ils ne sont pas intéressés. + +
+
+
+ Enquête Non Intéressé Etat - Ce domaine est l'endroit où vous choisissez le statut d'être utilisé pour pas intéressé. S'il est utilisé DNC et la campagne est défini pour utiliser DNC ensuite le numéro de téléphone sera automatiquement ajouté à la liste DNC VICIDIAL interne.et, éventuellement, la campagne de la liste des DNC. + +
+
+
+ Enquête sur Opt-in Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a opté dans l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à optout. Après ce fichier audio est joué, le sondage de l'action ne soit prise. + +
+
+
+ Enquête Non Intéressé Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a choisi de l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à OptIn. Après ce fichier audio est joué, l'appel sera suspendu jusqu'à. + +
+
+
+ Enquête sur la méthode - Cette option permet de définir ce qui se passe à un appel après que le client a opté en. AGENT_XFER enverra l'appel à la prochaine agent. MESSAGERIE VOCALE envoie l'appel à la boîte vocale qui est spécifié dans la boîte vocale domaine. EXTENSION envoie le client à l'extension définie dans le Enquête Xfer Extension domaine. Hangup se raccrocher le client. CAMPREC_60_WAV enverra au client d'avoir un enregistrement réalisé avec leur réponse, cet enregistrement sera placé dans un dossier nommé comme la campagne de l'intérieur de l'Enquête sur la campagne d'enregistrement Directory. + +
+
+
+ Etude de non-réponse de l'action - C'est là que vous définissez ce qui se passera s'il n'y a pas de réponse à la question de sondage. OptIn ne envoyer l'appel à la méthode d'enquête, si le client en pressant une chiffres DTMF. OptOut envoie le client sur la méthode d'enquête, même si elles ne sont pas sur un chiffre DTMF. + +
+
+
+ Enquête Réponse Digit Map - Il s'agit de la section où vous pouvez définir une description pour aller avec chaque option DTMF chiffres que le client mai sélectionner. + +
+
+
+ Enquête Xfer Extension - Si la méthode d'enquête de l'extension est sélectionné, le client appel sera dirigé vers cette extension dialplan. + +
+
+
+ Enquête sur la campagne d'enregistrement - Annuaire Si la méthode d'enquête de CAMPREC_60_WAV est sélectionné, le service à la clientèle sera enregistré et placé dans un répertoire nommé d'après la campagne de l'intérieur de ce répertoire. + +
+
+
+ Enquête sur le troisième chiffre - Cela permet un chemin d-appel tiers si le troisième chiffre tel que défini dans ce domaine est pressé par le client. + +
+
+
+ Enquête quatrième chiffre - Cela permet pour un chemin quatrième appel si la quatrième chiffres comme définis dans ce domaine est pressé par le client. + +
+
+
+ Troisième enquête sur Fichier Audio - Ceci est le fichier audio troisième à être joué sur le choix par le client de l-option de troisième chiffre. + +
+
+
+ Troisième enquête Etat - C-est le statut de troisième utilisés pour l-appel lancé à la sélection par le client de l-option de troisième chiffre. + +
+
+
+ Enquête Troisième prorogation - Il s-agit de la troisième extension utilisé pour l-appel sur le choix par le client de l-option de troisième chiffre. Par défaut est 8300, qui se bloque immédiatement à l-appel après que le message audio du fichier est joué. + +
+
+
+ Agent d-affichage composable Leads - Cette option si elle est activée affiche le nombre de pistes d-accès automatique disponibles dans la campagne dans l-écran de l-agent. Ce numéro est mis à jour dans le système une fois par minute et sera rafraîchie à l-écran tous les agents de quelques secondes. + +
-
+
- Secondes avant abandon de l'appel -<\/B> C'est le nombre de secondes depuis le moment où la ligne du client est prise jusqu'à ce que l'appel soit considéré comme abandonné, s'applique seulement aux appels sortants. + Appel de l'agent suivant - Cela determine quel agent recevra l'appel suivant quand c'est possible: +
  - random: ordonne par la valeur aléatoire de mise à jour dans la table vicidial_live_agents +
  - oldest_call_start: ordonne par la dernière date à laquelle un agent a passé un appel. Résultats des agents recevant globalement un nombre à peu près identique d'appels . +
  - oldest_call_finish: ordonne suivant la dernière date à laquelle un agent a terminé un appel. L'agent AKA attendant le plus longtemps reçoit le premier appel. +
  - overall_user_level: ordonne par le user_level de l'agent comme défini dans la table vicidial_users, un user_level plus élévé recevra plus d'appels. +
  - campaign_rank : ordres par le rang donné à l'agent pour la campagne.Le plus haut à le plus bas. +
  - fewest_calls : ordres par le nombre d'appels reçus par un agent pource groupe d'arrivée spécifique. Moindres appels d'abord. +
  - longest_wait_time: commandes par la quantité de temps d-attente agent a été activement pour un appel.
-
+
- Drop Action - Ce menu vous permet de choisir ce qui se passe à un appel quand il a attendu plus longtemps que ce qui est prévu dans le Temps avant abandon de l'appel domaine. Hangup simplement raccrocher l'appel, envoyer le message de l'appel Drop EXTEN que vous avez définies ci-après, à la messagerie vocale vous envoyer l'appel à la boîte vocale que vous avez définis ci-dessous et IN_GROUP envoie l'appel à la Inbound groupe qui est défini ci-dessous + Temps d'appel local -<\/B> C'est ici que vous indiquez pendant quelles heures vous voulez appeler, comme déterminé par l'heure locale dans la région dans laquelle vous voulez appeler. C'est controlé par le code de la région et est ajusté pendant le temps des Daylight Savings si c'est approprié. Les habitudes générales aux Etat-Unis, de Buisness à Buisness, sont de 9h00 à 17h00 et de Buisness à particulier de 9h00 à 21h00.
-
+
- Extension du port sûr -<\/B> C'est l'extension du dial plan où le fichier audio désiré est localisé sur le serveur. + Préfixe d'appel - Ce champ autorise plus facilement à changer un chemin d'appel vers l'exterieur à travers une méthode differente sans devoir recharger Asterisk. La valeur par défaut 9 est basée sur 91NXXNXXXXXX dans le dial plan du fichier extensions.conf .
-
+
- Boîte vocale - Si elle est définie, les appels qui sont normalement abandonné seront redirigés vers une boîte vocale pour écouter et laisser un message. + Omettre le Phone Code - Ce champ permet de ne pas utiliser le champ phone_code lors d'appels passés depuis VICIDIAL. Par exemple si vous appelez de France vers la France vous devriez avoir 33 dans le champ phone_code de chaque fiche, mais vous voulez utiliser 10 chiffres dans le dial plan extensions.conf au lieu de 33 puis 10 chiffres. La valeur par défaut est N.
-
+ +
+ CallerID de la campagne - Ce champ autorise à envoyer un numéro de callerId personnalisé sur les appels sortants. C'est le numéro de callerId que vous voullez montrer à la personne que vous appellez. La valeur par défaut est UNKNOW. Si vous utilisez des T1 ou E1s pour appeler vers l'extérieur cette option est seulement valable si vous utilisez des PRIs - ISDN T1s ou E1s - qui ont la fonction CallerId personnalisable activée, cela ne fonctionne pas avec le service Robbed-bit et les circuits -RBS-. Cela fonctionne aussi avec la plupart des fournisseurs VOIP -SIP ou trunks IAX- qui autorisent un callerId de sortie dynamique. Le callerID personnalisé ne s'applique qu'aux appels passés directement depuis la campagne VICIDIAL, n'importe quel appel avec une tierce personne ou transféré n'enverra pas le callerId personnalisé. NOTE: Parfois en mettant UNKWOWN ou PRIVATE dans ce champ c'est le callerId par défaut de votre ligne qui sera transmis pour les appels. Vous pouvez tester cela et mettre 0000000000 à la place dans le champs calleID si vous ne voulez pas envoyer votre CallerID. + +
+
+
+ Extention d'enregistrement - Ce champs autorise à avoir une extension personnalisée d'enregistrement pour l'utiliser avec VICIDIAL. Cela autorise à utiliser différentes extensions selon le temps maximum d'enregistrement que vous voulez autoriser et le type de codec que vous voulez utiliser. L'exten par defaut est 8309 qui, si vous avez suivi les exemples de la SCRATCH_INSTALL, enregistrera dans le format WAV jusqu'à une heure. Une autre option incluse dans les exemples est 8310 qui enregistrera dans le format GSM jusqu'à une heure. + +
+
+
+ Enregistrement de la campagne - Ce menu permet de choisir le niveau d'enregistrement autorisé pour cette campagne. NEVER désactive l'enregistrement sur l'application client. ONDEMAND est la valeur par défaut et permet à l'agent de démarrer et arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrement pour tous les appels passés vers un agent. ALLFORCE démarrera l'enregistrement à chaque appel passés vers un agent sans donné la possibilité à l'agent de stopper l'enregistrement. Pour ALLCALLS et ALLFORCE il y a une option pour utiliser un délai d'enregistrement afin de réduire les enregistrements et la charge système. + +
+
+
+ Nom du fichier d'enregistrement de la campagne - Ce champs vous permet de personnaliser le nom de fichier pour l'enregistrement quand l'enregistrement de la campage est sur ONEDEMAND ou ALLCALLS. Les variables autorisées sont CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par defaut est FULLDATE_AGENT et le nom du fichier ressemblerait à ceci : 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE ce qui ressemblerait à ceci : TESTCAMP_51020103108_3125551212 . 50 char max. + +
+
+
+ Délai d'enregistrement - Uniquement pour les enregistrements ALLCALLS et ALLFORCE. Cette valeur est le nombre de secondes après lesquelles commence l'enregistrement des appels. La valeur par défaut est 0. + +
+
+
+ Script campagne ->/B> Ce menu vous permet de choisir le script qui apparaîtra sur l'écran des agents pour cette campagne. Mettez NONE pour ne pas montrer de script pour cette campagne. + +
+
+
+ Consigne de lancement d'appel - Ce menu vous permet de choisir si vous voulez lancer automatiquement la page de web-form dans une fenêtre séparée, passer automatiquement sur l'onglet de script ou ne rien faire quand un appel est envoyé par un agent dans cette campagne. + +
+
+
+ Xfer-Conf DTMF - Ces quatre domaines pour vous permettre d-avoir deux ensembles de transfert de conférence et les préréglages DTMF. Lorsque l-appel ou de la campagne est chargé, le script vicidial.php montrera deux boutons sur le transfert-cadre de conférences et automatiquement le numéro à composer et envoyer les champs DTMF lorsqu-ils sont pressés. Si vous souhaitez autoriser consultatif transferts, un fronter à un proche, que l-agent utiliser la case à cocher consultatif, qui ne fonctionne pas pour les tiers VICIDIAL demande de consultation. Pour ceux qui viennent de l-agent, cliquez le bouton de cadran avec la clientèle. Alors l-agent pouvez aussi le laisser-3way-Call et passer à leur prochain appel. Si vous souhaitez autoriser les transferts aveugles de clients à un script AGI VICIDIAL l-exploitation forestière ou un SVI, puis AXFER lieu dans le numéro à composer sur le terrain. Vous pouvez également spécifier une extension personnalisée après la AXFER, par exemple si vous voulez faire un appel vers un IVR spéciaux que vous avez défini à l-extension 83900 vous mettriez AXFER83900 dans le numéro à composer sur le terrain. + +
+
+
+ Quick Transfer Button - Cette option permet d-ajouter un bouton de transfert rapide à l-écran de l-agent en dessous du bouton Transfer-Conf qui permettra un clic aveugles transfert d-appels à la sélectionnés en-groupe ou un numéro. IN_GROUP va envoyer des appels au groupe par défaut Xfer pour cette campagne, ou en-groupe s-il y avait un appel entrant. Les options prédéfinies vous enverrons les appels à la preset sélectionnée. Par défaut est N pour les handicapés. + +
+
+
+ Préremplir Transfert Preset - Cette option permet de remplir le champ Numéro de réseau commuté dans le cadre de transfert de conférence de l-écran de l-agent s-il est défini. Par défaut est N pour les handicapés. + +
+
+
+ Minuterie d-action - Cette fonctionnalité vous permet de déclencher des actions après un certain laps de temps. D1 et D2 options DIAL va lancer un appel à la presets Transfer Conference Nombre et les envoyer à la session d-agent, ce n-est généralement utilisé pour les applications IVR AGI simple validation ou tout simplement pour jouer un message pré-enregistré. WebForm ouvrira l-adresse formulaire web. MESSAGE_ONLY va simplement afficher le message qui est dans le champ ci-dessous. AUCUNE désactive cette fonctionnalité et la valeur par défaut. + +
+
+
+ Minuterie d-action Message - Tel est le message qui s-affiche sur l-écran de l-agent au moment de l-action Timer est déclenché. + +
+
+
+ Minuterie d-action Seconds - Il s-agit de la quantité de temps après l-appel est connecté au client que l-action Timer est déclenchée. Par défaut est -1, qui est aussi inactive. + +
+
+
+ Rappels programmés - Cette option autorise un agent à statuer un appel comme CALLBK et à choisir une date et une heure à laquelle la fiche sera réactivée. + +
+
+
+ Temps de conclusion -<\/B> Nombre de secondes pendant lesquelles l'agent est forcé à attendre avant de pouvoir recevoir ou passer un nouvel appel. Le timer commence dès que l'agent à raccrocher - ou dans le cas de l'appel du numéro alternatif quand l'agent à terminer la fiche - La valeur par défaut est 0. Si le timer se termine avant que l'agent n'ait statué l'appel, l'agent ne passera pas à l'appel suivant tant qu'il n'a pas sélectionné un statut. + +
+
+
+ Message de conclusion -<\/B> C'est un message spécifique à la campagne à afficher si le temps de conclusion est défini. + +
+
+
+ Utiliser la liste DNC interne - Cela défini si cette campagne doit filter les fiches par rapport à la liste DNC. Si ce champ est à Y alors le distributeur de fiches recherchera chaque numéro de téléphone dans la liste DNC avant de la placer dans le distributeur de fiches. Si il est dans la liste DNC alors le statut de la fiche sera changer en DNCL, il ne pour donc pas être appelé. La valeur par défaut est N. L-option AreaCode est comme l-option Y, sauf qu-il est utilisé pour filtrer également un code région entière en Amérique du Nord d-être appelé, dans ce cas en utilisant l-entrée 201XXXXXXX dans la liste DNC serait de bloquer tous les appels à l-indicatif régional 201 si elle est activée. + +
+
+
+ Utilisez Campagne DNC List - Cela définit si cette campagne est de filtrer les mène à une liste DNC qui est spécifique à cette campagne seulement. Si elle est définie à Y, la trémie sera, pour chaque numéro de téléphone dans la campagne des DNC avant de le placer dans la trémie. Si elle est dans la campagne des DNC liste, il va changer le statut qui conduisent à DNCC il ne peut donc pas être composé. La valeur par défaut est N. L-option AreaCode est comme l-option Y, sauf qu-il est utilisé pour filtrer également un code région entière en Amérique du Nord d-être appelé, dans ce cas en utilisant l-entrée 201XXXXXXX dans la liste DNC serait de bloquer tous les appels à l-indicatif régional 201 si elle est activée. + +
+
+
+ Groupes entrants autorisés - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. + +
+
+
+ Activer les codes de la pause des agents - Autorise les agents à sélectionner un code de pause quand il clique sur le bouton PAUSE dans vicidial.php. Les codes de pause sont définissable par campagne dans le bas de la vue détaillée de la campagne et sont stockés dans la table vicidial_agent_log. La valeur par défaut est N. Force va forcer les agents à choisir un code PAUSE si elles cliquez sur le bouton PAUSE. + +
+
+
+ Désactiver la modification des données du client - Si défini à Y alors les données de la fiche d'un client ne sont pas modifiées quand un agent passe l'appel. La valeur pas défaut est N. + +
+
+
+ Désactiver Alter clientèle Téléphone - Si la valeur de Y, ne modifie pas le client numéro de téléphone lors d'un agent dispositions de l'appel. La valeur par défaut est Y. Utilisez l-option Masquer pour supprimer complètement le numéro de téléphone du client depuis l-écran de l-agent. + +
+
+
+ Agent Afficher Queue Count - Si la valeur de Y, lorsque le client est en attente d'un agent, la file d'attente de demande d'affichage en haut de l'agent de l'écran devient rouge et indique le nombre d'appels en attente. Le défaut est Y. + +
+
+
+ Identification manuelle de liste de cadran - le list_id de défaut àemployer quand des placces d'un agent un appel manuel et un nouveaudisque de fil est créés dans le vicidial_list. Le défaut est 999.Ce champ peut contenir des chiffres seulement. + +
+
+
+ Manuelle Filter - Cela vous permet de filtrer les appels que les agents font en mode manuel composer pour cette campagne par une combinaison des éléments suivants: DNC - à coup sur, CAMPAIGNLISTES - le nombre doit être dans les listes pour la campagne, AUCUN - pas de filtre sur le cadran ou manuel rapide composer des listes. + +
+
+
+ Agent de presse-papiers de copie d'écran - Cette fonctionnalité est actuellement disponible que pour Internet Explorer. Cette fonctionnalité vous permet de sélectionner un domaine qui sera copiée dans le presse-papiers de l'ordinateur de l'agent sur l'ordinateur d'un appel d'être envoyées à un agent. Commune utilise pour cela sont pour faciliter le collage de numéros de compte ou des numéros de téléphone en héritage les applications client à l'agent d'ordinateur. + +
+
+
+ 3-Way Outbound Call CallerID - Cela définit ce qui est envoyé en tant que sortant CallerID nombre de 3-way appels effectués par l'agent, la campagne utilise la campagne personnalisée CallerID, client utilise le numéro de client qui est actif sur les agents de l'écran et utilise les CallerID AGENT_PHONE le téléphone pour que l'agent est entré dans. AGENT_CHOOSE permet de choisir l'agent qui CallerID à utiliser pour les 3-way appels à partir d'une liste de choix. + +
+
+
+ 3-Way Call Préfixe de numérotation - Cela définit ce qui est utilisé comme préfixe pour les 3-way appels, par défaut est vide de sorte que la campagne de préfixe est utilisé, passthru afin que vous puissiez entendre sonner est de 88. + + 0) + { + ?> +
+
+
+ QC Activé - Mise en ce domaine permet à Y pour l'agent de contrôle de la qualité caractéristiques au travail. La valeur par défaut est N. + +
+
+
+ Statuts QC - Cette zone est l'endroit où vous choisissez ce qui entraîne des statuts doit être dépassé par le système de QC. Placez un contrôle à côté de l'état que vous voulez examiner QC. + +
+
+
+ QC Shift - Il s'agit du changement de calendrier utilisé pour tirer QC pour une campagne. Les jours de la semaine sont ignorées pour ces fonctions. + +
+
+
+ Record QC Get lancement Cela permet à l'une des actions suivantes peut être déclenché sur un agent QC recevoir un nouveau record. + +
+
+
+ QC Voir Recording - qui permet un enregistrement qui mai être liée à la QC record à afficher dans le QC agent écran. + +
+
+
+ QC WebForm Adresse - Il s'agit de l'adresse du site web d'un agent QC pouvez aller à en cliquant sur le lien dans la WebForm QC écran. + +
+
+
+ Script QC - C'est le script qui peut être utilisé par les agents QC SCRIPT dans l'onglet de la QC écran. + + +
+
+
+ Recherche Catégorie Vtiger - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre lorsque l'vtiger_search.php page de recherche pour le numéro de téléphone qui a été entré. Il ya 4 options qui peuvent être utilisés dans ce domaine: LEAD-Cette option de recherche par le biais du conduit Vtiger seulement, COMPTE-Cette option de recherche par le biais du Vtiger comptes et tous les contacts et les sous-contacts pour le numéro de téléphone, VENDOR-Cette option ne recherche que par l'intermédiaire du Vtiger fournisseurs, ACCTID-Cette option ne fonctionne que pour les comptes et il prendra les VICIDIAL vendor_lead_code terrain et essayer de chercher le numéro de compte Vtiger. En cas d'échec, il va essayer d'autres méthodes que la liste que vous avez sélectionné. Plusieurs options peuvent être utilisées pour chaque recherche, mais sur de grandes bases de données ce n'est pas recommandé. La valeur par défaut est LEAD. UNIFIED_CONTACT-Cette option utilise la version bêta 5.1.0 Vtiger fonction pour effectuer une recherche par numéro de téléphone et afficher une page de recherche dans Vtiger. + +
+
+
+ Vtiger Recherche Dead Comptes - Si Vtiger intégration est activée dans les paramètres du système, puis, cette option détermine si les comptes supprimés sera recherché lorsque l-agent clics WEB forme pour chercher dans le système de Vtiger. Handicapés conduit supprimés ne seront pas cherché, ASK-deleted conduit seront recherchés et la page de recherche vtiger web demandera à l-agent si ils veulent faire le compte Vtiger active, ressusciter-rend automatiquement le compte supprimé de nouveau active et elle prendra les agent à l-écran de compte sans tarder et à cliquer sur un formulaire Web. Par défaut est Disabled. + +
+
+
+ Vtiger Créer Call Record - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre est de savoir si un nouveau record d'activité Vtiger est créé pour l'appel lorsque l'agent est à la vtiger_search page. La valeur par défaut est Y. L-option DISPO créera un enregistrement d-appel pour le compte Vtiger sans que l-agent ayant besoin d-aller à la page de recherche vtiger Via le formulaire web. + +
+
+
+ Vtiger Créer Lead Record - Si Vtiger intégration est activé dans les paramètres système et Vtiger LEAD Recherche Catégorie comprend alors ce paramètre est de déterminer si un nouveau record Vtiger plomb est créé lorsque l'agent est à la page vtiger_search et il n'est pas ont trouvé à l'appel le numéro de téléphone. La valeur par défaut est Y. + +
+
+
+ Vtiger Login Screen - Si Vtiger intégration est activé dans les paramètres de ce système de réglage de définir si l'utilisateur est connecté à l'interface Vtiger automatiquement lors de leur connexion à VICIDIAL. Le défaut est Y. L-option new_window ouvrira une nouvelle fenêtre lors de sa connexion à l-écran de l-agent VICIDIAL. + +
+
+
+ Vtiger état des appels - Si Vtiger intégration est activée dans les paramètres du système, puis utilisez ce paramètre pour définir si la situation du compte Vtiger sera mis à jour avec le statut de l-appel VICIDIAL après qu-il a été dispositioned. Par défaut est n. + +
+
+
+ CRM Popup Login - Si elle est égale à Y, le CRM Popup adresse est utilisée pour ouvrir une nouvelle fenêtre sur login agent pour cette campagne. Par défaut est n. + +
+
+
+ CRM Popup Adresse - L-adresse Web d-une page de connexion de CRM, il peut avoir des variables de population tout comme l-adresse sous forme d-enchaînement, avec la VaR à l-avant et à l-aide - Un user_custom_one - - B - de définir des variables. + +
+
+
+ Début de l-appel Web - Cette web adresse URL n-est pas perçu par l-agent, mais elle est appelée chaque fois qu-un appel est adressé à un agent si elle est peuplée. Utilise les mêmes variables que les champs de formulaire web et des scripts. Cette URL ne peut être un chemin relatif. L-URL de début ne fonctionne pas pour les appels cadran manuel. Par défaut est vide. + +
+
+
+ Dispo Call Web - Cette web adresse URL n-est pas perçu par l-agent, mais elle est appelée chaque fois qu-un appel est dispositioned par un mandataire si elle est peuplée. Utilise les mêmes variables que les champs de formulaire web et des scripts. DISPO et talk_time sont les variables que vous pouvez utiliser pour récupérer l-agent défini par la disposition de l-appel et le temps de parole effective en quelques secondes de l-appel. Cette URL ne peut être un chemin relatif. Par défaut est vide. + +
+
+
+ Groupe Alias Admis - Si vous souhaitez permettre à vos agents d'utiliser les alias de groupe, vous devez mettre à Y. alias Groupe sont expliqués plus en section administrative, ils permettent de sélectionner différents agents callerIDs manuel pour les appels sortants qu'ils mai place. La valeur par défaut est N. + +
+
+
+ Groupe par défaut Alias - Si vous avez permis à ce groupe Alias est l'alias du groupe qui est sélectionné en premier par défaut lorsque l'agent choisit d'utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide. + +
+
+
+ Agent Voir appels en attente - Si défini à autre chose mais aucun, les agents seront en mesure de voir des détails sur les appels qui sont en attente dans la file d-attente dans leur écran de l-agent. S-il est défini à une valeur numérique, les appels affiché sera limité au nombre sélectionné. Par défaut est AUCUN. + +
+
+
+ Voir les appels en attente de lancement - Ce paramètre s-il est réglé sur AUTO auront la demande, dans la file d-attente apparaissent cadre moment de la connexion par l-agent dans l-écran de l-agent. Par défaut est Manuel. + +
+
+
+ Agent Grab appels en attente - Cette option s-il est réglé sur Y permet à l-agent pour sélectionner l-appel qui veulent prendre de la demande, dans la file d-attente d-affichage en cliquant sur elle pendant la pause. Agents ne seront en mesure de saisir les appels entrants ou les appels transférés, les appels sortants pas. Par défaut est n. + +
+
+
+ Agent d-appel Re-Queue Button - Cette option s-il est réglé sur Y va ajouter un bouton Re-file d-attente des clients à l-écran de l-agent, permettant à l-agent d-envoyer l-appel dans une file d-attente AGENTDIRECT qui est réservé à l-agent seulement. Par défaut est n. + +
+
+
+ Agent Pause après chaque appel - Cette option s-il est réglé sur Y se mettra en pause l-agent après chaque appel automatiquement. Par défaut est n. + + + + + +



+ + VICIDIAL_LISTES TABLE

+
+
+ ID de la liste - C'est le nom numérique de la liste, il n'est pas éditable après la première validation, il ne doit contenir que des nombres et contenir entre 2 et 8 caractères. Must be a number greater than 100. + +
+
+
+ Nom de la liste - C'est la description de la liste, elle doit contenir entre 2 et 20 caractères. + +
+
+
+ Description de la liste - C'est un champ de note pour la liste, il est optionnel. + +
+
+
+ Dernier changement de la liste - C'est la dernière fois que les réglages de la liste ont été modifié. + +
+
+
+ Date du dernier appel de la liste - C'est la dernière fois qu'une fiche de cette liste a été appelée. + +
+
+
+ Campagne - C'est la campagne à laquelle cette liste appartient. Une liste ne peut etre appelée que depuis une seule campagne à la fois. + +
+
+
+ Active - Cela définie si la liste peut etre appelée ou non. + +
+
+
+ Réinisialiser le Lead-Called-Status pour cette liste - Cela réinitialise les fiches dans cette liste à N pour "not called since last reset" et signifie que n'importe quelle fiche peut maintenant être appelée si ce statut est défini dans l'écran de campagne. + +
+
+
+ Reset Times - Ce champ vous permet de mettre fois, séparées par un tiret, que cette liste sera automatiquement remis à zéro par le système. Les heures doivent être au format 24 heures sans ponctuation, par exemple 0800-1700 serait rétablir la liste à 8 h et 5pm tous les jours. Par défaut est vide. + +
+
+
+ Agent Script Override - Si ce champ est défini, ce sera le script que l-agent voit sur son écran au lieu du script campagne lorsque le plomb est de cette liste. Défaut n-est pas réglé. + +
+
+
+ Campagne CID Override - Si ce champ est définie, elle aura préséance sur la campagne CallerID qui est défini pour les appels qui sont placés devant une piste dans cette liste. Défaut n-est pas réglé. + +
+
+
+ Message de répondeur Override - Si ce champ est définie, elle aura préséance sur le message répondeur mis dans la campagne pour les clients de cette liste. Défaut n-est pas réglé. +
+
+
+ Drop Inbound Groupe Override - Si ce champ est défini, dans ce groupe seront utilisées pour les appels sortants de cette liste de cette goutte de la campagne à l-étranger au lieu de la baisse du groupe fixé dans l-écran de détail de la campagne. Défaut n-est pas réglé. + +
+
+
+ Xfer-Conf Nombre Override - Ces cinq domaines pour vous permettre d-emporter les préréglages numéro de la conférence de transfert lorsque le plomb est de cette liste. Par défaut est vide. + + +
+
+
+ DNC VICIDIAL List - Do Not Call Cette liste contient tous les conduire qui a été fixé à un statut de DCN dans le système. Dans les listes - ADD NOMBRE DE DNC page que vous êtes en mesure d'ajouter manuellement les numéros de cette liste afin de ne pas être appelé par des campagnes qui utilisent la liste interne DNC. Il ya aussi la possibilité d'ajouter conduit à la campagne des listes DNC et pour les campagnes qui ont les. Si vous avez l-option active DNC réglé sur AreaCode alors vous pouvez également utiliser les entrées génériques indicatif régional comme celui-ci 201XXXXXXX de bloquer tous les appels au 201 lorsque AreaCode permis. + + + +



+ + VICIDIAL_ENTRANT_GROUPS TABLE

+
+
+ ID du groupe - C'est le nom court du group entrant, il n'est pas éditable après la première initialisation, il doit contenir entre 2 est 20 caractères. + +
+
+
+ Nom du groupe - C'est la déscription du groupe, il doit contenir entre 2 et 30 caractères et ne doit pas contenir de tirets, de plus ou d'espaces . + +
+
+
+ Couleur du groupe C'est la couleur que est affichée dans l'application cliente VICIDIAL quand un appel arrive dans ce groupe. Il doit contenir entre 2 et 7 caractères. Si c'est une couleur en hexadecimal vous devez mettre un # au début de la chaîne de caractères ou VICIDIAL ne fonctionnera pas proprement. + +
+
+
+ Active - Cela détermine si ce groupe sera visible dans la boîte de sélection quand un agent se connecte à VICIDIAL. + +
+
+
+ Formulaire Web - C'est l'adresse personnalisée qui, en cliquant sur le boutton WEB FORM dans VICIDIAL, sera prise pour les appels qui arrivent dans ce groupe. + +
+
+
+ Appel de l'agent suivant - Cela determine quel agent recevra l'appel suivant quand c'est possible: +
  - random: ordonne par la valeur aléatoire de mise à jour dans la table vicidial_live_agents +
  - oldest_call_start: ordonne par la dernière date à laquelle un agent a passé un appel. Résultats des agents recevant globalement un nombre à peu près identique d'appels . +
  - oldest_call_finish: ordonne suivant la dernière date à laquelle un agent a terminé un appel. L'agent AKA attendant le plus longtemps reçoit le premier appel. +
  - overall_user_level: ordonne par le user_level de l'agent comme défini dans la table vicidial_users, un user_level plus élévé recevra plus d'appels. +
  - inbound_group_rank : ordres par le rang donné à l'agent pour legroupe d'arrivée spécifique. Le plus haut à le plus bas. +
  - fewest_calls : ordres par le nombre d'appels reçus par un agent pource groupe d'arrivée spécifique. Moindres appels d'abord. +
  - campaign_rank : ordres par le rang donné à l'agent pour la campagne.Le plus haut à le plus bas. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: commandes par la quantité de temps d-attente agent a été activement pour un appel. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Affichage de l'enseigne -<\/B> Ce champ détermine si l'agent VICIDIAL sortant doit avoir l'enseigne - si il y en a une - affichée dans le champ Statut quand l'appel est passé à l'agent. + +
+
+
+ Script campagne ->/B> Ce menu vous permet de choisir le script qui apparaîtra sur l'écran des agents pour cette campagne. Mettez NONE pour ne pas montrer de script pour cette campagne. + +
+
+
+ Consigne de lancement d'appel - Ce menu vous permet de choisir si vous voulez lancer automatiquement la page de web-form dans une fenêtre séparée, passer automatiquement sur l'onglet de script ou ne rien faire quand un appel est envoyé par un agent dans cette campagne. + +
+
+
+ Xfer-Conf DTMF - Ces quatre domaines pour vous permettre d-avoir deux ensembles de transfert de conférence et les préréglages DTMF. Lorsque l-appel ou de la campagne est chargé, le script vicidial.php montrera deux boutons sur le transfert-cadre de conférences et automatiquement le numéro à composer et envoyer les champs DTMF lorsqu-ils sont pressés. Si vous souhaitez autoriser consultatif transferts, un fronter à un proche, que l-agent utiliser la case à cocher consultatif, qui ne fonctionne pas pour les tiers VICIDIAL demande de consultation. Pour ceux qui viennent de l-agent, cliquez le bouton de cadran avec la clientèle. Alors l-agent pouvez aussi le laisser-3way-Call et passer à leur prochain appel. Si vous souhaitez autoriser les transferts aveugles de clients à un script AGI VICIDIAL l-exploitation forestière ou un SVI, puis AXFER lieu dans le numéro à composer sur le terrain. Vous pouvez également spécifier une extension personnalisée après la AXFER, par exemple si vous voulez faire un appel vers un IVR spéciaux que vous avez défini à l-extension 83900 vous mettriez AXFER83900 dans le numéro à composer sur le terrain. + +
+
+
+ Minuterie d-action - Cette fonctionnalité vous permet de déclencher des actions après un certain laps de temps. D1 et D2 options DIAL va lancer un appel à la presets Transfer Conference Nombre et les envoyer à la session d-agent, ce n-est généralement utilisé pour les applications IVR AGI simple validation ou tout simplement pour jouer un message pré-enregistré. WebForm ouvrira l-adresse formulaire web. MESSAGE_ONLY va simplement afficher le message qui est dans le champ ci-dessous. AUCUNE désactive cette fonctionnalité et la valeur par défaut. Ce paramètre remplace les paramètres de campagne. + +
+
+
+ Minuterie d-action Message - Tel est le message qui s-affiche sur l-écran de l-agent au moment de l-action Timer est déclenché. + +
+
+
+ Minuterie d-action Seconds - Il s-agit de la quantité de temps après l-appel est connecté au client que l-action Timer est déclenchée. Par défaut est -1, qui est aussi inactive. + +
+
+
+ Temps avant abandon de l'appel - Le nombre de secondes d'un appel restera dans la file d'attente avant d'être considéré comme un DROP. + +
+
+
+ Drop Action - Ce menu vous permet de choisir ce qui se passe à un appel quand il a attendu plus longtemps que ce qui est prévu dans le Temps avant abandon de l'appel domaine. Hangup simplement raccrocher l'appel, envoyer le message de l'appel Drop EXTEN que vous avez définies ci-après, à la messagerie vocale vous envoyer l'appel à la boîte vocale que vous avez définis ci-dessous et IN_GROUP envoie l'appel à la Inbound groupe qui est défini ci-dessous. + +
+
+
+ Drop EXTEN - Si l'action est goutte d'MESSAGE, c'est le cadran plan d'extension que l'appel sera envoyée si elle parvient à Temps avant abandon de l'appel. + +
+
+
+ Boîte vocale - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+

Drop de transfert Group - Si Drop action est fixée à IN_GROUP, l'appel sera envoyé à ce groupe d'arrivée si elle parvient Temps avant abandon de l'appel.
-
+
- Autoriser la connection aux distributeurs de fiches vides - Si défini à Y, autorise les agents à se connecter à la campagne même si il n'y a pas de fiches chargées dans le distributeur pour cette campagne. Cette fonction est nécessaire pour les campagne de type CLOSER. La valeur par défaut est N. + Temps d'appel - c'est l'arrangement de temps d'appel à employer pource groupe d'arrivée. Maintenez dans l'esprit que le temps est basésur le temps de serveur. Le défaut est 24hours.
-
+
- Mélange d'ordre de liste - dépasse les champs d'ordre de fil et destatut de cadran. Emploiera les paramètres de liste et de statut pourl'entrée choisie de mélange de liste dans la section de sous-marinde mélange de liste à la place. Le défaut est HANDICAPÉ. + Après les heures d'ouverture d'action - L'action à effectuer si c'est après les heures de travail tels que définis dans le temps de l'arrivée pour ce groupe. Hangup hangup immédiatement à l'appel, MESSASGE va jouer le fichier dans le message après les heures de Filenam domaine, EXTENSION envoie l'appel à la fois la durée d'extension de la dialplan et de la messagerie vocale vous envoyer l'appel à la boîte vocale figurant dans la boîte vocale après les heures de domaine , IN_GROUP enverra l'appel à l'arrivée du groupe sélectionné dans le groupe après les heures de sélectionner la liste de transfert. La valeur par défaut est MESSAGE.
-
+
- Identification de mélange de liste - identification du mélange deliste. Doit être de 2-20 caractères de longueur sans les espaces outoute autre ponctuation spéciale. + Après nom de fichier de message d'heures - le dossier audio localisésur le serveur à jouer si l'action est placée au MESSAGE. Le défautest VM-AU revoir
-
+
- Nom de mélange de liste - nom descriptif du mélange de liste. Doitêtre de 2-50 caractères de longueur. + Après prolongation d'heures - la prolongation dialplan pour envoyerl'appel si l'action est placée à la PROLONGATION. Le défaut est8300.
-
+
- Détail de mélange de liste - la composition de l'entrée de mélangede liste. Contient l'identification de liste, l'ordre de mélange, lespourcentages et les statuts qui composent ce mélange de liste. Lespourcentages toujours doivent additionner jusqu'à 100, et toutes leslistes doivent être en activité et réglées à la campagne pour quel'entrée de mélange d'ordre soit activée. + Après des heures Boîte vocale - la boîte de voicemail pour envoyerl'appel si l'action est placée à VOICEMAIL.
-
+
- Méthode de mélange de liste - la méthode de mélanger toutes lesparties du détail de mélange de liste ensemble. EVEN_MIX mélangerades fils de chaque partie intercalée aux autres parties, comme ces1.2.3.1.2.3.1.2.3. IN_ORDER mettra les fils dans l'ordre dans lequelils sont énumérés dans l'écran 1.1.1.2.2.2.3.3.3 de détail demélange de liste. La volonté ALÉATOIRE les a mis dans l'ordreALÉATOIRE 1.3.2.1.1.3.2.1.3. Le défaut est IN_ORDER. + Après les heures d'ouverture de transfert Group - Si l'action Après les heures d'ouverture est fixée à IN_GROUP, l'appel sera envoyé à cette arrivée du groupe si celui-ci entre dans le groupe en dehors de l'appel de temps défini pour le régime de groupe.
-
+
- Agent Screen Extended Alt Dial - Cette fonction permet aux agents d'accéder à des numéros de téléphone suppléant étendue des pistes au-delà de l'Alt Address3 de téléphone et les champs qui peuvent être utilisés dans VICIDIAL de numéros de téléphone au-delà du numéro de téléphone principal. L'étendue des numéros de téléphone peut être composé automatiquement en utilisant la fonction Auto-Alt-Dial VICIDIAL dans les paramètres de campagne, mais l'activation de cette fonctionnalité, agent d'écran permettra également l'agent d'appeler ces numéros à partir de l'écran de leur mandataire, ainsi que de modifier leurs informations. + Agents n Queueing - Si ce champ est réglé sur Y ou NO_PAUSED alors aucun appel ne sera mis dans la file d-attente pour cet en-groupe, si il n-ya pas d-agents connectés et les appels ira à l-agent Non Non action Queue. L-option NO_PAUSED enverra également pas les appelants en file d-attente s-il ya seulement une pause des agents dans l-en-groupe. Par défaut est n.
-
+
- Première Enquête Audio File - Il s'agit du nom de fichier audio qui se joue dès que le client choisit le téléphone lors de l'exécution d'une étude campagne. + Non Non Queue action de l-agent - Si aucun agent Aucune file d-attente est activé, ce champ définit l-endroit où l-appel sera acheminé en l-absence des agents dans l-en-groupe. Par défaut est le message, celui-ci joue les fichiers audio dans le champ Valeur d-action, puis raccroche.
-
+
- Enquête DTMF Digits - Ce domaine est l'endroit où vous définissez les chiffres que le client peut presse comme une option sur une campagne de sondage. valable chiffres DTMF sont0123456789*# + Non Non Queue action de l-agent Valeur - C-est la valeur pour l-action ci-dessus. Par défaut est nbdy-avail-to-take-call|vm-goodbye.
-
+
- Enquête Non Intéressé Digit - Ce domaine est l'endroit où vous définissez le client pressé chiffres qui montrent qu'ils ne sont pas intéressés. + Nom de fichier bienvenu de message - le dossier audio localisé sur leserveur à jouer quand l'appel entre. Si ensemble à ---NONE --- alorsaucun message ne sera joué. Le défaut est ---NONE ---. Ce domaine, comme avec les autres champs audio en groupes, à l-exception du nom de fichier d-alerte agent, peut avoir plusieurs fichiers audio joué seulement si vous mettez un tuyau d-une liste séparée par des fichiers audio dans le domaine.
-
+
- Enquête Non Intéressé Etat - Ce domaine est l'endroit où vous choisissez le statut d'être utilisé pour pas intéressé. S'il est utilisé DNC et la campagne est défini pour utiliser DNC ensuite le numéro de téléphone sera automatiquement ajouté à la liste DNC VICIDIAL interne.et, éventuellement, la campagne de la liste des DNC. + Message de bienvenue Play - Ces réglages choisir le moment de jouer le message de bienvenue défini, TOUJOURS jouera à chaque fois, JAMAIS il ne pourra jamais jouer, IF_WAIT_ONLY seulement jouer le message de bienvenue si l'appel n'est pas immédiatement à un agent , et YES_UNLESS_NODELAY toujours jouer le message de bienvenue NO_DELAY à moins que le paramètre est activé. La valeur par défaut est TOUJOURS.
-
+
- Enquête sur Opt-in Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a opté dans l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à optout. Après ce fichier audio est joué, le sondage de l'action ne soit prise. + Musique sur le contexte de prise - la musique sur le contexte de prisepour employer quand le client est placé sur la prise. Le défaut estdéfaut.
-
+
- Enquête Non Intéressé Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a choisi de l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à OptIn. Après ce fichier audio est joué, l'appel sera suspendu jusqu'à. + Sur le nom de fichier de message de sollicitation de prise - ledossier audio localisé sur le serveur à jouer à un intervallerégulier quand le client est sur la prise. Le défaut estgeneric_hold. Ce dossier audio DOIT être de 9 secondes ou moins dansla longueur.
-
+
- Enquête sur la méthode - Cette option permet de définir ce qui se passe à un appel après que le client a opté en. AGENT_XFER enverra l'appel à la prochaine agent. MESSAGERIE VOCALE envoie l'appel à la boîte vocale qui est spécifié dans la boîte vocale domaine. EXTENSION envoie le client à l'extension définie dans le Enquête Xfer Extension domaine. Hangup se raccrocher le client. CAMPREC_60_WAV enverra au client d'avoir un enregistrement réalisé avec leur réponse, cet enregistrement sera placé dans un dossier nommé comme la campagne de l'intérieur de l'Enquête sur la campagne d'enregistrement Directory. + Sur l'intervalle de message de sollicitation de prise - la durée ensecondes d'attendre avant de jouer dessus le message de sollicitationde tenir. Le défaut est 60. Pour désactiver l'invite en attente, réglez l'intervalle de 0.
-
+
- Etude de non-réponse de l'action - C'est là que vous définissez ce qui se passera s'il n'y a pas de réponse à la question de sondage. OptIn ne envoyer l'appel à la méthode d'enquête, si le client en pressant une chiffres DTMF. OptOut envoie le client sur la méthode d'enquête, même si elles ne sont pas sur un chiffre DTMF. + Jouer en ligne Place - Cela définit si l'appelant entendra leur place dans la ligne quand ils entrent dans la file d'attente, ainsi que quand ils entendent le announcemend. La valeur par défaut est N.
-
+
- Enquête Réponse Digit Map - Il s'agit de la section où vous pouvez définir une description pour aller avec chaque option DTMF chiffres que le client mai sélectionner. + Hold estimée Play Time - Cela définit si l'appelant entend tenir les prévisions de temps avant qu'ils ne soient transférés à un agent. La valeur par défaut est N. Si le client est en attente et entend ce message d-estime détenir le temps, le temps minimum qui sera jouée est de 15 secondes.
-
+
- Enquête Xfer Extension - Si la méthode d'enquête de l'extension est sélectionné, le client appel sera dirigé vers cette extension dialplan. + Hold Time Option - Cela vous permet de spécifier le routage de l'appel, si les prévisions de tenir le temps est sur le montant de la seconde précisés ci-dessous. La valeur par défaut est NON.
-
+
- Enquête sur la campagne d'enregistrement - Annuaire Si la méthode d'enquête de CAMPREC_60_WAV est sélectionné, le service à la clientèle sera enregistré et placé dans un répertoire nommé d'après la campagne de l'intérieur de ce répertoire. + Hold Time Option secondes - Si Hold Time Option est fixé à rien, mais AUCUNE, c'est le nombre de secondes de l'estimation du temps que vous maintenez le déclencheur tenir option. La valeur par défaut est 360 secondes. - +
+
+
+ Hold Time Option Extension - Si Hold Time Option est fixé à l'extension, c'est l'extension dialplan que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. -
-
-
-Appel de l'agent suivant - Cela determine quel agent recevra l'appel suivant quand c'est possible: -
  - random: ordonne par la valeur aléatoire de mise à jour dans la table vicidial_live_agents -
  - oldest_call_start: ordonne par la dernière date à laquelle un agent a passé un appel. Résultats des agents recevant globalement un nombre à peu près identique d'appels . -
  - oldest_call_finish: ordonne suivant la dernière date à laquelle un agent a terminé un appel. L'agent AKA attendant le plus longtemps reçoit le premier appel. -
  - overall_user_level: ordonne par le user_level de l'agent comme défini dans la table vicidial_users, un user_level plus élévé recevra plus d'appels. -
  - campaign_rank : ordres par le rang donné à l'agent pour la campagne.Le plus haut à le plus bas. -
  - fewest_calls : ordres par le nombre d'appels reçus par un agent pource groupe d'arrivée spécifique. Moindres appels d'abord. +
+
+
+ Hold Time Option Boîte vocale - Si Hold Time Option est fixé à la boîte vocale, il s'agit de la boîte vocale que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. -
-
-
-Temps d'appel local -<\/B> C'est ici que vous indiquez pendant quelles heures vous voulez appeler, comme déterminé par l'heure locale dans la région dans laquelle vous voulez appeler. C'est controlé par le code de la région et est ajusté pendant le temps des Daylight Savings si c'est approprié. Les habitudes générales aux Etat-Unis, de Buisness à Buisness, sont de 9h00 à 17h00 et de Buisness à particulier de 9h00 à 21h00. +
+
+
+ Hold Time Option de transfert In-Group - Si Hold Time Option est fixé à IN_GROUP, c'est l'arrivée du groupe que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. -
-
-
-Préfixe d'appel - Ce champ autorise plus facilement à changer un chemin d'appel vers l'exterieur à travers une méthode differente sans devoir recharger Asterisk. La valeur par défaut 9 est basée sur 91NXXNXXXXXX dans le dial plan du fichier extensions.conf . +
+
+
+ Hold Time Option Callback Filename - Si Hold Time Option est fixé à CALLERID_CALLBACK, cette invite est le nom du fichier qui se joue avant l'appel est enregistré comme un nouveau chef de file de la liste ID spécifiées ci-dessous si l'estimation est supérieure à la fois tenir Hold Time Option Seconds. -
-
-
-Omettre le Phone Code - Ce champ permet de ne pas utiliser le champ phone_code lors d'appels passés depuis VICIDIAL. Par exemple si vous appelez de France vers la France vous devriez avoir 33 dans le champ phone_code de chaque fiche, mais vous voulez utiliser 10 chiffres dans le dial plan extensions.conf au lieu de 33 puis 10 chiffres. La valeur par défaut est N. +
+
+
+ Hold Time Option Rappel Liste ID - Si Hold Time Option est fixé à CALLERID_CALLBACK, il s'agit de la liste de ID de l'appel est ajouté à un nouveau chef de file, si les prévisions de tenir le temps dépasse le Hold Time Option Seconds. -
-
-
-CallerID de la campagne - Ce champ autorise à envoyer un numéro de callerId personnalisé sur les appels sortants. C'est le numéro de callerId que vous voullez montrer à la personne que vous appellez. La valeur par défaut est UNKNOW. Si vous utilisez des T1 ou E1s pour appeler vers l'extérieur cette option est seulement valable si vous utilisez des PRIs - ISDN T1s ou E1s - qui ont la fonction CallerId personnalisable activée, cela ne fonctionne pas avec le service Robbed-bit et les circuits -RBS-. Cela fonctionne aussi avec la plupart des fournisseurs VOIP -SIP ou trunks IAX- qui autorisent un callerId de sortie dynamique. Le callerID personnalisé ne s'applique qu'aux appels passés directement depuis la campagne VICIDIAL, n'importe quel appel avec une tierce personne ou transféré n'enverra pas le callerId personnalisé. NOTE: Parfois en mettant UNKWOWN ou PRIVATE dans ce champ c'est le callerId par défaut de votre ligne qui sera transmis pour les appels. Vous pouvez tester cela et mettre 0000000000 à la place dans le champs calleID si vous ne voulez pas envoyer votre CallerID. +
+
+
+ Agent d-alerte Filename - Le fichier audio à lire à un agent d-annoncer qu-un appel arrive à l-agent. Pour ne pas utiliser cette fonction pour définir cette valeur par défaut est X. Ding. -
-
-
-Extention d'enregistrement - Ce champs autorise à avoir une extension personnalisée d'enregistrement pour l'utiliser avec VICIDIAL. Cela autorise à utiliser différentes extensions selon le temps maximum d'enregistrement que vous voulez autoriser et le type de codec que vous voulez utiliser. L'exten par defaut est 8309 qui, si vous avez suivi les exemples de la SCRATCH_INSTALL, enregistrera dans le format WAV jusqu'à une heure. Une autre option incluse dans les exemples est 8310 qui enregistrera dans le format GSM jusqu'à une heure. +
+
+
+ L'alerte d'agent Retardent - la durée en millisecondesd'attendre avant d'envoyer l'appel à l'agent après avoir jouédessus la prolongation alerte d'agent. Le défaut est 1000. -
-
-
-Enregistrement de la campagne - Ce menu permet de choisir le niveau d'enregistrement autorisé pour cette campagne. NEVER désactive l'enregistrement sur l'application client. ONDEMAND est la valeur par défaut et permet à l'agent de démarrer et arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrement pour tous les appels passés vers un agent. ALLFORCE démarrera l'enregistrement à chaque appel passés vers un agent sans donné la possibilité à l'agent de stopper l'enregistrement. Pour ALLCALLS et ALLFORCE il y a une option pour utiliser un délai d'enregistrement afin de réduire les enregistrements et la charge système. +
+
+
+ Groupe de transfert de défaut - ce champ est le Dans-Groupe dedéfaut qui sera automatiquement choisi quand l'agent va à l'armaturede transférer-conférence dans leur interface d'agent. -
-
-
-Nom du fichier d'enregistrement de la campagne - Ce champs vous permet de personnaliser le nom de fichier pour l'enregistrement quand l'enregistrement de la campage est sur ONEDEMAND ou ALLCALLS. Les variables autorisées sont CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par defaut est FULLDATE_AGENT et le nom du fichier ressemblerait à ceci : 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE ce qui ressemblerait à ceci : TESTCAMP_51020103108_3125551212 . 50 char max. +
+
+
+ En groupe enregistrement Override - Ce champ permet d'primordial de la campagne d'appel enregistrement. Ce réglage peut être modifié par l'enregistrement de l'emporter sur la mise en vicidial_user. HANDICAPES ne remplacent pas la campagne de l'enregistrement programmé. JAMAIS désactive l'enregistrement sur le client. OnDemand est l'option par défaut et permet à l'agent de début et de fin d'enregistrement en tant que de besoin. ALLCALLS va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent. ALLFORCE va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent qui l'agent aucune option pour arrêter l'enregistrement. -
-
-
-Délai d'enregistrement - Uniquement pour les enregistrements ALLCALLS et ALLFORCE. Cette valeur est le nombre de secondes après lesquelles commence l'enregistrement des appels. La valeur par défaut est 0. +
+
+
+ En groupe d'enregistrement du fichier - Ce champ peut passer outre à la campagne d'enregistrement nommage des fichiers système, sauf si elle est définie à AUCUNE. Les variables sont autorisés CAMPAGNE CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par défaut est FULLDATE_AGENT et se présente comme suit 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE qui se présente comme suit TESTCAMP_51020103108_3125551212. 50 char max. La valeur par défaut est NON. -
-
-
-Script campagne ->/B> Ce menu vous permet de choisir le script qui apparaîtra sur l'écran des agents pour cette campagne. Mettez NONE pour ne pas montrer de script pour cette campagne. + 0) + { + ?> +
+
+
+ QC Activé - Mise en ce domaine permet à Y pour l'agent de contrôle de la qualité caractéristiques au travail. La valeur par défaut est N. -
-
-
-Consigne de lancement d'appel - Ce menu vous permet de choisir si vous voulez lancer automatiquement la page de web-form dans une fenêtre séparée, passer automatiquement sur l'onglet de script ou ne rien faire quand un appel est envoyé par un agent dans cette campagne. +
+
+
+ Statuts QC - Cette zone est l'endroit où vous choisissez ce qui entraîne des statuts doit être dépassé par le système de QC. Placez un contrôle à côté de l'état que vous voulez examiner QC. -
-
-
-DTMF pour le transfert de conférence -<\/B> Ces quatre champs vous permettent de définir deux préselection DTMF pour les transferts de conférences. Quand l'appel ou la campagne est chargée, le script vicidial.php montrera deux boutons dans la fenêtre transfert-conference et remplira automatiquement les champs numéro-à-appeler et envoyer-dtmf quand ils sont pressés. Si vous voulez autoriser les transferts de consultation, de fronter à closer, vous pouvez placer CXFER comme une des préselection du nombre-à-appeler et la chaîne d'appel approprié sera envoyé pour faire un tranfert de consultation locale, puis l'agent peu juste quitter l'appel à 3 ou continuer sur l'appel suivant. Si vous voulez autoriser les transferts à l'aveugle d'un client vers un script AGI VICIDIAL pour le log ou un IRV, placez AXFER dans le champ numéro-à-appeler. Vous pouvez aussi specifier une extention personnalisée après AXFER ou CXFER, par exemple si vous voulez faire un transfert de consultation interne à la place d'un local vous devriez mettre CXFER90009 dans le champ numéro à appelé. +
+
+
+ QC Shift - Il s'agit du changement de calendrier servant à tirer d'un QC inbound_group. Les jours de la semaine sont ignorées pour ces fonctions. -
-
-
-Rappels programmés - Cette option autorise un agent à statuer un appel comme CALLBK et à choisir une date et une heure à laquelle la fiche sera réactivée. +
+
+
+ Record QC Get lancement Cela permet à l'une des actions suivantes peut être déclenché sur un agent QC recevoir un nouveau record. -
-
-
-Temps de conclusion -<\/B> Nombre de secondes pendant lesquelles l'agent est forcé à attendre avant de pouvoir recevoir ou passer un nouvel appel. Le timer commence dès que l'agent à raccrocher - ou dans le cas de l'appel du numéro alternatif quand l'agent à terminer la fiche - La valeur par défaut est 0. Si le timer se termine avant que l'agent n'ait statué l'appel, l'agent ne passera pas à l'appel suivant tant qu'il n'a pas sélectionné un statut. +
+
+
+ QC Voir Recording - qui permet un enregistrement qui mai être liée à la QC record à afficher dans le QC agent écran. -
-
-
-Message de conclusion -<\/B> C'est un message spécifique à la campagne à afficher si le temps de conclusion est défini. +
+
+
+ QC WebForm Adresse - Il s'agit de l'adresse du site web d'un agent QC pouvez aller à en cliquant sur le lien dans la WebForm QC écran. -
-
-
-Utiliser la liste DNC interne - Cela défini si cette campagne doit filter les fiches par rapport à la liste DNC. Si ce champ est à Y alors le distributeur de fiches recherchera chaque numéro de téléphone dans la liste DNC avant de la placer dans le distributeur de fiches. Si il est dans la liste DNC alors le statut de la fiche sera changer en DNCL, il ne pour donc pas être appelé. La valeur par défaut est N. - -
-
-
-Utilisez Campagne DNC List - Cela définit si cette campagne est de filtrer les mène à une liste DNC qui est spécifique à cette campagne seulement. Si elle est définie à Y, la trémie sera, pour chaque numéro de téléphone dans la campagne des DNC avant de le placer dans la trémie. Si elle est dans la campagne des DNC liste, il va changer le statut qui conduisent à DNCC il ne peut donc pas être composé. La valeur par défaut est N. - -
-
-
-Groupes entrants autorisés - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. - -
-
-
-Activer les codes de la pause des agents - Autorise les agents à sélectionner un code de pause quand il clique sur le bouton PAUSE dans vicidial.php. Les codes de pause sont définissable par campagne dans le bas de la vue détaillée de la campagne et sont stockés dans la table vicidial_agent_log. La valeur par défaut est N. Force va forcer les agents à choisir un code PAUSE si elles cliquez sur le bouton PAUSE. - -
-
-
-Désactiver la modification des données du client - Si défini à Y alors les données de la fiche d'un client ne sont pas modifiées quand un agent passe l'appel. La valeur pas défaut est N. - -
-
-
-Désactiver Alter clientèle Téléphone - Si la valeur de Y, ne modifie pas le client numéro de téléphone lors d'un agent dispositions de l'appel. La valeur par défaut est Y. - -
-
-
-Agent Afficher Queue Count - Si la valeur de Y, lorsque le client est en attente d'un agent, la file d'attente de demande d'affichage en haut de l'agent de l'écran devient rouge et indique le nombre d'appels en attente. Le défaut est Y. - -
-
-
-Identification manuelle de liste de cadran - le list_id de défaut àemployer quand des placces d'un agent un appel manuel et un nouveaudisque de fil est créés dans le vicidial_list. Le défaut est 999.Ce champ peut contenir des chiffres seulement. - -
-
-
-Manuelle Filter - Cela vous permet de filtrer les appels que les agents font en mode manuel composer pour cette campagne par une combinaison des éléments suivants: DNC - à coup sur, CAMPAIGNLISTES - le nombre doit être dans les listes pour la campagne, AUCUN - pas de filtre sur le cadran ou manuel rapide composer des listes. - -
-
-
-Agent de presse-papiers de copie d'écran - Cette fonctionnalité est actuellement disponible que pour Internet Explorer. Cette fonctionnalité vous permet de sélectionner un domaine qui sera copiée dans le presse-papiers de l'ordinateur de l'agent sur l'ordinateur d'un appel d'être envoyées à un agent. Commune utilise pour cela sont pour faciliter le collage de numéros de compte ou des numéros de téléphone en héritage les applications client à l'agent d'ordinateur. - -
-
-
-3-Way Outbound Call CallerID - Cela définit ce qui est envoyé en tant que sortant CallerID nombre de 3-way appels effectués par l'agent, la campagne utilise la campagne personnalisée CallerID, client utilise le numéro de client qui est actif sur les agents de l'écran et utilise les CallerID AGENT_PHONE le téléphone pour que l'agent est entré dans. AGENT_CHOOSE permet de choisir l'agent qui CallerID à utiliser pour les 3-way appels à partir d'une liste de choix. - -
-
-
-3-Way Call Préfixe de numérotation - Cela définit ce qui est utilisé comme préfixe pour les 3-way appels, par défaut est vide de sorte que la campagne de préfixe est utilisé, passthru afin que vous puissiez entendre sonner est de 88. - - 0) - { +
+
+
+ Script QC - C'est le script qui peut être utilisé par les agents QC SCRIPT dans l'onglet de la QC écran. + -
-
-
- QC Activé - Mise en ce domaine permet à Y pour l'agent de contrôle de la qualité caractéristiques au travail. La valeur par défaut est N.
-
+
- Statuts QC - Cette zone est l'endroit où vous choisissez ce qui entraîne des statuts doit être dépassé par le système de QC. Placez un contrôle à côté de l'état que vous voulez examiner QC. + Hold Recall transfert In-Group - Si un client demande à ce groupe en plus d'une fois et cela n'est pas mis à AUCUNE, puis l'appel sera automatiquement envoyé à l'En-groupe sélectionné dans ce domaine . La valeur par défaut est NON.
-
+
- QC Shift - Il s'agit du changement de calendrier utilisé pour tirer QC pour une campagne. Les jours de la semaine sont ignorées pour ces fonctions. + Appel Route n ° Delay - Mettre ce paramètre à Y va effacer tous les temps d'attente et audio et de tenter d'envoyer l'appel droit à un agent. T-elle pas sur le message d'accueil ou en attente rapide des paramètres. La valeur par défaut est N.
-
+
- Record QC Get lancement Cela permet à l'une des actions suivantes peut être déclenché sur un agent QC recevoir un nouveau record. + Stats Pourcentage des appels dans les X secondes - Ce domaine vous permet de définir le nombre de secondes que le tenir en temps réel des statistiques d'affichage à utiliser pour calculer le pourcentage d'appels qui ont répondu ont répondu dans X le nombre de secondes en attente.
-
+
- QC Voir Recording - qui permet un enregistrement qui mai être liée à la QC record à afficher dans le QC agent écran. + Début de l-appel Web - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank.
-
+
- QC WebForm Adresse - Il s'agit de l'adresse du site web d'un agent QC pouvez aller à en cliquant sur le lien dans la WebForm QC écran. + Dispo Call Web - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank.
-
+
- Script QC - C'est le script qui peut être utilisé par les agents QC SCRIPT dans l'onglet de la QC écran. - - -
-
-
-Recherche Catégorie Vtiger - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre lorsque l'vtiger_search.php page de recherche pour le numéro de téléphone qui a été entré. Il ya 4 options qui peuvent être utilisés dans ce domaine: LEAD-Cette option de recherche par le biais du conduit Vtiger seulement, COMPTE-Cette option de recherche par le biais du Vtiger comptes et tous les contacts et les sous-contacts pour le numéro de téléphone, VENDOR-Cette option ne recherche que par l'intermédiaire du Vtiger fournisseurs, ACCTID-Cette option ne fonctionne que pour les comptes et il prendra les VICIDIAL vendor_lead_code terrain et essayer de chercher le numéro de compte Vtiger. En cas d'échec, il va essayer d'autres méthodes que la liste que vous avez sélectionné. Plusieurs options peuvent être utilisées pour chaque recherche, mais sur de grandes bases de données ce n'est pas recommandé. La valeur par défaut est LEAD. - -
-
-
-Vtiger Créer Call Record - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre est de savoir si un nouveau record d'activité Vtiger est créé pour l'appel lorsque l'agent est à la vtiger_search page. La valeur par défaut est Y. - -
-
-
-Vtiger Créer Lead Record - Si Vtiger intégration est activé dans les paramètres système et Vtiger LEAD Recherche Catégorie comprend alors ce paramètre est de déterminer si un nouveau record Vtiger plomb est créé lorsque l'agent est à la page vtiger_search et il n'est pas ont trouvé à l'appel le numéro de téléphone. La valeur par défaut est Y. - -
-
-
-Vtiger Login Screen - Si Vtiger intégration est activé dans les paramètres de ce système de réglage de définir si l'utilisateur est connecté à l'interface Vtiger automatiquement lors de leur connexion à VICIDIAL. Le défaut est Y. - -
-
-
-Groupe Alias Admis - Si vous souhaitez permettre à vos agents d'utiliser les alias de groupe, vous devez mettre à Y. alias Groupe sont expliqués plus en section administrative, ils permettent de sélectionner différents agents callerIDs manuel pour les appels sortants qu'ils mai place. La valeur par défaut est N. - -
-
-
-Groupe par défaut Alias - Si vous avez permis à ce groupe Alias est l'alias du groupe qui est sélectionné en premier par défaut lorsque l'agent choisit d'utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide. - - - - - -



- -VICIDIAL_LISTES TABLE

-
-
-ID de la liste - C'est le nom numérique de la liste, il n'est pas éditable après la première validation, il ne doit contenir que des nombres et contenir entre 2 et 8 caractères. Must be a number greater than 100. - -
-
-
-Nom de la liste - C'est la description de la liste, elle doit contenir entre 2 et 20 caractères. - -
-
-
-Description de la liste - C'est un champ de note pour la liste, il est optionnel. - -
-
-
-Dernier changement de la liste - C'est la dernière fois que les réglages de la liste ont été modifié. - -
-
-
-Date du dernier appel de la liste - C'est la dernière fois qu'une fiche de cette liste a été appelée. - -
-
-
-Campagne - C'est la campagne à laquelle cette liste appartient. Une liste ne peut etre appelée que depuis une seule campagne à la fois. - -
-
-
-Active - Cela définie si la liste peut etre appelée ou non. - -
-
-
-Réinisialiser le Lead-Called-Status pour cette liste - Cela réinitialise les fiches dans cette liste à N pour "not called since last reset" et signifie que n'importe quelle fiche peut maintenant être appelée si ce statut est défini dans l'écran de campagne. - -
-
-
-DNC VICIDIAL List - Do Not Call Cette liste contient tous les conduire qui a été fixé à un statut de DCN dans le système. Dans les listes - ADD NOMBRE DE DNC page que vous êtes en mesure d'ajouter manuellement les numéros de cette liste afin de ne pas être appelé par des campagnes qui utilisent la liste interne DNC. Il ya aussi la possibilité d'ajouter conduit à la campagne des listes DNC et pour les campagnes qui ont les. - - - -



- -VICIDIAL_ENTRANT_GROUPS TABLE

-
-
-ID du groupe - C'est le nom court du group entrant, il n'est pas éditable après la première initialisation, il doit contenir entre 2 est 20 caractères. - -
-
-
-Nom du groupe - C'est la déscription du groupe, il doit contenir entre 2 et 30 caractères et ne doit pas contenir de tirets, de plus ou d'espaces . - -
-
-
-Couleur du groupe C'est la couleur que est affichée dans l'application cliente VICIDIAL quand un appel arrive dans ce groupe. Il doit contenir entre 2 et 7 caractères. Si c'est une couleur en hexadecimal vous devez mettre un # au début de la chaîne de caractères ou VICIDIAL ne fonctionnera pas proprement. - -
-
-
-Active - Cela détermine si ce groupe sera visible dans la boîte de sélection quand un agent se connecte à VICIDIAL. - -
-
-
-Formulaire Web - C'est l'adresse personnalisée qui, en cliquant sur le boutton WEB FORM dans VICIDIAL, sera prise pour les appels qui arrivent dans ce groupe. - -
-
-
-Appel de l'agent suivant - Cela determine quel agent recevra l'appel suivant quand c'est possible: -
  - random: ordonne par la valeur aléatoire de mise à jour dans la table vicidial_live_agents -
  - oldest_call_start: ordonne par la dernière date à laquelle un agent a passé un appel. Résultats des agents recevant globalement un nombre à peu près identique d'appels . -
  - oldest_call_finish: ordonne suivant la dernière date à laquelle un agent a terminé un appel. L'agent AKA attendant le plus longtemps reçoit le premier appel. -
  - overall_user_level: ordonne par le user_level de l'agent comme défini dans la table vicidial_users, un user_level plus élévé recevra plus d'appels. -
  - inbound_group_rank : ordres par le rang donné à l'agent pour legroupe d'arrivée spécifique. Le plus haut à le plus bas. -
  - fewest_calls : ordres par le nombre d'appels reçus par un agent pource groupe d'arrivée spécifique. Moindres appels d'abord. -
  - campaign_rank : ordres par le rang donné à l'agent pour la campagne.Le plus haut à le plus bas. -
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. -
- -
-
-
-Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. - -
-
-Affichage de l'enseigne -<\/B> Ce champ détermine si l'agent VICIDIAL sortant doit avoir l'enseigne - si il y en a une - affichée dans le champ Statut quand l'appel est passé à l'agent. - -
-
-
-Script campagne ->/B> Ce menu vous permet de choisir le script qui apparaîtra sur l'écran des agents pour cette campagne. Mettez NONE pour ne pas montrer de script pour cette campagne. - -
-
-
-Consigne de lancement d'appel - Ce menu vous permet de choisir si vous voulez lancer automatiquement la page de web-form dans une fenêtre séparée, passer automatiquement sur l'onglet de script ou ne rien faire quand un appel est envoyé par un agent dans cette campagne. - -
-
-
-DTMF pour le transfert de conférence -<\/B> Ces quatre champs vous permettent de définir deux préselection DTMF pour les transferts de conférences. Quand l'appel ou la campagne est chargée, le script vicidial.php montrera deux boutons dans la fenêtre transfert-conference et remplira automatiquement les champs numéro-à-appeler et envoyer-dtmf quand ils sont pressés. Si vous voulez autoriser les transferts de consultation, de fronter à closer, vous pouvez placer CXFER comme une des préselection du nombre-à-appeler et la chaîne d'appel approprié sera envoyé pour faire un tranfert de consultation locale, puis l'agent peu juste quitter l'appel à 3 ou continuer sur l'appel suivant. Si vous voulez autoriser les transferts à l'aveugle d'un client vers un script AGI VICIDIAL pour le log ou un IRV, placez AXFER dans le champ numéro-à-appeler. Vous pouvez aussi specifier une extention personnalisée après AXFER ou CXFER, par exemple si vous voulez faire un transfert de consultation interne à la place d'un local vous devriez mettre CXFER90009 dans le champ numéro à appelé. - -
-
-
-Temps avant abandon de l'appel - Le nombre de secondes d'un appel restera dans la file d'attente avant d'être considéré comme un DROP. - -
-
-
-Drop Action - Ce menu vous permet de choisir ce qui se passe à un appel quand il a attendu plus longtemps que ce qui est prévu dans le Temps avant abandon de l'appel domaine. Hangup simplement raccrocher l'appel, envoyer le message de l'appel Drop EXTEN que vous avez définies ci-après, à la messagerie vocale vous envoyer l'appel à la boîte vocale que vous avez définis ci-dessous et IN_GROUP envoie l'appel à la Inbound groupe qui est défini ci-dessous. - -
-
-
-Drop EXTEN - Si l'action est goutte d'MESSAGE, c'est le cadran plan d'extension que l'appel sera envoyée si elle parvient à Temps avant abandon de l'appel. - -
-
-
-Boîte vocale - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. - -
-
-
-Drop de transfert Group - Si Drop action est fixée à IN_GROUP, l'appel sera envoyé à ce groupe d'arrivée si elle parvient Temps avant abandon de l'appel. - -
-
-
-Temps d'appel - c'est l'arrangement de temps d'appel à employer pource groupe d'arrivée. Maintenez dans l'esprit que le temps est basésur le temps de serveur. Le défaut est 24hours. - -
-
-
-Après les heures d'ouverture d'action - L'action à effectuer si c'est après les heures de travail tels que définis dans le temps de l'arrivée pour ce groupe. Hangup hangup immédiatement à l'appel, MESSASGE va jouer le fichier dans le message après les heures de Filenam domaine, EXTENSION envoie l'appel à la fois la durée d'extension de la dialplan et de la messagerie vocale vous envoyer l'appel à la boîte vocale figurant dans la boîte vocale après les heures de domaine , IN_GROUP enverra l'appel à l'arrivée du groupe sélectionné dans le groupe après les heures de sélectionner la liste de transfert. La valeur par défaut est MESSAGE. - -
-
-
-Après nom de fichier de message d'heures - le dossier audio localisésur le serveur à jouer si l'action est placée au MESSAGE. Le défautest VM-AU revoir - -
-
-
-Après prolongation d'heures - la prolongation dialplan pour envoyerl'appel si l'action est placée à la PROLONGATION. Le défaut est8300. - -
-
-
-Après des heures Boîte vocale - la boîte de voicemail pour envoyerl'appel si l'action est placée à VOICEMAIL. - -
-
-
-Après les heures d'ouverture de transfert Group - Si l'action Après les heures d'ouverture est fixée à IN_GROUP, l'appel sera envoyé à cette arrivée du groupe si celui-ci entre dans le groupe en dehors de l'appel de temps défini pour le régime de groupe. - -
-
-
-Nom de fichier bienvenu de message - le dossier audio localisé sur leserveur à jouer quand l'appel entre. Si ensemble à ---NONE --- alorsaucun message ne sera joué. Le défaut est ---NONE --- - -
-
-
-Message de bienvenue Play - Ces réglages choisir le moment de jouer le message de bienvenue défini, TOUJOURS jouera à chaque fois, JAMAIS il ne pourra jamais jouer, IF_WAIT_ONLY seulement jouer le message de bienvenue si l'appel n'est pas immédiatement à un agent , et YES_UNLESS_NODELAY toujours jouer le message de bienvenue NO_DELAY à moins que le paramètre est activé. La valeur par défaut est TOUJOURS. - -
-
-
-Musique sur le contexte de prise - la musique sur le contexte de prisepour employer quand le client est placé sur la prise. Le défaut estdéfaut. - -
-
-
-Sur le nom de fichier de message de sollicitation de prise - ledossier audio localisé sur le serveur à jouer à un intervallerégulier quand le client est sur la prise. Le défaut estgeneric_hold. Ce dossier audio DOIT être de 9 secondes ou moins dansla longueur. - -
-
-
-Sur l'intervalle de message de sollicitation de prise - la durée ensecondes d'attendre avant de jouer dessus le message de sollicitationde tenir. Le défaut est 60. Pour désactiver l'invite en attente, réglez l'intervalle de 0. - -
-
-
-Jouer en ligne Place - Cela définit si l'appelant entendra leur place dans la ligne quand ils entrent dans la file d'attente, ainsi que quand ils entendent le announcemend. La valeur par défaut est N. - -
-
-
-Hold estimée Play Time - Cela définit si l'appelant entend tenir les prévisions de temps avant qu'ils ne soient transférés à un agent. La valeur par défaut est N. - -
-
-
-Hold Time Option - Cela vous permet de spécifier le routage de l'appel, si les prévisions de tenir le temps est sur le montant de la seconde précisés ci-dessous. La valeur par défaut est NON. - -
-
-
-Hold Time Option secondes - Si Hold Time Option est fixé à rien, mais AUCUNE, c'est le nombre de secondes de l'estimation du temps que vous maintenez le déclencheur tenir option. La valeur par défaut est 360 secondes. - -
-
-
-Hold Time Option Extension - Si Hold Time Option est fixé à l'extension, c'est l'extension dialplan que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. - -
-
-
-Hold Time Option Boîte vocale - Si Hold Time Option est fixé à la boîte vocale, il s'agit de la boîte vocale que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. - -
-
-
-Hold Time Option de transfert In-Group - Si Hold Time Option est fixé à IN_GROUP, c'est l'arrivée du groupe que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. - -
-
-
-Hold Time Option Callback Filename - Si Hold Time Option est fixé à CALLERID_CALLBACK, cette invite est le nom du fichier qui se joue avant l'appel est enregistré comme un nouveau chef de file de la liste ID spécifiées ci-dessous si l'estimation est supérieure à la fois tenir Hold Time Option Seconds. - -
-
-
-Hold Time Option Rappel Liste ID - Si Hold Time Option est fixé à CALLERID_CALLBACK, il s'agit de la liste de ID de l'appel est ajouté à un nouveau chef de file, si les prévisions de tenir le temps dépasse le Hold Time Option Seconds. - -
-
-
-Prolongation alerte d'agent - la prolongation à envoyer dans lasession d'agent pour annoncer qu'un appel vient à l'agent. Cetteprolongation devrait avoir un playback d'un dossier audio. Ne pasemployer cette fonction a placé ceci à X. Default est X. - -
-
-
-L'alerte d'agent Retardent - la durée en millisecondesd'attendre avant d'envoyer l'appel à l'agent après avoir jouédessus la prolongation alerte d'agent. Le défaut est 1000. - -
-
-
-Groupe de transfert de défaut - ce champ est le Dans-Groupe dedéfaut qui sera automatiquement choisi quand l'agent va à l'armaturede transférer-conférence dans leur interface d'agent. - -
-
-
-En groupe enregistrement Override - Ce champ permet d'primordial de la campagne d'appel enregistrement. Ce réglage peut être modifié par l'enregistrement de l'emporter sur la mise en vicidial_user. HANDICAPES ne remplacent pas la campagne de l'enregistrement programmé. JAMAIS désactive l'enregistrement sur le client. OnDemand est l'option par défaut et permet à l'agent de début et de fin d'enregistrement en tant que de besoin. ALLCALLS va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent. ALLFORCE va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent qui l'agent aucune option pour arrêter l'enregistrement. - -
-
-
-En groupe d'enregistrement du fichier - Ce champ peut passer outre à la campagne d'enregistrement nommage des fichiers système, sauf si elle est définie à AUCUNE. Les variables sont autorisés CAMPAGNE CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par défaut est FULLDATE_AGENT et se présente comme suit 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE qui se présente comme suit TESTCAMP_51020103108_3125551212. 50 char max. La valeur par défaut est NON. - - 0) - { - ?> -
-
-
- QC Activé - Mise en ce domaine permet à Y pour l'agent de contrôle de la qualité caractéristiques au travail. La valeur par défaut est N. - -
-
-
- Statuts QC - Cette zone est l'endroit où vous choisissez ce qui entraîne des statuts doit être dépassé par le système de QC. Placez un contrôle à côté de l'état que vous voulez examiner QC. - -
-
-
- QC Shift - Il s'agit du changement de calendrier servant à tirer d'un QC inbound_group. Les jours de la semaine sont ignorées pour ces fonctions. - -
-
-
- Record QC Get lancement Cela permet à l'une des actions suivantes peut être déclenché sur un agent QC recevoir un nouveau record. - -
-
-
- QC Voir Recording - qui permet un enregistrement qui mai être liée à la QC record à afficher dans le QC agent écran. - -
-
-
- QC WebForm Adresse - Il s'agit de l'adresse du site web d'un agent QC pouvez aller à en cliquant sur le lien dans la WebForm QC écran. - -
-
-
- Script QC - C'est le script qui peut être utilisé par les agents QC SCRIPT dans l'onglet de la QC écran. - - -
-
-
-Hold Recall transfert In-Group - Si un client demande à ce groupe en plus d'une fois et cela n'est pas mis à AUCUNE, puis l'appel sera automatiquement envoyé à l'En-groupe sélectionné dans ce domaine . La valeur par défaut est NON. - -
-
-
-Appel Route n ° Delay - Mettre ce paramètre à Y va effacer tous les temps d'attente et audio et de tenter d'envoyer l'appel droit à un agent. T-elle pas sur le message d'accueil ou en attente rapide des paramètres. La valeur par défaut est N. - -
-
-
-Stats Pourcentage des appels dans les X secondes - Ce domaine vous permet de définir le nombre de secondes que le tenir en temps réel des statistiques d'affichage à utiliser pour calculer le pourcentage d'appels qui ont répondu ont répondu dans X le nombre de secondes en attente. - -
-
-
-Groupe par défaut Alias - Si vous avez permis à Groupe Alias pour la campagne que l'agent est entré dans ce groupe est l'alias qui est sélectionnée par défaut sur la première d'un appel provenant de l'arrivée de ce groupe quand l'agent choisit de utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide. - - - - - -



- -VICIDIAL_ENTRANT_DIDS TABLE

-
-
-
-DID Extension - C'est le nombre, d'extension ou de DID qui déclenchent cette entrée et que vous la route à l'intérieur du système en utilisant cette fonction. Il est réservé par défaut DID que vous pouvez utiliser ce qui est juste le mot-par défaut, sans les tirets, qui allos d'envoyer tout appel qui ne correspond pas à tout les autres modèles de la valeur par défaut de DID. - -
-
-
-Description DID - Il s'agit de la description de l'entrée de routage DID. - -
-
-
-DID Active - C'est le domaine où vous définissez la DID à l'entrée active ou non. La valeur par défaut est Y. - -
-
-
-Route DID - Ce type de route que vous avez mis le DID à utiliser. EXTEN va envoyer des appels à l'extension en dessous, à la messagerie vocale vous envoyer des appels directement à la boîte vocale en dessous, AGENT envoie les appels vers un agent VICIDIAL s'ils sont identifiés, PHONE enverra l'appel d'un téléphone d'entrée, sélectionnez ci-dessous, vous IN_GROUP envoyer des appels directement à l'arrivée du groupe spécifié. La valeur par défaut est EXTEN. - -
-
-
-Extension - Si EXTEN est sélectionné en tant que DID route, alors c'est le dialplan extension qui appelle sera envoyée. La valeur par défaut est 9998811112, pas de service. - -
-
-
-Extension Contexte - Si EXTEN est sélectionné en tant que DID route, alors c'est le contexte qui dialplan demande sera envoyée. Par défaut est la valeur par défaut. - -
-
-
-Boite vocale - Si messagerie vocale est sélectionné en tant que DID Route, c'est la boîte vocale qui demande sera envoyée. La valeur par défaut est vide. - -
-
-
-Téléphone Extension - si le téléphone est sélectionné comme DID Route, cette extension est le téléphone que les appels seront envoyées. - -
-
-
-Téléphone IP du serveur - si le téléphone est sélectionné comme DID route, alors c'est l'IP du serveur pour le téléphone d'extension que les appels seront envoyés à. - -
-
-
-Utilisateur Agent - si l'agent est sélectionné en tant que DID route, alors c'est le VICIDIAL l'agent qui demande sera envoyée à. - -
-
-
-Utilisateur Unavailable Action - si l'agent est sélectionné en tant que DID route, et l'utilisateur n'est pas connecté ou disponible, c'est la route que les appels se. - -
-
-
-Utilisateur Settings En Route-Group - si l'agent est sélectionné en tant que DID route, alors c'est le groupe In-qui sera utilisé pour la file d'attente de paramètres que l'appelant est en attente d'être envoyé à l'agent. La valeur par défaut est AGENTDIRECT. - -
-
-
-In-Groupe ID - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le groupe qui en demande sera envoyée à. - -
-
-
-In-Call Groupe Handle Method - Si IN_GROUP est sélectionné en tant que DID route, alors c'est la méthode de traitement des appels de ces appels. Base de données ajouter un nouveau record à conduire tous les appels à l'aide du CallerID comme le numéro de téléphone, CIDLOOKUP vais essayer de rechercher le numéro de téléphone par le CallerID dans l'ensemble du système, CIDLOOKUPRL sera attampt pour rechercher le numéro de téléphone par le CallerID précisé que dans une seule liste , CIDLOOKUPRC sera attampt de rechercher le numéro de téléphone par le CallerID dans l'ensemble des listes qui font partie de la campagne spécifié, plus proche est indiquée pour VICIDIAL Closer appels, ANI va ajouter un nouveau record à conduire tous les appels à l'aide du ANI que le numéro de téléphone, ANILOOKUP va tenter de rechercher le numéro de téléphone de l'ANI dans l'ensemble du système, ANILOOKUPRL sera attampt de rechercher le numéro de téléphone par l'ANI précisé que dans une seule liste, XDIGITID amènera l'appelant pour un X chiffres avant que l'appel sera mis en la file d'attente. La valeur par défaut est BDCE. - -
-
-
-In-Groupe Agent Méthode de recherche - Si IN_GROUP est sélectionné en tant que DID route, alors c'est l'agent de recherche à la méthode de l'arrivée du groupe, LO est à équilibrage de charge-débordement et d'essayer d'envoyer l'appel à un agent sur le serveur local avant d'essayer de l'envoyer à un agent sur un autre serveur, LB est à équilibrage de charge et de tenter d'envoyer l'appel à l'agent, quel que soit elles sont sur le serveur, le serveur SO est seulement et que d'essayer d'envoyer des appels vers les agents sur le serveur que l'appel est venu dans le. La valeur par défaut est LB. - -
-
-
-Dans la liste Groupe ID - Si IN_GROUP est sélectionné en tant que DID Route, c'est la liste qui mène mai ID être recherchées à travers et que le conduit sera inséré dans le cas échéant. - -
-
-
-En-groupe ID de la campagne - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le ID de la campagne que mène mai être recherchée dans le cas de la méthode est de faire appel CIDLOOKUPRC. - -
-
-
-En-groupe Téléphone Code - Si IN_GROUP est sélectionné en tant que DID route, alors ce téléphone est le code utilisé si un nouveau chef de file est créé. - - - - -



- -VICIDIAL_REMOTE_AGENTS TABLE

-
-
-ID utilisateur de départ - C'est l'ID utilisateur de départ qui est utilisé quand un entrée d'agent distant est inserée dans le système. Si le nombre de lignes est plus grand que 1, ce nombre est incrementé de un pour chaque ligne qui a une entrée. Assurez vous d'avoir créer un nouveau compte utilisateur VICIDIAL avec un niveau de 4 ou plus si vous voulez qu'il puisse utiliser la page vdremote.php pour pour un accès web distant pour ce compte. - -
-
-
-Numéro de lignes - Cela définie combien d'entrées d'agent distants le système crée, et détermine combien de lignes peuvent être envoyées sans soucis au numéro ci-dessus. - -
-
-
-IP du serveur - Une entrée d'agent distant est seulement valide pour un serveur spécifique, c'est ici que vous sélectionnez quel serveur vous voulez. - -
-
-
-Extension externe - C'est le numéro vers lequel vous voulez faire suivre l'appel. Assurez vous que c'est un numéro du dial plan et si vous avez besoin d'un 9 au début mettez le ici. Testez en appelant ce numéro depuis un téléphone du système. - -
-
-
-Etat - C'est ici que vous activez ou desacivez l'agent distant. Dès que l'agent est actif le systeme permet que des appels puissent lui être envoyés. Cela peu prendre plus de 30 secondes à partir du moment où vous avez desactivé l'agent jusqu'à l'arrêt de la réception des appels. - -
-
-
-Campagne - C'est ici que vous choisissez la campagne dans laquelle ces agents distants ce connecteront. Les appels entrants ont besoin d'une campagne de type CLOSER et de selectionner les campagnes entrantes ci-dessus dans laquelle vous voulez recevoir des appels. - -
-
-
-Groupes entrants - C'est ici que vous selectionnez les groupes entrants depuis lesquels vous voulez recevoir des appels si vous avez selectionné une campagne de type CLOSER. - - -



- -VICIDIAL_CAMPAIGN_LISTES

-
-
-Les listes de cette campagne sont énumérées ici, leur activité est dénotée par le Y ou N et vous pouvez aller à l'écran de la liste en cliquant sur l'ID de la liste dans la première colonne. - - -



- -VICIDIAL_CAMPAIGN_STATUSES TABLE

-
-
-En utilisant des statuts de campagne personnalisés, vous pouvez utiliser des statuts qui n'existent que pour une campagne spécifique. Le statut doit contenir entre 1 et 8 caractères , la description entre 2 et 30 et Selectionnable définit si il apparaît dans VICIDIAL comme disposition. Human_answered le champ est employé en calculant le pourcentage debaisse, ou le taux d'abandon. L'arrangement human_answered à Yemploiera ce statut en comptant les appels humain-répondus. L'option de catégorie vous permet de grouper plusieurs statuts dansun catogy qui peut être employé pour l'analyse statistique. - - - - 0) - { - ?> -



- - VICIDIAL_CAMPAIGN_HOTKEYS TABLE

-
-
- En utilisant des raccourcis clavier personnalisés, les agents utilisant le client web VICIDIAL peuvent raccrocher et statuer les appels juste en pressant une seule touche du clavier. Il y a deux raccourcis claviers que vous pouvez utiliser en même temps que l'appel du numéro alternatif, ALTPH2 - Alternate Phone Hot Dial et ADDR3 - Adresse3 qui permet à un agent d'utiliser un raccourci pour raccocher l'appel, rester sur la fiche et appeler un autre numéro de la fiche. + Groupe par défaut Alias - Si vous avez permis à Groupe Alias pour la campagne que l'agent est entré dans ce groupe est l'alias qui est sélectionnée par défaut sur la première d'un appel provenant de l'arrivée de ce groupe quand l'agent choisit de utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide. @@ -3901,10 +4442,191 @@ if ($SSoutbound_autodial_active > 0)



- VICIDIAL_LEAD_RECYCLE TABLE

-
+ VICIDIAL_ENTRANT_DIDS TABLE


- Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. +
+
+ DID Extension - C'est le nombre, d'extension ou de DID qui déclenchent cette entrée et que vous la route à l'intérieur du système en utilisant cette fonction. Il est réservé par défaut DID que vous pouvez utiliser ce qui est juste le mot-par défaut, sans les tirets, qui allos d'envoyer tout appel qui ne correspond pas à tout les autres modèles de la valeur par défaut de DID. + +
+
+
+ Description DID - Il s'agit de la description de l'entrée de routage DID. + +
+
+
+ DID Active - C'est le domaine où vous définissez la DID à l'entrée active ou non. La valeur par défaut est Y. + +
+
+
+ Route DID - Ce type de route que vous avez mis le DID à utiliser. EXTEN va envoyer des appels à l'extension en dessous, à la messagerie vocale vous envoyer des appels directement à la boîte vocale en dessous, AGENT envoie les appels vers un agent VICIDIAL s'ils sont identifiés, PHONE enverra l'appel d'un téléphone d'entrée, sélectionnez ci-dessous, vous IN_GROUP envoyer des appels directement à l'arrivée du groupe spécifié. La valeur par défaut est EXTEN. CALLMENU allez envoyer l-appel vers le menu Appel définie. + +
+
+
+ Extension - Si EXTEN est sélectionné en tant que DID route, alors c'est le dialplan extension qui appelle sera envoyée. La valeur par défaut est 9998811112, pas de service. + +
+
+
+ Extension Contexte - Si EXTEN est sélectionné en tant que DID route, alors c'est le contexte qui dialplan demande sera envoyée. Par défaut est la valeur par défaut. + +
+
+
+ Boite vocale - Si messagerie vocale est sélectionné en tant que DID Route, c'est la boîte vocale qui demande sera envoyée. La valeur par défaut est vide. + +
+
+
+ Téléphone Extension - si le téléphone est sélectionné comme DID Route, cette extension est le téléphone que les appels seront envoyées. + +
+
+
+ Téléphone IP du serveur - si le téléphone est sélectionné comme DID route, alors c'est l'IP du serveur pour le téléphone d'extension que les appels seront envoyés à. + +
+
+
+ Appel du menu - Si CALLMENU est sélectionné comme la Route de DID, alors c-est le menu d-appel que les appels seront envoyés aux. + +
+
+
+ Utilisateur Agent - si l'agent est sélectionné en tant que DID route, alors c'est le VICIDIAL l'agent qui demande sera envoyée à. + +
+
+
+ Utilisateur Unavailable Action - si l'agent est sélectionné en tant que DID route, et l'utilisateur n'est pas connecté ou disponible, c'est la route que les appels se. + +
+
+
+ Utilisateur Settings En Route-Group - si l'agent est sélectionné en tant que DID route, alors c'est le groupe In-qui sera utilisé pour la file d'attente de paramètres que l'appelant est en attente d'être envoyé à l'agent. La valeur par défaut est AGENTDIRECT. + +
+
+
+ In-Groupe ID - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le groupe qui en demande sera envoyée à. + +
+
+
+ In-Group Call Handle Method - Si IN_GROUP est sélectionné comme la Route de DID, alors c-est la gestion des appels de méthode utilisée pour ces appels. CID va ajouter un enregistrement nouveau chef de file à chaque appel en utilisant le CallerID que le numéro de téléphone, CIDLOOKUP va tenter de rechercher le numéro de téléphone par le CallerID dans l-ensemble du système, CIDLOOKUPRL va tenter de rechercher le numéro de téléphone par le CallerID dans une seule liste spécifiée , CIDLOOKUPRC va tenter de rechercher le numéro de téléphone par le CallerID dans toutes les listes qui appartiennent à la campagne déterminée, CLOSER est spécifié pour VICIDIAL Closer appels, ANI ajouter un enregistrement nouveau chef de file à chaque appel en utilisant l-ANI que le numéro de téléphone, ANILOOKUP va tenter de rechercher le numéro de téléphone par l-ANI dans le système tout entier, ANILOOKUPRL va tenter de rechercher le numéro de téléphone par l-ANI dans une seule liste spécifiée, XDIGITID va demander à l-appelant d-un code à quatre chiffres X avant l-appel sera mis en la file d-attente, VIDPROMPT va demander à l-appelant pour leur numéro d-identification et permettra de créer un dossier avec le nouveau chef de file CallerID que le numéro de téléphone et l-identifiant comme l-ID du vendeur, VIDPROMPTLOOKUP va tenter de rechercher l-ID dans l-ensemble du système, VIDPROMPTLOOKUPRL va tenter de rechercher l-ID de fournisseur par l-ID dans une seule liste spécifiée, VIDPROMPTLOOKUPRC va tenter de rechercher l-ID de fournisseur par l-ID dans l-ensemble des listes qui appartiennent à la campagne spécifié. Par défaut est CID. + +
+
+
+ In-Groupe Agent Méthode de recherche - Si IN_GROUP est sélectionné en tant que DID route, alors c'est l'agent de recherche à la méthode de l'arrivée du groupe, LO est à équilibrage de charge-débordement et d'essayer d'envoyer l'appel à un agent sur le serveur local avant d'essayer de l'envoyer à un agent sur un autre serveur, LB est à équilibrage de charge et de tenter d'envoyer l'appel à l'agent, quel que soit elles sont sur le serveur, le serveur SO est seulement et que d'essayer d'envoyer des appels vers les agents sur le serveur que l'appel est venu dans le. La valeur par défaut est LB. + +
+
+
+ Dans la liste Groupe ID - Si IN_GROUP est sélectionné en tant que DID Route, c'est la liste qui mène mai ID être recherchées à travers et que le conduit sera inséré dans le cas échéant. + +
+
+
+ En-groupe ID de la campagne - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le ID de la campagne que mène mai être recherchée dans le cas de la méthode est de faire appel CIDLOOKUPRC. + +
+
+
+ En-groupe Téléphone Code - Si IN_GROUP est sélectionné en tant que DID route, alors ce téléphone est le code utilisé si un nouveau chef de file est créé. + + + + +



+ + VICIDIAL_CALL MENU TABLE

+
+
+ Menu ID - Ceci est l-ID pour cette étape du menu d-appel. Ce sera également visible selon le contexte qui est utilisée dans le plan de numérotation pour cet appel menu. + +
+
+
+ Nom du menu - Ce champ est le nom descriptif pour le menu d-appel. + +
+
+
+ Menu rapide - Ce champ contient le nom du fichier audio de l-invite à jouer au début de ce menu. Vous pouvez entrer propmts multiples dans ce domaine et invite les autres champs en les séparant par un caractère pipe. + +
+
+
+ Menu Timeout - Ce champ est l-endroit où vous définissez le délai en secondes que le menu va attendre que l-appelant à entrer dans un choix DTMF. Fixation de ce champ à zéro 0 signifie qu-il n-y aura pas de temps d-attente après le prompt est joué. + +
+
+
+ Menu prompt timeout - Ce champ contient le nom du fichier audio de l-invite à jouer lorsque le délai d-attente a été atteint. AUCUNE par défaut est de ne jouer aucune audio à temporisation. + +
+
+
+ Menu Blancs Prompt - Ce champ contient le nom du fichier audio de l-invite à jouer lorsque l-appelant a choisi une option non valide. AUCUNE par défaut est de ne jouer aucune audio à invalide. + +
+
+
+ Menu Répétez - Ce champ est l-endroit où vous définissez le nombre de fois que le menu sera joué après la première fois si aucun choix valide est faite par l-appelant. Par défaut est de 1 à répéter le menu une fois. + +
+
+
+ Menu Heure Départ - Ce champ est l-endroit où vous pouvez choisir de restreindre l-accès au menu d-appel des heures spécifiques mis en place à l-heure choisie Call. Si le temps d-appel est vide, ce paramètre sera ignoré. Par défaut est 0 pour les handicapés. + +
+
+
+ Identifiant de la période d'appels - C-est l-appel Heure ID qui sera utilisé pour restreindre fois appelant si le menu Heure option Vérifier est activée. + +
+
+
+ Le suivi des appels dans Real-Time Report - Ce champ est l-endroit où vous pouvez choisir si vous voulez l-appel à être suivis dans l-écran en temps réel comme un appel entrant RVI type. Par défaut est 1 pour actifs. + +
+
+
+ Groupe de suivi - Ceci est l-ID que vous pouvez utiliser pour suivre les appels vers ce menu d-appel lorsque l-on examine le Rapport IVR. La liste comprend CALLMENU par défaut ainsi que l-ensemble de l-En-Groupes. + +
+
+
+ Valeur d-option - Ce champ est l-endroit où vous définissez l-option de menu, les choix possibles sont: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Le timecheck option spéciale peut être utilisée que si vous avez menu Heure Départ activé et il ya un temps d-appel définis pour le menu. Pour supprimer une option, vient de mettre la route pour supprimer et l-option sera supprimée lorsque vous cliquez sur le bouton ENVOYER. + +
+
+
+ Option Description - Ce champ est l-endroit où vous pouvez décrire l-option, cette description sera mis dans le plan de numérotation en tant que commentaire dessus de l-option. + +
+
+
+ Option Itinéraire - Ce menu contient les options pour savoir où envoyer l-appel si cette option est sélectionnée: CALLMENU, endogroupe, DID, HANGUP, EXTENSION, téléphone. Pour CALLMENU, la valeur de marche doit être l-ID du menu d-appel que vous voulez que l-appel adressé à. Pour endogroupe, l-en-groupe que vous voulez que l-appel doit être envoyé aux besoins d-être sélectionnée ainsi que les 5 autres options qui restent à être mis à bien acheminer un appel à un groupe d-entrants. Pour DID, la valeur de route doit être le modèle de DID que vous voulez envoyer l-appel. Pour HANGUP, la valeur de la Route peut être le nom d-un fichier audio à jouer avant de raccrocher l-appel. Par extension, la qualité route doit être l-extension plan de numérotation que vous souhaitez envoyer l-appel à, et la route de valeur de contexte est le contexte que l-extension est situé dans, s-il est laissé en blanc le contexte par défaut par défaut. Pour le téléphone, la valeur de route doit être la valeur de connexion de téléphone pour les téléphones d-entrée que vous voulez envoyer l-appel. Pour la messagerie vocale, la Value itinéraire doit être le numéro de boîte vocale, le mesage non disponible sera joué. Pour AGI, la valeur de route doit être le script AGI et toutes les valeurs qui doivent être transmis à elle. + +
+
+
+ Valeur option Itinéraire - Ce champ est l-endroit où vous entrez la valeur qui désigne l-endroit du choisis option de route que l-appel doit être dirigé vers. + +
+
+
+ Option Itinéraire valeur de contexte - Ce champ est optionnel et utilisé uniquement pour l-option Itinéraires EXTENSION. + +
+
+
+ Custom Dilplan Entrée - Ce champ vous permet d-entrer dans tous les éléments de plan de numérotation que vous souhaitez pour le menu d-appel. @@ -3912,1127 +4634,1415 @@ if ($SSoutbound_autodial_active > 0)



- STATUTS VICIDIAL DE L'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF

-
+ VICIDIAL_REMOTE_AGENTS TABLE

+

- Si le champ Appel automatique du numéro alternatif est défini, alors les fiches diposées sous ces statuts d'appels automatiques du numéro alternatif auront leurs champs numéro alternatif et/ou adresse3 appelés après n'importe quel statut de non-réponse. - - - - - -



- -VICIDIAL CODES PAUSE DES AGENTS

-
-
-Si les codes de pause des agents sont activés alors les agents pourront en selectionner un parmi ces codes quand ils cliquent sur le bouton PAUSE. Cette donnée est ensuite stockée dans les log sur les agents vicidial. Un code de pause doit contenir uniquement des lettres et des chiffres et doit contenir moins de 7 caractères. Le nom du code ne doit pas contenir plus de 30 caractères. - - - - - -



- -VICIDIAL_USER_GROUPS TABLE

-
-
-Groupe d'utilisateurs - C'est le nom court d'un groupe d'utilisateurs Vicidial, n'utilisez ni espaces ni ponctuation pour ce champ. Max 20 caractère min 2. - -
-
-
-Nom du Groupe - C'est la description du groupe d'utilisateurs vicidial. Max 40 caractères. - -
-
-
-Force timeclock Login - Cette option vous permet de ne pas laisser un agent vous connecter à l'interface agent VICIDIAL si elles ne sont pas enregistrés dans le timeclock. La valeur par défaut est N. Il est possible d'exonérer les utilisateurs admin, le niveau 8 et 9. - -
-
-
-Shift exécution - Ce paramètre vous permet de restreindre l'agent de connexion sur la base des changements qui ont été sélectionnés ci-dessous. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est OFF. - -
-
-
-Groupe changements - Il s'agit d'un choix de la liste des changements qui peuvent restreindre l'accès des agents à temps sur le système. - -
-
-
-Campagnes autorisés - C'est une liste de campagnes dans lesquelles les utilisateurs de ce groupes pourront se connecter. L'option TOUTES LES CAMPAGNES autorise les utilisateurs de ce groupe à voir et se connecter à toutes les campagnes sur le système. - - 0) - { - ?> -
-
-
- QC permis Campagnes - Il s'agit d'un choix de la liste des campagnes où les membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-CAMPAGNES option permet aux utilisateurs de ce groupe de Québec une campagne sur le système. + ID utilisateur de départ - C'est l'ID utilisateur de départ qui est utilisé quand un entrée d'agent distant est inserée dans le système. Si le nombre de lignes est plus grand que 1, ce nombre est incrementé de un pour chaque ligne qui a une entrée. Assurez vous d'avoir créer un nouveau compte utilisateur VICIDIAL avec un niveau de 4 ou plus si vous voulez qu'il puisse utiliser la page vdremote.php pour pour un accès web distant pour ce compte.
-
+
- QC permis l'arrivée des groupes - Il s'agit d'un choix de la liste des groupes dont l'arrivée des membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-GROUPES option permet aux utilisateurs dans ce groupe d'utilisateurs QC arrivée du groupe sur tout le système. - + Numéro de lignes - Cela définie combien d'entrées d'agent distants le système crée, et détermine combien de lignes peuvent être envoyées sans soucis au numéro ci-dessus. + +
+
+
+ IP du serveur - Une entrée d'agent distant est seulement valide pour un serveur spécifique, c'est ici que vous sélectionnez quel serveur vous voulez. + +
+
+
+ Extension externe - C'est le numéro vers lequel vous voulez faire suivre l'appel. Assurez vous que c'est un numéro du dial plan et si vous avez besoin d'un 9 au début mettez le ici. Testez en appelant ce numéro depuis un téléphone du système. + +
+
+
+ Etat - C'est ici que vous activez ou desacivez l'agent distant. Dès que l'agent est actif le systeme permet que des appels puissent lui être envoyés. Cela peu prendre plus de 30 secondes à partir du moment où vous avez desactivé l'agent jusqu'à l'arrêt de la réception des appels. + +
+
+
+ Campagne - C'est ici que vous choisissez la campagne dans laquelle ces agents distants ce connecteront. Les appels entrants ont besoin d'une campagne de type CLOSER et de selectionner les campagnes entrantes ci-dessus dans laquelle vous voulez recevoir des appels. + +
+
+
+ Groupes entrants - C'est ici que vous selectionnez les groupes entrants depuis lesquels vous voulez recevoir des appels si vous avez selectionné une campagne de type CLOSER. - - -



- -VICIDIAL_SCRIPTS TABLE

-
-
-Id du script - C'est le nom court d'un Script Vicidal. Il doit être unique. Ne pas utiliser d'espace ni de ponctuation pour ce champ. Doit être composé de 2 à 10 caractères. - -
-
-Nom du ccript - C'est le titre du script Vicidial. C'est une courte description du script. Maximum 50 caractères, minimum 2. Il ne doit pas avoir d'espace ou de ponctuation de quelque sorte dans ce champ. - -
-
-Commentaires du script - C'est ici que vous entrez un commentaire pour le script Vicidial comme -changed to free upgrade on Sept 23- Max 255 caractères , min 2 caractères. - -
-
-Texte du script - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: - -
-<iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&phone=--A--phone--B--" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> -</iframe> -
- -
-
-
-Activé - Cela determine si ce script peut être selectionné pour être utilisé dans une campagne. - - - - - - 0) - { - ?>



- VICIDIAL_LEAD_FILTRES TABLE

-
+ VICIDIAL_CAMPAIGN_LISTES

+

- ID du Filtre - C'est le nom court du filtre de fiches Vicidial. Il doit être unique. N'utilisez ni espace ni ponctuation. Max 10 caractères min 2. + Les listes de cette campagne sont énumérées ici, leur activité est dénotée par le Y ou N et vous pouvez aller à l'écran de la liste en cliquant sur l'ID de la liste dans la première colonne. + +



+ + VICIDIAL_CAMPAIGN_STATUSES TABLE

+

-
- Nom du Filtre - C'est un nom plus descrtiptif du filtre. C'est un court resumé du filtre. Max 30 caractères Min 2. + En utilisant des statuts de campagne personnalisés, vous pouvez utiliser des statuts qui n'existent que pour une campagne spécifique. Le statut doit contenir entre 1 et 8 caractères , la description entre 2 et 30 et Selectionnable définit si il apparaît dans VICIDIAL comme disposition. Human_answered le champ est employé en calculant le pourcentage debaisse, ou le taux d'abandon. L'arrangement human_answered à Yemploiera ce statut en comptant les appels humain-répondus. L'option de catégorie vous permet de grouper plusieurs statuts dansun catogy qui peut être employé pour l'analyse statistique. -
-
- Commentaire du filtre - C'est ici que vous placez les commmentaire du filtre vicidial comme -Appel toutes les fiches de Californie- max 255 characters, min 2. -
-
- Filtre SQL - C'est ici que vous mettez le fragment de requête SQL que vous voulez utiliser pour filtrer. Ne commencez pas ni ne finissez pas par AND, cela est automatiquement ajouté par le script cron. Exemple : called_count > 4 and called_count < 8 . - + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS TABLE

+
+
+ En utilisant des raccourcis clavier personnalisés, les agents utilisant le client web VICIDIAL peuvent raccrocher et statuer les appels juste en pressant une seule touche du clavier. Il y a deux raccourcis claviers que vous pouvez utiliser en même temps que l'appel du numéro alternatif, ALTPH2 - Alternate Phone Hot Dial et ADDR3 - Adresse3 qui permet à un agent d'utiliser un raccourci pour raccocher l'appel, rester sur la fiche et appeler un autre numéro de la fiche. -



-VICIDIAL_PERIODES D'APPELS TABLE

-
-
-Identifiant de la période d'appel - C'est le nom court de la période d'appel de VICIDIAL. Il doit être unique. N'utilisez pas d'espace ou de ponctuation. 10 caractères maximum et 2 minimum. +



-
-
-Nom de la période d'appel - C'est un nom plus descriptif de la période d'appel. Une courte description. 30 caractères maximum et 2 minimum. - -
-
-Commentaires de la période d'appel - Vous pouvez y placer des commentaires sur la période d'appel de Vicidial comme-de 10h00 à 16h00 avec des restrictions-. Max 255 caractères. - -
-
-Heures de début et de fin par défaut - Ce sont les heures par défaut pendant lesquelles un appel est autorisé si l'heure de début de day-of-the-week n'est pas définie. 0 est minuit. Pour interdir complétement les appels mettez 2400 et mettez 2400 à l'heure de fin par défaut. Pour autoriser les appels 24h/24, remplissez les champs avec 0 pour le début et 2400 pour la fin. - -
-
-Heures de début et de fin pour un jour - Ce sont les heures de début et de fin personnalisés pour un jour. Les mêmes règles s'appliquent qu'aux heures de début et de fin par défaut. - -
-
-Définitions des états des périodes d'appel -<\/B> C'est la liste des définitions spécifiques des périodes d'appels des états qui sont suivies dans cette définition de période d'appels. - -
-
-State Call Time State -<\/B> Ce sont les deux lettres code pour l'état auquel cette définition de période d'appels correspond. Pour que cela prenne effet, la période d'appel locale qui est définie dans la campagne doit avoir cette enregistrement d'état de période d'appel aussi bien que toutes les fiches ayant ces deux lettre codes d'état. + VICIDIAL_LEAD_RECYCLE TABLE

+
+
+ Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. -



-VICIDIAL_SHIFTS TABLE

-
-
-Shift ID - Il s'agit du nom court d'un VICIDIAL Shift Définition. Cela doit être un identifiant unique. Ne pas utiliser les espaces ou la ponctuation dans ce champ. max 20 caractères, un minimum de 2 caractères. +



-
-
-Nom Shift - Il s'agit d'un nom descriptif de la Maj Définition. Ceci est un bref résumé de la définition Maj. max 50 caractères, un minimum de 2 caractères. + STATUTS VICIDIAL DE L'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF

+
+
+ Si le champ Appel automatique du numéro alternatif est défini, alors les fiches diposées sous ces statuts d'appels automatiques du numéro alternatif auront leurs champs numéro alternatif et/ou adresse3 appelés après n'importe quel statut de non-réponse. -
-
-Start Time Shift - Il est temps que la campagne commence à passer. Ne doivent être des chiffres, 9:30 AM serait 0930 et 5:00 PM serait 1700. - -
-
-Longueur Shift - Il est temps en heures et minutes que dure la campagne de changement. 8 heures seraient 08h00 et 7 heures et 30 minutes serait 07:30. - -
-
-Shift Weekdays - Dans cette section, vous devriez choisir le jour de la semaine que ce changement est active. - - - - 0) - { + + +



- FONCTIONNALITES DU CHARGEUR DE FICHES DE VICIDIAL

-
+ VICIDIAL CODES PAUSE DES AGENTS

+

- Le chargeur enchaînement-basé de base de fil de VICIDIAL est conçusimplement pour prendre un dossier de fil - jusqu'à 8MB dans lataille qu'est l'étiquette ou la pipe délimitée et pour le chargerdans la table de vicidial_list. Le chargeur de fil tient compte duchamp choisissant et de TXT- le texte tout simplement, les valeursséparées par virgule de CSV- et les XLS- excellent des formats dedossier. Le chargeur de fil ne fait pas la validation de données,mais elle vous permet de vérifier les reproductions en soi, dans lacampagne ou dans le système entier. En outre, assurez-vous que vousavez créé la liste que ces fils doivent être dessous de sorte quevous puissiez les employer. Voici une liste des champs dans leurcommande appropriée pour les dossiers de fil : -
    -
  1. Code vendeur de la fiche - montre dans le champ dID du vendeur de l'interface graphique -
  2. Code source - usage interne uniquement pour les administrateurs et les administrateurs de la base de données -
  3. Identifiant de la liste - le numéro de la liste dans laquelle seront ces fiches -
  4. Code du téléphone - le préfixe pour le numéro de téléphone - 1 pour les USA, 0144 pour le Royaume-Uni, 01161 pour l'Australie, etc -
  5. Numéro de téléphone - doit contenir au moins 8 chiffres -
  6. Titre - titre du client - Mr. Mme. Mlle., etc... -
  7. Nom -
  8. Initiales -
  9. Prénom -
  10. Adresse Ligne 1 -
  11. Adresse Ligne 2 -
  12. Adresse Ligne 3 -
  13. Ville -
  14. Etat - Limité à 2 caractères -
  15. Province -
  16. Code Postal -
  17. Pays -
  18. Sexe -
  19. Date de naissance -
  20. Numero de téléphone alternatif -
  21. Adresse mail -
  22. Phrase de sécurité -
  23. Commentaires -
+ Si les codes de pause des agents sont activés alors les agents pourront en selectionner un parmi ces codes quand ils cliquent sur le bouton PAUSE. Cette donnée est ensuite stockée dans les log sur les agents vicidial. Un code de pause doit contenir uniquement des lettres et des chiffres et doit contenir moins de 7 caractères. Le nom du code ne doit pas contenir plus de 30 caractères. -
NOTES : La fonctionnalité de chargeur de fil d'exceler est permisepar une série de manuscrits de Perl et doit avoir un dossier en placecorrectement configuré de /etc/astguiclient.conf sur le web server.En outre, des modules d'un Perl de couples doivent être chargés pourelle pour travailler aussi bien - oLE-Storage_Lite-Storage_Lite et leBilan-ParseExcel. Vous pouvez vérifier les erreurs d'exécution dansces derniers en regardant votre dossier d'error_log d'apache. Enoutre, pour des contrôles de duplication contre le gampaignénumère, la liste qui a de nouveaux fils entrer dans lui doit êtrecréée dans le système avant que vous commenciez à charger lesfils.



- - - - - -TABLE DES TELEPHONES

-
-
-Extension du téléphone - C'est dans ce champ qu'il faut mettre le nom du téléphone comme il apparait dans Asterisk sans mettre le protocole ou le slash du début. Par exemple: pour le téléphone SIP SIP/test101 l'extension sera test101. De même pour les téléphones IAX2 assurez vous d'utiliser le nom complet du téléphone : pour IAX2/IAXphone1@IAXphone1 ce sera IAXphone1@IAXphone1. Pour les téléphones ZAP assurez vous de mettre le channel complet: pour Zap/25-1 ce sera 25-1. De plus, assurez vous d'avoir mis le bon protocole en dessous pour votre téléphone. - -
-
-
-Numéro dans le Dial Plan - Ce champ est pour le numéro utilisé pour appeler ce téléphone. Ce numéro est défini dans le fichier extensions.conf du serveur Asterisk - -
-
-
-Boîte vocale - Ce champ est pour la boîte vocale vers laquelle iront les messages pour l'utilisateur de ce téléphone. Il est utilisé pour vérifier la présence de messages et pour permettre à l'utilisateur d'utiliser le bouton VOICEMAIL dans l'application astGUIclient. - -
-
-
-CallerID sortant - Ce champ est celui dans lequel vous entrez le numéro callerID que vous souhaitez voir apparaître lors d'appels externes passés depuis le client web astguiclient. Cela ne fonctionne pas avec RBS, non-PRI, T1/E1s. - -
-
-
-Adresse IP du téléphone - Ce champ est pour l'adresse IP du téléphone si c'est un téléphone VOIP. Ce champ est optionnel - -
-
-
-Adresse IP de l'ordinateur - Ce champ est pour l'adresse IP de l'ordinateur. C'est un champ optionel - -
-
-
-IP du serveur - Ce champ est celui où vous choisissez le serveur sur lequel est activé le téléphone. - -
-
-
-Login - login utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes. - -
-
-
-Mot de passe - Le mot de passe utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes. - -
-
-
-Statut - C'est le statut du téléphone dans le système, ACTIVE et ADMIN autorisent les clients graphiques à fonctionner. ADMIN autorise l'acces à l'administration de ce site. Tous les autres statuts n'autorisent pas l'accès aux clients graphiques ou à l'administration. - -
-
-
-Compte actif - Indique si le téléphone est actif pour le mettre dans la liste dans le client GUI. - -
-
-
-Type de téléphone - Seuelement pour les notes administratives. - -
-
-
-Nom complet - Utilisé par le client GUI dans la liste des téléphones actifs. - -
-
-
-Compagnie - Seulement pour les notes administratives. - -
-
-
-Image - Pas encore implémenté. - -
-
-
-Nouveaux messages - Nombre de nouveaux messages vocaux pour ce téléphone sur le serveur Asterisk. - -
-
-
-Anciens messages - Nombre d'anciens messages vocaux pour ce téléphone sur le serveur Asterisk. - -
-
-
-Protocole client - Le protocole que le téléphone utilise pour se connecter au serveur Asterisk: SIP, IAX2, Zap. Il y a également EXTERNAL pour les numéros distants et les numérotation rapide que vous voulez lister comme téléphone. - -
-
-
-GMT local - La différence entre l'heure de Greenwich, ou l'heure ZULU et le fuseau horaire du téléphone. NE PAS AJUSTER POUR LES DAYLIGHT SAVINGS TIME. Ceci est utilisé par les campagnes VICIDIAL pour afficher correctement l'heure et l'heure du client. - -
-
-
-Login du manager - C'est le login que les clients GUI de ce téléphones vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur. - -
-
-
-Mot de passe du manager - C'est le mot de passe que les clients GUI de ce téléphone vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur. - -
-
-
-Utilisateur par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ utilisateur de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. - -
-
-
-Mot de passe par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ mot de passe de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. - -
-
-
-Campagne par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ campagne de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. - -
-
-
-Exten de mise en attente - C'est l'exten par défaut utilisé pour la mise en attente dans l'application client. Verifiez qu'il fonctionne avant de le changer. - -
-
-
-Exten pour mise en attente de la conférence - C'est l'exten par défaut utilisé pour la mise en attente de la conférence dans l'appilcation client. Verifiez qu'il autre fonctionne avant de le changer. - -
-
-
-Exten de mise en attente VICIDIAL - C'est l'exten par defaut utilisé pour la mise en attente pour l'appilcation cliente VICIDIAL. Avant de changer ce champ verifiez que le nouveau fonctionne. - -
-
-
-Fichier du parc VICIDIAL - C'est le nom du fichier par defaut pour la mise en attente de VICIDIAL. Avant de le changer verifiez que le nouveau fonctionne. Limité a 10 caractères. - -
-
-
-Prefix de Moniteur - C'est le prefix du monitoring des Channels Zap automatiquement contenu dans l'appication astguiclient. Ne changez qu'en accord avec les enregistrement des extensions ZapBarge. - -
-
-
-Exten d'enregistrement - C'est l'extension dans le dial plan pour l'enregistrement utilisé pour enregistrer les conférences. C'est habituellement stoppé au bout d'une heure. Verifiez le fichier extentions.conf avant tout changement. - -
-
-
-Exten principal pour VMAIL - C'est l'extension du dial plan utilisé pour verifier la boîte vocale. Verifiez le fichier extensions.conf avant tout changement. - -
-
-
-VMAIL Dump Exten - C'est le préfix du dial plan utilisé pour lancer des appels directement vers la boite vocale de l'utilisateur depuis un un appelen cours dans l'application astGUIclient app. Avant tout changement verifiez le fichier extensions.conf. - -
-
-
-Extension du contexte - C'est le contexte du dial plan que les téléphones utilisent principalement. Ce qui suppose que tous les numéros appelés par l'application cliente sont accessibles depuis ce contexte, assurez vous donc que ce contexte soit le plus large possible. Verifiez le fichier extension.conf avant toutes modifications. - -
-
-
-Cannal d'envoi de DTMF - C'est le channel utilisé pour envoyer les sons DTMF dans les conférences meetme depuis l'application cliente. Verifiez le fichier extentions.conf avant tout changement. - -
-
-
-Groupe d'appel sortant -<\/B> C'est le groupe de canal hors duquel seront placés les appels passés depuis ce téléphone. Il y a des routines dans l'application cliente qui l'utilisent. Pour les cannal Zap vous devriez utiliser quelque chose comme Zap/g2, pour les trunks IAX vous devriez utiliser un préfixe entier IAX comme IAX2/VICItet1:secret@10.10.10.15:4569. Vérifiez les trunks dans le fichier extensions.conf, il est courant que vous avez défini comme variable globale TRUNK au début du fichier. - -
-
-
-Emplacement du Navigateur - C'est le chemin absolu pour le navigateur Mozilla ou firefox, ceci n'est applicable que pour les clients UNIX/LINUX. Vérifiez en le lançant manuellement. - -
-
-
-Répertoire d'installation - C'est l'endroit où astGUIclient et les scripts astVICUDUAL sont installés sur la machine. Pour Win32 cela doit être quelque chose comme C:\\AST_VICI and for UNIX cela doit être quelque chose comme /usr/local/perl_TK. Vérifiez cela manuellement. - -
-
-
-URL du CallerID - C'est l'adresse web de la page utilisée pour faire une verification personnalisée du CallerId. L'adresse des test par defaut est : http://astguiclient.sf.net/test_callerid_output.php - -
-
-
-URL par defaut de VICIDIAL - C'est l'adresse web de la page utilisée pour faire des requêtes Web VICIDIAL personnalisées. L'adresse par defaut est: http://astguiclient.sf.net/test_VICIDIAL_output.php - -
-
-
-Log des appels - Mettez à true si le fichier call_log.agi est placé dans le fichier extension.conf pour tout les appels sortants ainsi que l'extension de racrochage 'h' pour logger tout les appels. Il devrait toujours être à 1 car cela est nécessaire pour que certaines des fonctionnalités d'astGUIclient et de VICIDIAL fonctionnent proprement. - -
-
-
-Changement d'utilisateur - Mettez à true pour autoriser un utilisateur à changer pour un autre compte utilisateur. NOTE: Si l'utilisateur commute, il peut initier l'enregistrement sur la nouvelle conversation téléphonique du nouvel utilisateur - -
-
-
-En conférence - Mettez à true pour autoriser un utilisateur a démarrer une conférence avec plus de 6 lignes externs. - -
-
-
-Racrochage administateur- Mettre à true pour autoriser l'utilisateur à racrocher n'importe quelle ligne à travers astGUIclient. C'est une bonne idée de l'activer pour les administarteurs. - -
-
-
-Détournement adminisrateur -<\/B> Mettre à true pour autoriser l'utilisateur à pouvoir intercepter et rediriger vers son extention n'importe quelle ligne à travers Astguiclient. C'est une bonne idée de l'activer pour les administrateurs. Mais c'est aussi très utile pour les managers. - -
-
-
-Moniteur adminisrateur - Mettre à true pour autoriser l'utilisateur à intercepter et rediriger vers son extension certaines lignes à partir de astGUIclient. C'est une bonne idée de l'activer pour les adiministrateurs. Mais c'est aussi très utile pour les managers et comme outil d'entrainement. - -
-
-
-Parc d'appels -<\/B> Mettez à true pour autoriser l'utilisateur à parquer des appels dans astGUIclient pour être pris par n'importe quel utilisateur astGUIcient sur le système. Les appels sont mis en attente jusqu'à 30 minutes puis sont raccrochés. Habituellement activé pour tous. - -
-
-
-Vérification de mise à jour - Mettre à true pour afficher une popup avertissant que le temps de mise à jour n'a pas changé en 20 secondes. Utile pour les administrateurs. - -
-
-
-Log des AF - Mettre à true pour logguer les actions de astGUIclient dans un fichier texte sur l'ordinateur de l'utilisateur. - -
-
-
-Activer la queue - Mettre à true pour que les applications clientes utilisent le systeme central de queue d'asterisk. Requis pour VICIDIAL et recommandé pour tout les utilisateurs. - -
-
-
-Popup sur le CallerID - Mettre à true pour autoriser, pour les numéros définis dans le fichier extensions.conf, à afficher des popup concernat le CallerID aux utilisateurs d'astGUIclient. - -
-
-
-Bouton de boîte vocale - Mettre à true pour afficher le bouton VOICEMAIL et le nombre de messages dans astGUIclient. - -
-
-
-Rafraichissement rapide - Mettre à true pour activer un nouveau taux de rafraichissement de l'information dans astGUIclient. Par défaut ce taux est de 1000ms, 1 seconde. Si vous diminuez ce taux cela peu augmenter la charge système. - -
-
-
-Taux de rafraichissement rapide - en millisecondes. Utiliser seulement si le rafraichissement rapide est activé. Par défaut le taux est de 1000ms , 1 seconde. La diminution de ce taux peux augmenter la charge système. - -
-
-
-MySQL persistant -<\/B> Si activé, alors la connection à MYSQL sera maintenue au lieu d'être reconnectée chaque seconde. Utile si vous avez un taux de rafraichissement rapide. Cela va augmenter le nombre de connections au seveur MYSQL. - -
-
-
-Appel automatique du numéro suivant - Si activé, le client VICIDIAL appelera automatiquement le numéro suivant dans la liste selon la disposition d'un appel à moins qu'ils aient choisi "Stop Dialing" sur l'écran de disposition. - -
-
-
-Stoper l'enregistrement après chaque appel - Si activé, le client VICIDIAL stopera chaque enregistrement à la fin de l'appel. Utile si vous faites beaucoup d'enregistrements et si vous utiliser un formulaire web pour déclancher l'enregistrement. - -
-
-
-Activer les messages SIPSAK - Si activé alors le serveur enverra des messages au téléphone SIP à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction ne fonctionne seulement avec les téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0. - -
-
-
-Serveur DBX - Le serveur de la base de données MYSQL auquel cette utilisateur se connecte. - -
-
-
-Base de données DBX - Base de données à laquelle cet utilisateur ce connecte. La valeur par défault est asterisk. - -
-
-
-Utilisateur DBX - Login utilisateur de la base de données utilisé pour la connection. La valeur par défaut est cron. - -
-
-
-Mot de passe DBX - Mot de pass de la connetion MYSLQ. La valeur par défaut est 1234. - -
-
-
-Port DBX - Port de la connection à la base de données. La valeur par défaut est 3306. - -
-
-
-Serveur DBY - Le serveur de base de données auquel cet utilisateur ce connecte. Secondaireserver, pas utilisé actuellement. - -
-
-
-Base de données DBY - La base de données MYSQL à laquelle cette utilisateur se connecte. La valeur par défaut est asterisk. Secondaireserver, pas utilisé actuellement. - -
-
-
-Utilisateur DBY - Login utilisateur avec lequel cet utilisateur ce connecte à la base de données. La valeur par défaut est cron. Secondaireserver, pas utilisé actuellement. - -
-
-
-Mot de passe DBY - Mot de passe avec lequel cet utilisateur ce connecte à MYSQL. La valeur par defaut est 1234. Secondaireserver, pas utilisé actuellement. - -
-
-
-DBY port - Port TCP de la connection MYSQL utilisée par cet utilisateur. La valeur par défaut est 3306. Secondaireserver, pas utilisé actuellement. - -
-
-
-Alias ID - L'ID de l'alias utilisé pour permettre les connexions de téléphone à équilibrage de charge. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur. - -
-
-
-Alias Nom - Le nom utilisé pour désigner un téléphone alias, doit être compris entre 2 et 50 caractères de longueur. - -
-
-
-Téléphones Connexions List - La virgule sépare la liste de téléphone de connexion utilisé lors d'un agent se connecte par téléphone pour équilibrer la charge de connexion. L'agent se trouve l'application serveur actif avec le moins d'agents et connecté à un appel à ce serveur à l'agent au moment de la connexion. - -
-
-
-Téléphones Email - L'adresse e-mail associée à ce téléphone d'entrée. Il est utilisé pour les paramètres de messagerie vocale. - -
-
-
-Template ID - C'est le fichier de conf ID que ce modèle de téléphone utilisé pour la saisie des paramètres de son Asterisk. La valeur par défaut est - ABSENCE --. - -
-
-
-Conf Override Settings - If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. - -
-
-
-Alias Groupe ID - L'ID du groupe alias utilisés par les agents de composer les appels de l'agent VICIDIAL interface avec différents Caller ID. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur. - -
-
-
-Nom du groupe Alias - Le nom utilisé pour décrire un groupe d'emprunt, doit être compris entre 2 et 50 caractères de longueur. - -
-
-
-Numéro d'identification de l'appelant - Le numéro d'identification de l'appelant utilisée dans ce groupe Alias. Chiffres doivent être. - -
-
-
-Nom d'identification de l'appelant - Le nom d'identification de l'appelant qui peut être envoyé à ce groupe Alias. Pour autant que nous sachions ce qui ne fera que travailler au Canada sur les circuits PRI et l'utilisation d'un tronc IAX boucle par Asterisk. - - - - -



- -TABLE DES SERVEURS

-
-
-ID du Sevreur - C'est ici que vous mettez le nom du serveur Asterisk, il n'est pas obligatoire de mettre le sous dommaine, juste un nom pour identifier le seveur pour les administrateurs. - -
-
-
-Descritpion du serveur - Petite description du serveur asterisk. - -
-
-
-Adresse IP du serveur - Le champs dans lequel vous mettez l'adresse IP du serveur Asterisk. - -
-
-
-Actif - Mettre si le serveur Asterisk est actif ou non. - -
-
-
-Système de charge - Ces deux statistiques montrent loadavg la fois d'un système 100 et le pourcentage d'utilisation CPU du serveur et est mis à jour chaque minute. Le loadavg devrait être en moyenne inférieure à 100 multiplié par le nombre de noyaux de CPU de votre système a, pour des performances optimales. Le pourcentage d'utilisation CPU devrait rester en dessous de 50 pour une performance optimale. - -
-
-
-Live Chaînes - Ce champ indique le nombre actuel d'Asterisk canaux qui sont en direct sur le système dès maintenant. Il est important de noter que le nombre de canaux Asterisk est habituellement beaucoup plus élevé que le nombre d'appels sur un système. Ce champ est mis à jour une fois chaque minute. - -
-
-
-Disk Usage - Ce champ montre l'utilisation du disque pour chaque partition sur ce serveur. Ce champ est mis à jour une fois chaque minute. - -
-
-
-Version d'Asterisk - Mettre la version d'asterisk que vous avez installé sur ce serveur. Examples: ' 1.2 ', ' 1.0.8 ', ' 1.0.7 ', 'CVS_HEAD', 'REALLY OLD', etc... Ceci est utilisé car les versions 1.0.8 et 1.0.9 ont une methode differente pour gérer les canaux Local/, un bug qui a été fixé dans le CVS v1.0, et qui nescessite d'être traité differement quand les canaux Local/ sont manipulés. Aussi, la version courante CVS_HEAD et l'arbre 1.2 utilisent des managers et des commandes différentes, qui doivent donc être traités différemment.. - -
-
-
-Nombre maximum de trunks VICIDIAL - Ce champ détermine le nombre maximum de lignes que l'appel automatique de VICIDIAL essayera d'appeler sur ce serveur. Si vous voulez consacrer pleinement deux PRI T1s à VICIDIAL sur un serveur vous devriez mettre ce champ à 46. La valeur par defaut est 96. - -
-
-
-Max demande par seconde - Ce paramètre détermine le nombre maximum d'appels qui peuvent être mis par la sortie d'auto-script d'appel sur ce serveur par seconde. Doit être de 1 à 100. La valeur par défaut est 20. - -
-
-
-Hôte telnet - C'est l'adresse ou le nom du serveur Asterisk et c'est comme cela que les applications managers se connectent au sevreur quand elle sont lancées. Si les applications managers sont lancées sur le serveur Asterisk, alors la valeur par defaut 'localhost' fonctionne bien . - -
-
-
-Port telnet - C'est le port de connection au manager du serveur Asterisk c'est par ceului-ci que les applications managers se connectent. La valeur par defaut '5038' fonctionne bien avec une installation standard. - -
-
-
-Utilisateur du manager - C'est l'utilisateur utilisé pour la connection au manager Asterisk. La valeur par défaut est 'cron' - -
-
-
-Mot de passe du manager - Le secret ou mot de passe utilisé pour ce connecter au manager Asterisk. La valeur par defaut est '1234' - -
-
-
-Utilisateur du manager pour les mises à jour - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts de mise à jour. La valeur par defaut est 'updatecron' et a le même secret que l'utilisateur générique. - -
-
-
-Utilisateur du manager pour l'écoute - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui écoutent la sortie seulement. La valeur par défaut est 'listencron' et a le même secret que l'utilisateur générique. - -
-
-
-Utilisateur du manager pour l'envoi - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui envoient des actions au manager. La valeur par défaut est 'sendcron' et a le même secret que l'utilisateur générique. - -
-
-
-Décalage GMT du serveur -La difference en heure par rapport à l'heure GMT non ajustée pour Les Daylight-Savings-Time du serveur. Par defaut '-5' - -
-
-
-Exten VMail Dump - Le prefix de l'extention utilisé sur ce serveur pour lancer des appels directement depuis agc vers une boite vocale spécifique. La valeur par defaut est '85026666666666' - -
-
-
-Extension de VICIDIAL AD - L'extension par défaut si personne n'est présent dans la campagne qui permet de lancer des appels pour l'appel automatique de VICIDIAL. La valeur par defaut est '8365' - -
-
-
-Contexte par défaut - Le contexte par defaut utilisé par les scripts qui opèrent sur ce serveur. La valeur par défaut est 'default' - -
-
-
-Performances du système - Mettre cette option à Y permet de loger les statistiques des performances du système, incluant la charge du système, les processus et les canaux Asterisk utilisés. La valeur par défaut est N. - -
-
-
-Logs du serveur - Mettre cette option à Y permet de loger tous les scripts liés à Asterisk dans leurs fichiers textes de log. Mettre cette option à N arrête le logs dans les fichiers pour ces processus, et de ce fait désactive l'écran de log de Asterisk si cette option est à N quand Asterisk démarre. La valeur par défaut est Y. - -
-
-
-Sortie des scripts AGI - Mettre cette option à NONE désactive toutes les sorties des scripts AGI de VICIDIAL. La mettre à STDERR enverra les sorties des scripts AGI à la CLI Asterisk. Mettre cette option à FILE enverra les sorties dans un fichiers dans le répertoire des logs. Mettre cette option à BOTH enverra les sorties à la fois vers la CLI Asterisk et dans le fichier de log. La valeur par défaut est FILE. - -
-
-
-Appel équilibré VICIDIAL -<\/B> Définir ce champ à Y permettra au serveur de placer des appels équilibrés pour les campagnes dans VICIDIAL de sorte que le niveau d'appel défini puisse être atteint même s'il n'y a aucun agent connecté dans cette campagne sur ce serveur. La valeur par défaut est N. - -
-
-
-Limite de l'équilibrage VICIDIAL -<\/B> Cette option définit le nombre de trunks à ne pas utiliser pour l'équilibrage des appels VICIDIAL. Par exemple si vous avez 40 trunks vicidial et la limite d'équilibrage VICIDIAL définie à 10 vous ne pourrez utiliser que 30 trunks pour l'équilibrage VICIDIAL. La valeur par défaut est 0. - -
-
-
-Enregistrement Web Link - Ce paramètre permet d'outrepasser les paramètres par défaut de l'affichage de l'enregistrement de lien dans l'admin des pages web. La valeur par défaut est SERVER_IP. - -
-
-
-Autre enregistrement IP du serveur - Ce paramètre est l'endroit où vous pouvez mettre une IP de serveur de nom de machine ou d'autres qui peuvent être utilisés à la place de la server_ip dans les liens d'enregistrements au sein de l'administration des pages Web. La valeur par défaut est vide. - -
-
-
-Asterisk Active Server - Si Asterisk ne fonctionne pas sur ce serveur, ou si VICIDIAL ne devrait pas utiliser ce serveur, ou si seulement ce serveur en utilisant des scripts pour d'autres comme la trémie de chargement de script que vous souhaiteriez mettre à la N. La valeur par défaut est Y. - -
-
-
-Générer des fichiers de conf - Si vous souhaitez que le système d'auto-générer des fichiers de conf astérisque sur la base des entrées de téléphones, le transporteur et l'équilibrage de charge des entrées de configuration dans VICIDIAL puis mettre à la valeur par défaut est Y. Y. - -
-
-
-Reconstruire les fichiers conf - Si vous voulez forcer une reconstruction de la conf Asterisk fichiers ou si l'une des entrées de porte ou les téléphones ont changé, alors ceci doit être réglé sur Y. Après la conf des fichiers ont été générés et Asterisk a été rechargée alors ce sera changée pour N. La valeur par défaut est Y. - - - - - -



- -vicidial_conf_templates TABLE

-
-
-Template ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le modèle de configuration à travers le système. - -
-
-
-Nom du modèle - C'est le nom descriptif du modèle de fichier de configuration d'entrée. - -
-
-
-Template Sommaire - Ce domaine est l'endroit où vous pouvez entrer dans les paramètres spécifiques pour être utilisés par tous les téléphones et / ou les transporteurs qui sont mis à utiliser ce modèle de conf. Les champs qui ne doivent PAS être inclus dans cette zone sont: le secret, accountcode, compte, nom d'utilisateur et boîte aux lettres. - - - - - -



- -vicidial_server_carriers TABLE

-
-
-Carrier ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le transporteur pour cette entrée spécifique dans l'ensemble du système. - -
-
-
-Nom du transporteur - C'est le nom descriptif de la porte d'entrée. - -
-
-
-Inscription String - Ce domaine est l'endroit où vous pouvez entrer dans la chaîne exacte nécessaire dans le IAX ou SIP pour enregistrer le fichier de configuration pour le fournisseur. Facultatif mais fortement recommandé si votre opérateur permet l'enregistrement. - -
-
-
-Template ID - Ce champ facultatif permet de choisir un modèle de fichier de conf de ce transporteur entrée. - -
-
-
-Compte Entrée - Ce champ est utilisé si vous n'avez pas choisi un modèle à utiliser, et c'est là où vous pouvez entrer dans les paramètres du compte à utiliser pour ce transporteur. Si vous prenez en appels entrants à partir de ce transporteur tronc, vous pouvez définir le contexte = trunkinbound dans ce domaine, de sorte que vous pouvez utiliser le processus de traitement des DID dans VICIDIAL. - -
-
-
-Protocole - Ce domaine vous permet de définir le protocole à utiliser pour le transporteur d'entrée. Actuellement, seuls SIP et IAX sont soutenus. - -
-
-
-Globals String - Ce champ facultatif permet de définir une variable globale à utiliser pour le transporteur de la dialplan. - -
-
-
-Entrée Dialplan - Ce champ facultatif permet de définir un ensemble de dialplan entrées à utiliser pour ce transporteur. - -
-
-
-IP du serveur - Il s'agit du serveur que ce support est associé à enregistrer. - -
-
-
-Active - Cela définit si le transporteur sera inclus dans l'auto-générés ou non les fichiers conf. - - - - - -



- -TABLE DES CONFERENCES

-
-
-Numéro de la conférence - Ce champ permet de mettre le numéro du meetme pour les conférences. Il est aussi recommandé que le numéro du meetme dans meetme.conf corresponde à ce numéro pour chaque entrée. C'est pour les conférences dans astGUIclient et est utilisé pour la fonction leave-3way-call dans VICIDIAL. - -
-
-
-IP du serveur - C'est le menu dans lequel vous choisissez le serveur Asterisk sur lequel sera cette conférence. - - - - - 0) - { + VICIDIAL_USER_GROUPS TABLE

+
+
+ Groupe d'utilisateurs - C'est le nom court d'un groupe d'utilisateurs Vicidial, n'utilisez ni espaces ni ponctuation pour ce champ. Max 20 caractère min 2. + +
+
+
+ Nom du Groupe - C'est la description du groupe d'utilisateurs vicidial. Max 40 caractères. + +
+
+
+ Force timeclock Login - Cette option vous permet de ne pas laisser un agent vous connecter à l'interface agent VICIDIAL si elles ne sont pas enregistrés dans le timeclock. La valeur par défaut est N. Il est possible d'exonérer les utilisateurs admin, le niveau 8 et 9. + +
+
+
+ Shift exécution - Ce paramètre vous permet de restreindre l'agent de connexion sur la base des changements qui ont été sélectionnés ci-dessous. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est OFF. + +
+
+
+ Groupe changements - Il s'agit d'un choix de la liste des changements qui peuvent restreindre l'accès des agents à temps sur le système. + +
+
+
+ Campagnes autorisés - C'est une liste de campagnes dans lesquelles les utilisateurs de ce groupes pourront se connecter. L'option TOUTES LES CAMPAGNES autorise les utilisateurs de ce groupe à voir et se connecter à toutes les campagnes sur le système. + +
+
+
+ Le statut de mandataire Viewable Groupes - Ceci est une liste sélectionnable de groupes d-utilisateurs et les fonctions utilisateur pour lequel les membres de ce groupe d-utilisateurs peuvent visualiser l-état des appels ainsi que le transfert vers l-intérieur de l-écran de l-agent. The All-GROUPES option permet aux utilisateurs de ce groupe à voir et à transférer des appels vers n-importe quel utilisateur sur le système. La CAMPAGNE AGENTS option permet aux utilisateurs de ce groupe à voir et à transférer des appels vers n-importe quel utilisateur dans la campagne à laquelle ils sont connectés à. + +
+
+
+ Le statut de mandataire Afficher Time - Cette option définit si l-agent va voir la quantité de temps que les utilisateurs dans leur encadré agent ont été dans leur état actuel. Par défaut est N pour non ou handicapés. + + 0) + { + ?> +
+
+
+ QC permis Campagnes - Il s'agit d'un choix de la liste des campagnes où les membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-CAMPAGNES option permet aux utilisateurs de ce groupe de Québec une campagne sur le système. + +
+
+
+ QC permis l'arrivée des groupes - Il s'agit d'un choix de la liste des groupes dont l'arrivée des membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-GROUPES option permet aux utilisateurs dans ce groupe d'utilisateurs QC arrivée du groupe sur tout le système. + + + + +



- VICIDIAL_SERVER_MallesTABLE

-
+ VICIDIAL_SCRIPTS TABLE

+

- Les trunks du serveur VICIDIAL vous permettent de limiter les lignes sortantes qui sont utilisées sur ce serveur sur une base par-campagne. Vous avez la possibilité de reserver un nombre spécifique de lignes à utiliser par seulement une campagne aussi bien que permettre à cette campagne d'utiliser plus de lignes que celles reservées si il en reste de libre, tant que le nombre maximum de ligne utilisées par Vicidial sur ce serveur est inférieur au nombre de trunks VICIDIAL maximum défini. Avoir aucun de ces réglages permet à la campagne qui appel en premier d'avoir autant de lignes qu'elle le peut sous le nombre max de lignes VICIDIAL défini. - + Id du script - C'est le nom court d'un Script Vicidal. Il doit être unique. Ne pas utiliser d'espace ni de ponctuation pour ce champ. Doit être composé de 2 à 10 caractères. + +
+
+ Nom du ccript - C'est le titre du script Vicidial. C'est une courte description du script. Maximum 50 caractères, minimum 2. Il ne doit pas avoir d'espace ou de ponctuation de quelque sorte dans ce champ. + +
+
+ Commentaires du script - C'est ici que vous entrez un commentaire pour le script Vicidial comme -changed to free upgrade on Sept 23- Max 255 caractères , min 2 caractères. + +
+
+ Texte du script - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Activé - Cela determine si ce script peut être selectionné pour être utilisé dans une campagne. -



-SYSTEM_SETTINGS TABLE

-
-
-Utiliser Non-Latin - Cette option vous permet d'utiliser les caractères UTF8 pour l'affichage web des scripts, et de ne pas utiliser des filtres d'expressions régulières latin-character-family ou de formater l'affichage. La valeur par défaut est 0. + 0) + { + ?> +



-
-
-
-Webroot éditable - Cette option vous permet de définir si les fichiers temporaires et les fichiers d'authentification doivent être placés dans le webroot sur le serveur web. La valeur par défaut est 1. + VICIDIAL_LEAD_FILTRES TABLE

+
+
+ ID du Filtre - C'est le nom court du filtre de fiches Vicidial. Il doit être unique. N'utilisez ni espace ni ponctuation. Max 10 caractères min 2. -
-
-
-Affichage de la désactivation d'un agent VICIDIAL - Ce champ est utilisé pour selectionné quand montrer à un agent que ça session à été désactivée par le système, une action du manager ou par une mesure externe. NOT_ACTIVE désactivera l'affichage d'un message sur l'écran de l'agent. LIVE_AGENTS affichera seulement le message de désactivation quand les enregistrements vicidial_auto_calls des agents ont été modifiés, comme lors d'une déconnection forcée ou d'une déconnection de secours. +
+
+ Nom du Filtre - C'est un nom plus descrtiptif du filtre. C'est un court resumé du filtre. Max 30 caractères Min 2. -
-
-
-Autoriser les messages SIPSAK - Si défini à 1, cela permettra aux téléphones à fonctionner correctement, le serveur enverra des messages à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction fonctionne seulement avec des téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0. +
+
+ Commentaire du filtre - C'est ici que vous placez les commmentaire du filtre vicidial comme -Appel toutes les fiches de Californie- max 255 characters, min 2. -
-
-
-Agent API Active - Si définie à 1, cela permet à l'agent d'interface API pour fonctionner. La valeur par défaut est 0. - -
-
-
-URL de l'acceuil de l'administration - C'est l'URL ou l'adresse du site web ou vous voulez aller quand vous cliquez sur le lien ACCUEIL en haut de la page admin.php. - -
-
-
-Permettez le fichier journal de transfert d'agent - cette optionnotera à un fichier journal des textes sur le webserver chaque foisqu'un appel est transféré à un agent. Le défaut est 0,neutralisé. - -
-
-
-Horloge en temps Fin de la journée - Ce paramètre définit lorsque tous les utilisateurs sont automatiquement déconnecté du système timeclock. Fonctionne uniquement une fois par jour. ne doit être que 4 chiffres et 2 chiffres heures à 2 chiffres dans les minutes de 24 heures. La valeur par défaut est 0000. - -
-
-
-Dernière timeclock Auto Déconnection - Ce champ affiche la date de la dernière auto-logout. - -
-
-
-Agent Header Screen Format Date - Ce menu vous permet de choisir le format de la date qui apparaît en haut de l'écran VICIDIAL agent. Les options de ce paramètre sont les suivants: valeur par défaut est MS_DASH_24HR
-MS_DASH_24HR 2008-06-24 23:59:59 - Par défaut avec le format de la date année mois jour suivie par 24 heures,
-US_SLASH_24HR 06/24/2008 23:59:59 - Etats-Unis avec le format de la date mois jour année suivie par 24 heures,
-EU_SLASH_24HR 24/06/2008 23:59:59 - Européen de format de date avec jour mois année suivie par 24 heures,
-AL_TEXT_24HR JUN 24 23:59:59 - Texte de format de date avec abrégée mois jour suivie par 24 heures,
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Par défaut avec le format de la date année mois jour , suivies de 12 heures
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - Etats-Unis avec le format de la date mois jour année , suivies de 12 heures
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Européen de format de date avec jour mois année , suivies de 12 heures
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Texte de format de date avec abrégée mois jour , suivies de 12 heures
- -
-
-
-Agent client Screen Format Date - Ce menu vous permet de choisir le format de la date du fuseau horaire client qui apparaît en haut de la section d'information à la clientèle agent VICIDIAL de l'écran. Les options pour ce paramètre sont les suivants: valeur par défaut est AL_TEXT_AMPM
-MS_DASH_24HR 2008-06-24 23:59:59 - Par défaut avec le format de la date année mois jour suivie par 24 heures,
-US_SLASH_24HR 06/24/2008 23:59:59 - Etats-Unis avec le format de la date mois jour année suivie par 24 heures,
-EU_SLASH_24HR 24/06/2008 23:59:59 - Européen de format de date avec jour mois année suivie par 24 heures,
-AL_TEXT_24HR JUN 24 23:59:59 - Texte de format de date avec abrégée mois jour suivie par 24 heures,
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Par défaut avec le format de la date année mois jour , suivies de 12 heures
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - Etats-Unis avec le format de la date mois jour année , suivies de 12 heures
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Européen de format de date avec jour mois année , suivies de 12 heures
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Texte de format de date avec abrégée mois jour , suivies de 12 heures
- -
-
-
-Agent Client Téléphone Screen Format - Ce menu vous permet de choisir le format du client le numéro de téléphone qui apparaît dans la section du statut de la VICIDIAL agent écran. Les options pour ce paramètre sont les suivants: valeur par défaut est US_PARN
-US_DASH 000-000-0000 - USA tableau de bord séparés numéro de téléphone
-US_PARN (000)000-0000 - USA Numéro de tableau de bord séparés avec le code régional entre parenthèses
-MS_NODS 0000000000 - Pas de formatage
-UK_DASH 00 0000-0000 - UK tableau de bord séparés numéro de téléphone avec l'espace après le code de ville
-AU_SPAC 000 000 000 - Australia espace séparé numéro de téléphone
-IT_DASH 0000-000-000 - Italy tableau de bord séparés numéro de téléphone
-FR_SPAC 00 00 00 00 00 - France espace séparé numéro de téléphone
- -
-
-
-Agent interface API Access Active - This option allows you to enable or disable the agent interface API. Default is 0. - -
-
-
-Caractéristiques QC Active - Cette option vous permet d'activer ou désactiver le contrôle de la qualité ou QC fonctionnalités. La valeur par défaut est 0 pour les inactifs. - -
-
-
-Auto-Outbound Dial Active - Cette option vous permet d'activer ou désactiver la numérotation automatique sortants dans VICIDIAL, la mise en ce domaine à 0 supprime les listes et FILTRES sections et de nombreux champs de la campagne Modification écrans. Manuel de l'entrée de numérotation sera encore autorisée au sein de l'agent de l'écran, mais pas de liste d'appel ne sera possible. La valeur par défaut est 1 pour les actifs. - -
-
-
-Max REMPLISSAGE demande par seconde - Ce paramètre détermine le nombre maximum d'appels qui peuvent être placés par les auto-FILL sortie d'auto-script de numérotation pour tous les serveurs, par seconde. Doit être de 1 à 200. La valeur par défaut est 40. - -
-
-
-Activer le log des QueueMetrics - Cette option vous permet de définir si VICIDIAL va insérer les données des logs dans la table queue_log comme le fait Asterisk. QueueMetrics est un programme d'analyse de statistiques autonome et non open-source. Vous devez avoir installé et configuré QueueMetrics pour activer cette option. La valeur par défaut est 0. - -
-
-
-IP du serveur QueueMetrics - C'est l'adresse IP de la base de données pour votre installation de QueueMetrics. - -
-
-
-Nom de la base de données de QueueMetrics - C'est le nom de la base de données de QueueMetrics. - -
-
-
-Login de la base de données de QueueMetrics - C'est le login utilisé pour se connecter à la base de données QueueMetrics. - -
-
-
-Mot de passe de la base de données de QueueMetrics - C'est le mot de passe utilisé pour se connecter à la base de données QueueMetrics. - -
-
-
-URL de QueueMetrics - C'est l'URL ou l'adresse du site web utilisé pour atteindre QueueMetrics. - -
-
-
-Identifiant des log de QueueMetrics - C'est l'identifiant du serveur que tout les logs VICIDIAL dans la base de données de QueueMetrics vont utiliser pour chaque enregistrement. - -
-
-
-QueueMetrics EnterQueue Prepend -<\/B> Ce champ est utilisé pour autorisé à ajouter un des champs des données de vicidial_list devant le numéro de téléphone du client pour personnaliser les rapports QueueMetrics. La valeur par défaut est NONE pour ne pas peupler n'importe quoi. - -
-
-
-Activer Vtiger Integration - Ce paramètre vous permet d'activer l'intégration avec Vtiger VICIDIAL. Actuellement, des liens vers Vtiger admin et de recherche ainsi que l'utilisateur de réplication sont les seules fonctions d'intégration disponibles. La valeur par défaut est 0. - -
-
-
-Vtiger DB IP du serveur - Il s'agit de l'adresse IP de la base de données de votre installation Vtiger. - -
-
-
-Vtiger Database Name - C'est le nom de base de données de votre base de données Vtiger. - -
-
-
-Vtiger Database Login - C'est le nom d'utilisateur utilisé pour vous connecter à votre base de données Vtiger. - -
-
-
-Vtiger Database Password - Il s'agit du mot de passe utilisé pour vous connecter à votre base de données Vtiger. - -
-
-
-Vtiger Web - Il s'agit de l'URL ou adresse du site Web utilisé pour accéder à votre installation Vtiger. - - -



- -VICIDIAL_STATUSES TABLE

-
-
-Par l'utilisation des statuts de système, vous pouvez avoir desstatuts qui existent pour la campagne et le dans-groupe. Le statutdoit être 1-6 caractères de longueur, la description doit être 2-30caractères de longueur et sélectionnable définit si elle apparaîtdans VICIDIAL comme disposition d'agent. Human_answered le champ estemployé en calculant le pourcentage de baisse, ou le taux d'abandon.L'arrangement human_answered à Y emploiera ce statut en comptant lesappels humain-répondus. L'option de catégorie vous permet de grouperplusieurs statuts dans un catogy qui peut être employé pourl'analyse statistique. - - -



- -VICIDIAL_STATUS_CATEGORIES TABLE

-
-
-Par l'utilisation des catégories de statut de système, vous pouvezgrouper ensemble des statuts pour tenir compte de l'analysestatistique sur un groupe de statuts. L'identification de catégoriedoit être 2-20 caractères de longueur sans les espaces, le nom doitêtre 2-50 caractères de longueur, la description est facultative etl'affichage de TimeonVDAD définit si ce statut sera un de jusqu'à 4statuts qui peuvent être calculés et montrés le temps sur lerapport de temps réel de VDAD. La vente et la catégorie Dead Lead Catégorie sont tous deux utilisés par le système de liste de suggestions lors de l'analyse de la liste des statistiques. - - - 0) - { +
+
+ Filtre SQL - C'est ici que vous mettez le fragment de requête SQL que vous voulez utiliser pour filtrer. Ne commencez pas ni ne finissez pas par AND, cela est automatiquement ajouté par le script cron. Exemple : called_count > 4 and called_count < 8 . + + + + +



- VICIDIAL QC ÉTAT DES CODES

-
+ VICIDIAL_PERIODES D'APPELS TABLE

+

- Le contrôle de la qualité au sein du système-QC VICIDIAL a son propre ensemble de codes distincts de ceux dans le traitement des appels de fonctions VICIDIAL. QC statuse codes doit être comprise entre 2 et 8 caractères et ne contiennent pas de caractères spéciaux, comme un espace ou du côlon. Le code de statut QC description doit être comprise entre 2 et 30 caractères. - Identifiant de la période d'appel -
C'est le nom court de la période d'appel de VICIDIAL. Il doit être unique. N'utilisez pas d'espace ou de ponctuation. 10 caractères maximum et 2 minimum. + +
+
+ Nom de la période d'appel - C'est un nom plus descriptif de la période d'appel. Une courte description. 30 caractères maximum et 2 minimum. + +
+
+ Commentaires de la période d'appel - Vous pouvez y placer des commentaires sur la période d'appel de Vicidial comme-de 10h00 à 16h00 avec des restrictions-. Max 255 caractères. + +
+
+ Heures de début et de fin par défaut - Ce sont les heures par défaut pendant lesquelles un appel est autorisé si l'heure de début de day-of-the-week n'est pas définie. 0 est minuit. Pour interdir complétement les appels mettez 2400 et mettez 2400 à l'heure de fin par défaut. Pour autoriser les appels 24h/24, remplissez les champs avec 0 pour le début et 2400 pour la fin. + +
+
+ Heures de début et de fin pour un jour - Ce sont les heures de début et de fin personnalisés pour un jour. Les mêmes règles s'appliquent qu'aux heures de début et de fin par défaut. + +
+
+ Définitions des états des périodes d'appel -<\/B> C'est la liste des définitions spécifiques des périodes d'appels des états qui sont suivies dans cette définition de période d'appels. + +
+
+ State Call Time State -<\/B> Ce sont les deux lettres code pour l'état auquel cette définition de période d'appels correspond. Pour que cela prenne effet, la période d'appel locale qui est définie dans la campagne doit avoir cette enregistrement d'état de période d'appel aussi bien que toutes les fiches ayant ces deux lettre codes d'état. + + + + +



+ + VICIDIAL_SHIFTS TABLE

+
+
+ Shift ID - Il s'agit du nom court d'un VICIDIAL Shift Définition. Cela doit être un identifiant unique. Ne pas utiliser les espaces ou la ponctuation dans ce champ. max 20 caractères, un minimum de 2 caractères. + +
+
+ Nom Shift - Il s'agit d'un nom descriptif de la Maj Définition. Ceci est un bref résumé de la définition Maj. max 50 caractères, un minimum de 2 caractères. + +
+
+ Start Time Shift - Il est temps que la campagne commence à passer. Ne doivent être des chiffres, 9:30 AM serait 0930 et 5:00 PM serait 1700. + +
+
+ Longueur Shift - Il est temps en heures et minutes que dure la campagne de changement. 8 heures seraient 08h00 et 7 heures et 30 minutes serait 07:30. + +
+
+ Shift Weekdays - Dans cette section, vous devriez choisir le jour de la semaine que ce changement est active. + + + + + +



+
+ Audio Store - Cet utilitaire vous permet de télécharger des fichiers audio sur le serveur Web de sorte qu-ils puissent être distribués à tous les serveurs VICIDIAL dans un cluster multi-serveur. Une remarque importante, seulement deux types de fichiers audio fonctionne, les fichiers. Wav qui sont PCM 16bit 8k et les fichiers. GSM qui sont 8bit 8K. S-il vous plaît vérifier que vos fichiers sont correctement mis en forme avant de les télécharger ici. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD TABLE

+
+
+ Musique en attente d-identification - Ceci est le nom court d-une musique d-attente d-entrée. Cela doit être un identifiant unique. N-utilisez pas d-espaces ou de ponctuation dans ce champ. max 100 caractères, minimum de 2 caractères. + +
+
+ Musique d-attente Nom - Il s-agit d-un nom plus descriptif de la Musique en attente d-entrée. Ceci est un bref résumé de la Musique en attente contexte et s-affiche comme un commentaire dans le musiconhold-file vicidial.conf. 255 caractères max, minimum de 2 caractères. + +
+
+ Active - Cette option vous permet de définir la musique d-attente à l-entrée active ou inactive. Inactifs va supprimer l-entrée à partir des fichiers conf. + +
+
+ Random Order - Cette option vous permet de définir la lecture des fichiers audio dans un ordre aléatoire. Si elle est égale à N, alors l-ordre défini sera utilisé. + +
+
+ Filename - Pour ajouter un nouveau fichier audio à une musique d-attente d-entrée, le fichier doit d-abord être dans le magasin de l-audio, alors vous pouvez sélectionner le fichier et cliquez sur Soumettre pour l-ajouter à la liste des fichiers. Musique d-attente est mis à jour une fois par minute s-il ya eu des modifications apportées. Tous les fichiers qui ne figurent pas dans une musique à l-entrée détiennent qui sont présents dans la musique sur le dossier de détention seront supprimés. + + + + +



+ + VICIDIAL_TTS_PROMPTS TABLE

+
+
+ TTS ID - Ceci est le nom court d-une entrée de TTS. Cela doit être un identifiant unique. N-utilisez pas d-espaces ou de ponctuation dans ce champ. max 50 caractères, minimum de 2 caractères. + +
+
+ TTS Nom - Il s-agit d-un nom plus descriptif de l-entrée TTS. Ceci est un bref résumé de la définition de TTS. max 100 caractères, minimum de 2 caractères. + +
+
+ Active - Cette option vous permet de définir l-entrée de TTS à l-état actif ou inactif. + +
+
+ TTS Text - Il s-agit du texte à la parole champ de données qui est envoyé à Cepstral pour la création du fichier audio à lire pour le client. vous pouvez utiliser Speech Synthesis Markup Language-SSML, dans ce domaine, par exemple, <break time='1000ms'/> pour une pause de 1 seconde. Vous pouvez également utiliser plusieurs variables telles que nom, prénom et titre en tant que variables VICIDIAL comme vous le faites dans un script: - Un prenom - - B -. Voici une liste des variables disponibles:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL TABLE

+
+
+ Boîte vocale ID - Il s-agit de la identifiant nombres de cette boîte aux lettres. Cela ne doit pas être un doublon d-un répondeur d-identification existant ou la boîte vocale d-ID d-un téléphone sur le système, au moins 2 caractères. + +
+
+ Name - Ce nom est associé à cette boîte vocale. max 100 caractères, minimum de 2 caractères. + +
+
+ Password - C-est le mot de passe utilisés pour accéder à la boîte vocale lors de la numérotation pour vérifier ses messages max 10 caractères, minimum de 2 caractères. + +
+
+ Active - Cette option vous permet de configurer la boîte vocale à l-état actif ou inactif. Si la case est inactive vous ne pouvez pas laisser de messages sur elle et vous ne pouvez pas vérifier les messages en elle. + +
+
+ Email - Ce paramètre facultatif vous permet d-avoir les messages vocaux envoyés à un compte de messagerie, si votre système est configuré pour envoyer des email. Si ce champ est vide, alors pas de courriels seront envoyés. + +
+
+ Supprimer messagerie vocale après le courrier électronique - Ce paramètre facultatif vous permet d-avoir les messages vocaux supprimés du système après avoir été envoyé par courriel Out. Par défaut est n. + + + + + 0) + { + ?> + +



+ + FONCTIONNALITES DU CHARGEUR DE FICHES DE VICIDIAL

+
+
+ Le chargeur enchaînement-basé de base de fil de VICIDIAL est conçusimplement pour prendre un dossier de fil - jusqu'à 8MB dans lataille qu'est l'étiquette ou la pipe délimitée et pour le chargerdans la table de vicidial_list. Le chargeur de fil tient compte duchamp choisissant et de TXT- le texte tout simplement, les valeursséparées par virgule de CSV- et les XLS- excellent des formats dedossier. Le chargeur de fil ne fait pas la validation de données,mais elle vous permet de vérifier les reproductions en soi, dans lacampagne ou dans le système entier. En outre, assurez-vous que vousavez créé la liste que ces fils doivent être dessous de sorte quevous puissiez les employer. Voici une liste des champs dans leurcommande appropriée pour les dossiers de fil : +
    +
  1. Code vendeur de la fiche - montre dans le champ dID du vendeur de l'interface graphique +
  2. Code source - usage interne uniquement pour les administrateurs et les administrateurs de la base de données +
  3. Identifiant de la liste - le numéro de la liste dans laquelle seront ces fiches +
  4. Code du téléphone - le préfixe pour le numéro de téléphone - 1 pour les USA, 0144 pour le Royaume-Uni, 01161 pour l'Australie, etc +
  5. Numéro de téléphone - doit contenir au moins 8 chiffres +
  6. Titre - titre du client - Mr. Mme. Mlle., etc... +
  7. Nom +
  8. Initiales +
  9. Prénom +
  10. Adresse Ligne 1 +
  11. Adresse Ligne 2 +
  12. Adresse Ligne 3 +
  13. Ville +
  14. Etat - Limité à 2 caractères +
  15. Province +
  16. Code Postal +
  17. Pays +
  18. Sexe +
  19. Date de naissance +
  20. Numero de téléphone alternatif +
  21. Adresse mail +
  22. Phrase de sécurité +
  23. Commentaires +
+ +
NOTES : La fonctionnalité de chargeur de fil d'exceler est permisepar une série de manuscrits de Perl et doit avoir un dossier en placecorrectement configuré de /etc/astguiclient.conf sur le web server.En outre, des modules d'un Perl de couples doivent être chargés pourelle pour travailler aussi bien - oLE-Storage_Lite-Storage_Lite et leBilan-ParseExcel. Vous pouvez vérifier les erreurs d'exécution dansces derniers en regardant votre dossier d'error_log d'apache. Enoutre, pour des contrôles de duplication contre le gampaignénumère, la liste qui a de nouveaux fils entrer dans lui doit êtrecréée dans le système avant que vous commenciez à charger lesfils. + + + + +



+ + + + + + + TABLE DES TELEPHONES

+
+
+ Extension du téléphone - C'est dans ce champ qu'il faut mettre le nom du téléphone comme il apparait dans Asterisk sans mettre le protocole ou le slash du début. Par exemple: pour le téléphone SIP SIP/test101 l'extension sera test101. De même pour les téléphones IAX2 assurez vous d'utiliser le nom complet du téléphone : pour IAX2/IAXphone1@IAXphone1 ce sera IAXphone1@IAXphone1. Pour les téléphones ZAP assurez vous de mettre le channel complet: pour Zap/25-1 ce sera 25-1. De plus, assurez vous d'avoir mis le bon protocole en dessous pour votre téléphone. + +
+
+
+ Numéro dans le Dial Plan - Ce champ est pour le numéro utilisé pour appeler ce téléphone. Ce numéro est défini dans le fichier extensions.conf du serveur Asterisk + +
+
+
+ Boîte vocale - Ce champ est pour la boîte vocale vers laquelle iront les messages pour l'utilisateur de ce téléphone. Il est utilisé pour vérifier la présence de messages et pour permettre à l'utilisateur d'utiliser le bouton VOICEMAIL dans l'application astGUIclient. + +
+
+
+ CallerID sortant - Ce champ est celui dans lequel vous entrez le numéro callerID que vous souhaitez voir apparaître lors d'appels externes passés depuis le client web astguiclient. Cela ne fonctionne pas avec RBS, non-PRI, T1/E1s. + +
+
+
+ Adresse IP du téléphone - Ce champ est pour l'adresse IP du téléphone si c'est un téléphone VOIP. Ce champ est optionnel + +
+
+
+ Adresse IP de l'ordinateur - Ce champ est pour l'adresse IP de l'ordinateur. C'est un champ optionel + +
+
+
+ IP du serveur - Ce champ est celui où vous choisissez le serveur sur lequel est activé le téléphone. + +
+
+
+ Login - login utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes. + +
+
+
+ Mot de passe - Le mot de passe utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes. IMPORTANT, c-est le seul mot de passe pour le web Connexion Agent interface de téléphone, pour changer la sip.conf iax.conf ou mot de passe, ou secrets, pour cet appareil de téléphone que vous devez modifier le fichier de conf champ Secret plus bas sur cette page. + +
+
+
+ Statut - C'est le statut du téléphone dans le système, ACTIVE et ADMIN autorisent les clients graphiques à fonctionner. ADMIN autorise l'acces à l'administration de ce site. Tous les autres statuts n'autorisent pas l'accès aux clients graphiques ou à l'administration. + +
+
+
+ Compte actif - Indique si le téléphone est actif pour le mettre dans la liste dans le client GUI. + +
+
+
+ Type de téléphone - Seuelement pour les notes administratives. + +
+
+
+ Nom complet - Utilisé par le client GUI dans la liste des téléphones actifs. + +
+
+
+ Compagnie - Seulement pour les notes administratives. + +
+
+
+ Téléphones Email - L'adresse e-mail associée à ce téléphone d'entrée. Il est utilisé pour les paramètres de messagerie vocale. + +
+
+ Supprimer messagerie vocale après le courrier électronique - Ce paramètre facultatif vous permet d-avoir les messages vocaux supprimés du système après avoir été envoyé par courriel Out. Par défaut est n. + +
+
+
+ Image - Pas encore implémenté. + +
+
+
+ Nouveaux messages - Nombre de nouveaux messages vocaux pour ce téléphone sur le serveur Asterisk. + +
+
+
+ Anciens messages - Nombre d'anciens messages vocaux pour ce téléphone sur le serveur Asterisk. + +
+
+
+ Protocole client - Le protocole que le téléphone utilise pour se connecter au serveur Asterisk: SIP, IAX2, Zap. Il y a également EXTERNAL pour les numéros distants et les numérotation rapide que vous voulez lister comme téléphone. + +
+
+
+ GMT local - La différence entre l'heure de Greenwich, ou l'heure ZULU et le fuseau horaire du téléphone. NE PAS AJUSTER POUR LES DAYLIGHT SAVINGS TIME. Ceci est utilisé par les campagnes VICIDIAL pour afficher correctement l'heure et l'heure du client. + +
+
+
+ Phone Ring Timeout - Il s-agit de la quantité de temps, en secondes, que le téléphone sonne dans le plan de numérotation avant d-envoyer l-appel vers la messagerie vocale. Par défaut est de 60 secondes. + +
+
+
+ Login du manager - C'est le login que les clients GUI de ce téléphones vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur. + +
+
+
+ Mot de passe du manager - C'est le mot de passe que les clients GUI de ce téléphone vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur. + +
+
+
+ Utilisateur par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ utilisateur de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. + +
+
+
+ Mot de passe par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ mot de passe de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. + +
+
+
+ Campagne par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ campagne de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. + +
+
+
+ Exten de mise en attente - C'est l'exten par défaut utilisé pour la mise en attente dans l'application client. Verifiez qu'il fonctionne avant de le changer. + +
+
+
+ Exten pour mise en attente de la conférence - C'est l'exten par défaut utilisé pour la mise en attente de la conférence dans l'appilcation client. Verifiez qu'il autre fonctionne avant de le changer. + +
+
+
+ Exten de mise en attente VICIDIAL - C'est l'exten par defaut utilisé pour la mise en attente pour l'appilcation cliente VICIDIAL. Avant de changer ce champ verifiez que le nouveau fonctionne. + +
+
+
+ Fichier du parc VICIDIAL - C'est le nom du fichier par defaut pour la mise en attente de VICIDIAL. Avant de le changer verifiez que le nouveau fonctionne. Limité a 10 caractères. + +
+
+
+ Prefix de Moniteur - C'est le prefix du monitoring des Channels Zap automatiquement contenu dans l'appication astguiclient. Ne changez qu'en accord avec les enregistrement des extensions ZapBarge. + +
+
+
+ Exten d'enregistrement - C'est l'extension dans le dial plan pour l'enregistrement utilisé pour enregistrer les conférences. C'est habituellement stoppé au bout d'une heure. Verifiez le fichier extentions.conf avant tout changement. + +
+
+
+ Exten principal pour VMAIL - C'est l'extension du dial plan utilisé pour verifier la boîte vocale. Verifiez le fichier extensions.conf avant tout changement. + +
+
+
+ VMAIL Dump Exten - C'est le préfix du dial plan utilisé pour lancer des appels directement vers la boite vocale de l'utilisateur depuis un un appelen cours dans l'application astGUIclient app. Avant tout changement verifiez le fichier extensions.conf. + +
+
+
+ Extension du context - Tel est le contexte du plan de numérotation que les demandes d-agents, comme VICIDIAL, utilisez principalement. Il est supposé que tous les numéros composés par les applications clientes utilisent ce contexte, c-est donc une bonne idée de s-assurer que cela est possible, le contexte plus large. vérifier avec le fichier extensions.conf avant de changer. par défaut est par défaut. + +
+
+
+ Téléphone Contexte - Tel est le contexte du plan de numérotation que ce téléphone se servira pour composer. Si vous utilisez un centre d-appel et que vous ne voulez pas que vos agents pour être en mesure de composer un numéro hors de l-application VICIDIAL par exemple, alors vous devez définir ce domaine à un contexte de plan de numérotation qui n-existe pas, quelque chose comme agent-nodial. par défaut est par défaut. + +
+
+
+ Conf dossier secret - C-est le secret ou mot de passe, pour le téléphone dans le IAX ou SIP auto-généré fichier de conf pour ce téléphone. La limite est de 20 caractères alphanumériques tiret de soulignement et acceptée. Par défaut est test. + +
+
+
+ Cannal d'envoi de DTMF - C'est le channel utilisé pour envoyer les sons DTMF dans les conférences meetme depuis l'application cliente. Verifiez le fichier extentions.conf avant tout changement. + +
+
+
+ Groupe d'appel sortant -<\/B> C'est le groupe de canal hors duquel seront placés les appels passés depuis ce téléphone. Il y a des routines dans l'application cliente qui l'utilisent. Pour les cannal Zap vous devriez utiliser quelque chose comme Zap/g2, pour les trunks IAX vous devriez utiliser un préfixe entier IAX comme IAX2/VICItet1:secret@10.10.10.15:4569. Vérifiez les trunks dans le fichier extensions.conf, il est courant que vous avez défini comme variable globale TRUNK au début du fichier. + +
+
+
+ Emplacement du Navigateur - C'est le chemin absolu pour le navigateur Mozilla ou firefox, ceci n'est applicable que pour les clients UNIX/LINUX. Vérifiez en le lançant manuellement. + +
+
+
+ Répertoire d'installation - C'est l'endroit où astGUIclient et les scripts astVICUDUAL sont installés sur la machine. Pour Win32 cela doit être quelque chose comme C:\\AST_VICI and for UNIX cela doit être quelque chose comme /usr/local/perl_TK. Vérifiez cela manuellement. + +
+
+
+ URL du CallerID - C'est l'adresse web de la page utilisée pour faire une verification personnalisée du CallerId. L'adresse des test par defaut est : http://astguiclient.sf.net/test_callerid_output.php + +
+
+
+ URL par defaut de VICIDIAL - C'est l'adresse web de la page utilisée pour faire des requêtes Web VICIDIAL personnalisées. L'adresse par defaut est: http://astguiclient.sf.net/test_VICIDIAL_output.php + +
+
+
+ Log des appels - Mettez à true si le fichier call_log.agi est placé dans le fichier extension.conf pour tout les appels sortants ainsi que l'extension de racrochage 'h' pour logger tout les appels. Il devrait toujours être à 1 car cela est nécessaire pour que certaines des fonctionnalités d'astGUIclient et de VICIDIAL fonctionnent proprement. + +
+
+
+ Changement d'utilisateur - Mettez à true pour autoriser un utilisateur à changer pour un autre compte utilisateur. NOTE: Si l'utilisateur commute, il peut initier l'enregistrement sur la nouvelle conversation téléphonique du nouvel utilisateur + +
+
+
+ En conférence - Mettez à true pour autoriser un utilisateur a démarrer une conférence avec plus de 6 lignes externs. + +
+
+
+ Racrochage administateur- Mettre à true pour autoriser l'utilisateur à racrocher n'importe quelle ligne à travers astGUIclient. C'est une bonne idée de l'activer pour les administarteurs. + +
+
+
+ Détournement adminisrateur -<\/B> Mettre à true pour autoriser l'utilisateur à pouvoir intercepter et rediriger vers son extention n'importe quelle ligne à travers Astguiclient. C'est une bonne idée de l'activer pour les administrateurs. Mais c'est aussi très utile pour les managers. + +
+
+
+ Moniteur adminisrateur - Mettre à true pour autoriser l'utilisateur à intercepter et rediriger vers son extension certaines lignes à partir de astGUIclient. C'est une bonne idée de l'activer pour les adiministrateurs. Mais c'est aussi très utile pour les managers et comme outil d'entrainement. + +
+
+
+ Parc d'appels -<\/B> Mettez à true pour autoriser l'utilisateur à parquer des appels dans astGUIclient pour être pris par n'importe quel utilisateur astGUIcient sur le système. Les appels sont mis en attente jusqu'à 30 minutes puis sont raccrochés. Habituellement activé pour tous. + +
+
+
+ Vérification de mise à jour - Mettre à true pour afficher une popup avertissant que le temps de mise à jour n'a pas changé en 20 secondes. Utile pour les administrateurs. + +
+
+
+ Log des AF - Mettre à true pour logguer les actions de astGUIclient dans un fichier texte sur l'ordinateur de l'utilisateur. + +
+
+
+ Activer la queue - Mettre à true pour que les applications clientes utilisent le systeme central de queue d'asterisk. Requis pour VICIDIAL et recommandé pour tout les utilisateurs. + +
+
+
+ Popup sur le CallerID - Mettre à true pour autoriser, pour les numéros définis dans le fichier extensions.conf, à afficher des popup concernat le CallerID aux utilisateurs d'astGUIclient. + +
+
+
+ Bouton de boîte vocale - Mettre à true pour afficher le bouton VOICEMAIL et le nombre de messages dans astGUIclient. + +
+
+
+ Rafraichissement rapide - Mettre à true pour activer un nouveau taux de rafraichissement de l'information dans astGUIclient. Par défaut ce taux est de 1000ms, 1 seconde. Si vous diminuez ce taux cela peu augmenter la charge système. + +
+
+
+ Taux de rafraichissement rapide - en millisecondes. Utiliser seulement si le rafraichissement rapide est activé. Par défaut le taux est de 1000ms , 1 seconde. La diminution de ce taux peux augmenter la charge système. + +
+
+
+ MySQL persistant -<\/B> Si activé, alors la connection à MYSQL sera maintenue au lieu d'être reconnectée chaque seconde. Utile si vous avez un taux de rafraichissement rapide. Cela va augmenter le nombre de connections au seveur MYSQL. + +
+
+
+ Appel automatique du numéro suivant - Si activé, le client VICIDIAL appelera automatiquement le numéro suivant dans la liste selon la disposition d'un appel à moins qu'ils aient choisi "Stop Dialing" sur l'écran de disposition. + +
+
+
+ Stoper l'enregistrement après chaque appel - Si activé, le client VICIDIAL stopera chaque enregistrement à la fin de l'appel. Utile si vous faites beaucoup d'enregistrements et si vous utiliser un formulaire web pour déclancher l'enregistrement. + +
+
+
+ Activer les messages SIPSAK - Si activé alors le serveur enverra des messages au téléphone SIP à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction ne fonctionne seulement avec les téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0. + +
+
+
+ Serveur DBX - Le serveur de la base de données MYSQL auquel cette utilisateur se connecte. + +
+
+
+ Base de données DBX - Base de données à laquelle cet utilisateur ce connecte. La valeur par défault est asterisk. + +
+
+
+ Utilisateur DBX - Login utilisateur de la base de données utilisé pour la connection. La valeur par défaut est cron. + +
+
+
+ Mot de passe DBX - Mot de pass de la connetion MYSLQ. La valeur par défaut est 1234. + +
+
+
+ Port DBX - Port de la connection à la base de données. La valeur par défaut est 3306. + +
+
+
+ Serveur DBY - Le serveur de base de données auquel cet utilisateur ce connecte. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Base de données DBY - La base de données MYSQL à laquelle cette utilisateur se connecte. La valeur par défaut est asterisk. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Utilisateur DBY - Login utilisateur avec lequel cet utilisateur ce connecte à la base de données. La valeur par défaut est cron. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Mot de passe DBY - Mot de passe avec lequel cet utilisateur ce connecte à MYSQL. La valeur par defaut est 1234. Secondaireserver, pas utilisé actuellement. + +
+
+
+ DBY port - Port TCP de la connection MYSQL utilisée par cet utilisateur. La valeur par défaut est 3306. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Alias ID - L'ID de l'alias utilisé pour permettre les connexions de téléphone à équilibrage de charge. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur. + +
+
+
+ Alias Nom - Le nom utilisé pour désigner un téléphone alias, doit être compris entre 2 et 50 caractères de longueur. + +
+
+
+ Téléphones Connexions List - La virgule sépare la liste de téléphone de connexion utilisé lors d'un agent se connecte par téléphone pour équilibrer la charge de connexion. L'agent se trouve l'application serveur actif avec le moins d'agents et connecté à un appel à ce serveur à l'agent au moment de la connexion. + +
+
+
+ Template ID - C'est le fichier de conf ID que ce modèle de téléphone utilisé pour la saisie des paramètres de son Asterisk. La valeur par défaut est - ABSENCE --. + +
+
+
+ Conf Override Settings - If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Alias Groupe ID - L'ID du groupe alias utilisés par les agents de composer les appels de l'agent VICIDIAL interface avec différents Caller ID. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur. + +
+
+
+ Nom du groupe Alias - Le nom utilisé pour décrire un groupe d'emprunt, doit être compris entre 2 et 50 caractères de longueur. + +
+
+
+ Numéro d'identification de l'appelant - Le numéro d'identification de l'appelant utilisée dans ce groupe Alias. Chiffres doivent être. + +
+
+
+ Nom d'identification de l'appelant - Le nom d'identification de l'appelant qui peut être envoyé à ce groupe Alias. Pour autant que nous sachions ce qui ne fera que travailler au Canada sur les circuits PRI et l'utilisation d'un tronc IAX boucle par Asterisk. + + + + +



+ + TABLE DES SERVEURS

+
+
+ ID du Sevreur - C'est ici que vous mettez le nom du serveur Asterisk, il n'est pas obligatoire de mettre le sous dommaine, juste un nom pour identifier le seveur pour les administrateurs. + +
+
+
+ Descritpion du serveur - Petite description du serveur asterisk. + +
+
+
+ Adresse IP du serveur - Le champs dans lequel vous mettez l'adresse IP du serveur Asterisk. + +
+
+
+ Actif - Mettre si le serveur Asterisk est actif ou non. + +
+
+
+ Système de charge - Ces deux statistiques montrent loadavg la fois d'un système 100 et le pourcentage d'utilisation CPU du serveur et est mis à jour chaque minute. Le loadavg devrait être en moyenne inférieure à 100 multiplié par le nombre de noyaux de CPU de votre système a, pour des performances optimales. Le pourcentage d'utilisation CPU devrait rester en dessous de 50 pour une performance optimale. + +
+
+
+ Live Chaînes - Ce champ indique le nombre actuel d'Asterisk canaux qui sont en direct sur le système dès maintenant. Il est important de noter que le nombre de canaux Asterisk est habituellement beaucoup plus élevé que le nombre d'appels sur un système. Ce champ est mis à jour une fois chaque minute. + +
+
+
+ Disk Usage - Ce champ montre l'utilisation du disque pour chaque partition sur ce serveur. Ce champ est mis à jour une fois chaque minute. + +
+
+
+ Version d'Asterisk - Mettre la version d'asterisk que vous avez installé sur ce serveur. Examples: ' 1.2 ', ' 1.0.8 ', ' 1.0.7 ', 'CVS_HEAD', 'REALLY OLD', etc... Ceci est utilisé car les versions 1.0.8 et 1.0.9 ont une methode differente pour gérer les canaux Local/, un bug qui a été fixé dans le CVS v1.0, et qui nescessite d'être traité differement quand les canaux Local/ sont manipulés. Aussi, la version courante CVS_HEAD et l'arbre 1.2 utilisent des managers et des commandes différentes, qui doivent donc être traités différemment.. + +
+
+
+ Nombre maximum de trunks VICIDIAL - Ce champ détermine le nombre maximum de lignes que l'appel automatique de VICIDIAL essayera d'appeler sur ce serveur. Si vous voulez consacrer pleinement deux PRI T1s à VICIDIAL sur un serveur vous devriez mettre ce champ à 46. La valeur par defaut est 96. + +
+
+
+ Max demande par seconde - Ce paramètre détermine le nombre maximum d'appels qui peuvent être mis par la sortie d'auto-script d'appel sur ce serveur par seconde. Doit être de 1 à 100. La valeur par défaut est 20. + +
+
+
+ Hôte telnet - C'est l'adresse ou le nom du serveur Asterisk et c'est comme cela que les applications managers se connectent au sevreur quand elle sont lancées. Si les applications managers sont lancées sur le serveur Asterisk, alors la valeur par defaut 'localhost' fonctionne bien . + +
+
+
+ Port telnet - C'est le port de connection au manager du serveur Asterisk c'est par ceului-ci que les applications managers se connectent. La valeur par defaut '5038' fonctionne bien avec une installation standard. + +
+
+
+ Utilisateur du manager - C'est l'utilisateur utilisé pour la connection au manager Asterisk. La valeur par défaut est 'cron' + +
+
+
+ Mot de passe du manager - Le secret ou mot de passe utilisé pour ce connecter au manager Asterisk. La valeur par defaut est '1234' + +
+
+
+ Utilisateur du manager pour les mises à jour - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts de mise à jour. La valeur par defaut est 'updatecron' et a le même secret que l'utilisateur générique. + +
+
+
+ Utilisateur du manager pour l'écoute - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui écoutent la sortie seulement. La valeur par défaut est 'listencron' et a le même secret que l'utilisateur générique. + +
+
+
+ Utilisateur du manager pour l'envoi - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui envoient des actions au manager. La valeur par défaut est 'sendcron' et a le même secret que l'utilisateur générique. + +
+
+
+ Conf dossier secret - C-est le secret ou mot de passe, pour le serveur dans l-auto-généré IAX fichier de conf pour ce serveur sur d-autres serveurs. La limite est de 20 caractères alphanumériques tiret de soulignement et acceptée. Par défaut est test. + +
+
+
+ Décalage GMT du serveur -La difference en heure par rapport à l'heure GMT non ajustée pour Les Daylight-Savings-Time du serveur. Par defaut '-5' + +
+
+
+ Exten VMail Dump - Le prefix de l'extention utilisé sur ce serveur pour lancer des appels directement depuis agc vers une boite vocale spécifique. La valeur par defaut est '85026666666666' + +
+
+
+ Extension de VICIDIAL AD - L'extension par défaut si personne n'est présent dans la campagne qui permet de lancer des appels pour l'appel automatique de VICIDIAL. La valeur par defaut est '8365' + +
+
+
+ Contexte par défaut - Le contexte par defaut utilisé par les scripts qui opèrent sur ce serveur. La valeur par défaut est 'default' + +
+
+
+ Performances du système - Mettre cette option à Y permet de loger les statistiques des performances du système, incluant la charge du système, les processus et les canaux Asterisk utilisés. La valeur par défaut est N. + +
+
+
+ Logs du serveur - Mettre cette option à Y permet de loger tous les scripts liés à Asterisk dans leurs fichiers textes de log. Mettre cette option à N arrête le logs dans les fichiers pour ces processus, et de ce fait désactive l'écran de log de Asterisk si cette option est à N quand Asterisk démarre. La valeur par défaut est Y. + +
+
+
+ Sortie des scripts AGI - Mettre cette option à NONE désactive toutes les sorties des scripts AGI de VICIDIAL. La mettre à STDERR enverra les sorties des scripts AGI à la CLI Asterisk. Mettre cette option à FILE enverra les sorties dans un fichiers dans le répertoire des logs. Mettre cette option à BOTH enverra les sorties à la fois vers la CLI Asterisk et dans le fichier de log. La valeur par défaut est FILE. + +
+
+
+ Appel équilibré VICIDIAL -<\/B> Définir ce champ à Y permettra au serveur de placer des appels équilibrés pour les campagnes dans VICIDIAL de sorte que le niveau d'appel défini puisse être atteint même s'il n'y a aucun agent connecté dans cette campagne sur ce serveur. La valeur par défaut est N. + +
+
+
+ VICIDIAL Solde Rank - Ce champ vous permet de définir l-ordre dans lequel ce serveur doit être utilisé pour la composition à l-équilibre, si vous appelez l-équilibre est activé. Le serveur avec le plus haut rang sera utilisé en premier dans le placement de la balance remplir appels. Par défaut est 0. + +
+
+
+ Limite de l'équilibrage VICIDIAL -<\/B> Cette option définit le nombre de trunks à ne pas utiliser pour l'équilibrage des appels VICIDIAL. Par exemple si vous avez 40 trunks vicidial et la limite d'équilibrage VICIDIAL définie à 10 vous ne pourrez utiliser que 30 trunks pour l'équilibrage VICIDIAL. La valeur par défaut est 0. + +
+
+
+ Enregistrement Web Link - Ce paramètre permet d'outrepasser les paramètres par défaut de l'affichage de l'enregistrement de lien dans l'admin des pages web. La valeur par défaut est SERVER_IP. + +
+
+
+ Autre enregistrement IP du serveur - Ce paramètre est l'endroit où vous pouvez mettre une IP de serveur de nom de machine ou d'autres qui peuvent être utilisés à la place de la server_ip dans les liens d'enregistrements au sein de l'administration des pages Web. La valeur par défaut est vide. + +
+
+
+ Asterisk Active Server - Si Asterisk ne fonctionne pas sur ce serveur, ou si VICIDIAL ne devrait pas utiliser ce serveur, ou si seulement ce serveur en utilisant des scripts pour d'autres comme la trémie de chargement de script que vous souhaiteriez mettre à la N. La valeur par défaut est Y. + +
+
+
+ Active Server Agent - La définition de cette option pour empêcher que des agents N sera d-être capable de se connecter à ce serveur à travers l-écran de l-agent VICIDIAL. Ceci est très utile lorsque vous utilisez une charge de connexion de configuration du téléphone équilibrée. Par défaut est Y.. + +
+
+
+ Générer des fichiers de conf - Si vous souhaitez que le système d'auto-générer des fichiers de conf astérisque sur la base des entrées de téléphones, le transporteur et l'équilibrage de charge des entrées de configuration dans VICIDIAL puis mettre à la valeur par défaut est Y. Y. + +
+
+
+ Reconstruire les fichiers conf - Si vous voulez forcer une reconstruction de la conf Asterisk fichiers ou si l'une des entrées de porte ou les téléphones ont changé, alors ceci doit être réglé sur Y. Après la conf des fichiers ont été générés et Asterisk a été rechargée alors ce sera changée pour N. La valeur par défaut est Y. + +
+
+
+ Reconstruire la musique d-attente - Si vous voulez forcer une reconstruction de la musique sur fichiers contiennent ou si la musique sur les entrées de détenir ou des entrées de serveur ont changé, alors ceci doit être réglé sur Y. Après la musique d-attente les fichiers ont été synchronisés et rechargés alors ce sera changée à N. défaut est Y.. + +
+
+
+ Mise à jour de sons - Si vous voulez forcer une vérification des fichiers sonores sur ce serveur, et la banque centrale audio est activée d-un paramètre système, ce champ permettra aux sons de mise à jour à courir au début de la prochaine minute. Chaque fois qu-un fichier audio est téléchargé à partir de l-interface web de ce contrat est automatiquement réglé sur Y pour tous les serveurs qui ont activement Asterisk. Par défaut est n. + +
+
+
+ VICIDIAL Recording Limit - Ce champ est l-endroit où vous définissez le nombre maximal de minutes durant laquelle un enregistrement d-appel lancé par VICIDIAL peut l-être. Par défaut est de 60 minutes. + +
+
+
+ Carrier Logging Active - Ce paramètre vous permet d-enregistrer l-ensemble des codes de retour de raccrochage pour tout composant la liste des appels sortants que vous passez. Par défaut est N. + + + + + + +



+ + vicidial_conf_templates TABLE

+
+
+ Template ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le modèle de configuration à travers le système. + +
+
+
+ Nom du modèle - C'est le nom descriptif du modèle de fichier de configuration d'entrée. + +
+
+
+ Template Sommaire - Ce domaine est l'endroit où vous pouvez entrer dans les paramètres spécifiques pour être utilisés par tous les téléphones et / ou les transporteurs qui sont mis à utiliser ce modèle de conf. Les champs qui ne doivent PAS être inclus dans cette zone sont: le secret, accountcode, compte, nom d'utilisateur et boîte aux lettres. + + + + + +



+ + vicidial_server_carriers TABLE

+
+
+ Carrier ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le transporteur pour cette entrée spécifique dans l'ensemble du système. + +
+
+
+ Nom du transporteur - C'est le nom descriptif de la porte d'entrée. + +
+
+
+ Carrier Description - Ceci est mis dans les commentaires des fichiers de conf asterisk-dessus du plan de numérotation et des entrées de compte. Maximum 255 caractères. + +
+
+
+ Inscription String - Ce domaine est l'endroit où vous pouvez entrer dans la chaîne exacte nécessaire dans le IAX ou SIP pour enregistrer le fichier de configuration pour le fournisseur. Facultatif mais fortement recommandé si votre opérateur permet l'enregistrement. + +
+
+
+ Template ID - Ce champ facultatif permet de choisir un modèle de fichier de conf de ce transporteur entrée. + +
+
+
+ Compte Entrée - Ce champ est utilisé si vous n'avez pas choisi un modèle à utiliser, et c'est là où vous pouvez entrer dans les paramètres du compte à utiliser pour ce transporteur. Si vous prenez en appels entrants à partir de ce transporteur tronc, vous pouvez définir le contexte = trunkinbound dans ce domaine, de sorte que vous pouvez utiliser le processus de traitement des DID dans VICIDIAL. + +
+
+
+ Protocole - Ce domaine vous permet de définir le protocole à utiliser pour le transporteur d'entrée. Actuellement, seuls SIP et IAX sont soutenus. + +
+
+
+ Globals String - Ce champ facultatif permet de définir une variable globale à utiliser pour le transporteur de la dialplan. + +
+
+
+ Entrée Dialplan - Ce champ facultatif permet de définir un ensemble de dialplan entrées à utiliser pour ce transporteur. + +
+
+
+ IP du serveur - Il s'agit du serveur que ce support est associé à enregistrer. + +
+
+
+ Active - Cela définit si le transporteur sera inclus dans l'auto-générés ou non les fichiers conf. + + + + + +



+ + TABLE DES CONFERENCES

+
+
+ Numéro de la conférence - Ce champ permet de mettre le numéro du meetme pour les conférences. Il est aussi recommandé que le numéro du meetme dans meetme.conf corresponde à ce numéro pour chaque entrée. C'est pour les conférences dans astGUIclient et est utilisé pour la fonction leave-3way-call dans VICIDIAL. + +
+
+
+ IP du serveur - C'est le menu dans lequel vous choisissez le serveur Asterisk sur lequel sera cette conférence. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_MallesTABLE

+
+
+ Les trunks du serveur VICIDIAL vous permettent de limiter les lignes sortantes qui sont utilisées sur ce serveur sur une base par-campagne. Vous avez la possibilité de reserver un nombre spécifique de lignes à utiliser par seulement une campagne aussi bien que permettre à cette campagne d'utiliser plus de lignes que celles reservées si il en reste de libre, tant que le nombre maximum de ligne utilisées par Vicidial sur ce serveur est inférieur au nombre de trunks VICIDIAL maximum défini. Avoir aucun de ces réglages permet à la campagne qui appel en premier d'avoir autant de lignes qu'elle le peut sous le nombre max de lignes VICIDIAL défini. + + + + + +



+ + SYSTEM_SETTINGS TABLE

+
+
+ Utiliser Non-Latin - Cette option vous permet d'utiliser les caractères UTF8 pour l'affichage web des scripts, et de ne pas utiliser des filtres d'expressions régulières latin-character-family ou de formater l'affichage. La valeur par défaut est 0. + +
+
+
+ Webroot éditable - Cette option vous permet de définir si les fichiers temporaires et les fichiers d'authentification doivent être placés dans le webroot sur le serveur web. La valeur par défaut est 1. + +
+
+
+ Affichage de la désactivation d'un agent VICIDIAL - Ce champ est utilisé pour selectionné quand montrer à un agent que ça session à été désactivée par le système, une action du manager ou par une mesure externe. NOT_ACTIVE désactivera l'affichage d'un message sur l'écran de l'agent. LIVE_AGENTS affichera seulement le message de désactivation quand les enregistrements vicidial_auto_calls des agents ont été modifiés, comme lors d'une déconnection forcée ou d'une déconnection de secours. + +
+
+
+ Autoriser les messages SIPSAK - Si défini à 1, cela permettra aux téléphones à fonctionner correctement, le serveur enverra des messages à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction fonctionne seulement avec des téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0. + +
+
+
+ Agent API Active - Si définie à 1, cela permet à l'agent d'interface API pour fonctionner. La valeur par défaut est 0. + +
+
+
+ URL de l'acceuil de l'administration - C'est l'URL ou l'adresse du site web ou vous voulez aller quand vous cliquez sur le lien ACCUEIL en haut de la page admin.php. + +
+
+
+ Permettez le fichier journal de transfert d'agent - cette optionnotera à un fichier journal des textes sur le webserver chaque foisqu'un appel est transféré à un agent. Le défaut est 0,neutralisé. + +
+
+
+ Horloge en temps Fin de la journée - Ce paramètre définit lorsque tous les utilisateurs sont automatiquement déconnecté du système timeclock. Fonctionne uniquement une fois par jour. ne doit être que 4 chiffres et 2 chiffres heures à 2 chiffres dans les minutes de 24 heures. La valeur par défaut est 0000. + +
+
+
+ Dernière timeclock Auto Déconnection - Ce champ affiche la date de la dernière auto-logout. + +
+
+
+ Agent Header Screen Format Date - Ce menu vous permet de choisir le format de la date qui apparaît en haut de l'écran VICIDIAL agent. Les options de ce paramètre sont les suivants: valeur par défaut est MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Par défaut avec le format de la date année mois jour suivie par 24 heures,
+ US_SLASH_24HR 06/24/2008 23:59:59 - Etats-Unis avec le format de la date mois jour année suivie par 24 heures,
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Européen de format de date avec jour mois année suivie par 24 heures,
+ AL_TEXT_24HR JUN 24 23:59:59 - Texte de format de date avec abrégée mois jour suivie par 24 heures,
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Par défaut avec le format de la date année mois jour , suivies de 12 heures
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Etats-Unis avec le format de la date mois jour année , suivies de 12 heures
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Européen de format de date avec jour mois année , suivies de 12 heures
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texte de format de date avec abrégée mois jour , suivies de 12 heures
+ +
+
+
+ Agent client Screen Format Date - Ce menu vous permet de choisir le format de la date du fuseau horaire client qui apparaît en haut de la section d'information à la clientèle agent VICIDIAL de l'écran. Les options pour ce paramètre sont les suivants: valeur par défaut est AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Par défaut avec le format de la date année mois jour suivie par 24 heures,
+ US_SLASH_24HR 06/24/2008 23:59:59 - Etats-Unis avec le format de la date mois jour année suivie par 24 heures,
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Européen de format de date avec jour mois année suivie par 24 heures,
+ AL_TEXT_24HR JUN 24 23:59:59 - Texte de format de date avec abrégée mois jour suivie par 24 heures,
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Par défaut avec le format de la date année mois jour , suivies de 12 heures
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Etats-Unis avec le format de la date mois jour année , suivies de 12 heures
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Européen de format de date avec jour mois année , suivies de 12 heures
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texte de format de date avec abrégée mois jour , suivies de 12 heures
+ +
+
+
+ Agent Client Téléphone Screen Format - Ce menu vous permet de choisir le format du client le numéro de téléphone qui apparaît dans la section du statut de la VICIDIAL agent écran. Les options pour ce paramètre sont les suivants: valeur par défaut est US_PARN
+ US_DASH 000-000-0000 - USA tableau de bord séparés numéro de téléphone
+ US_PARN (000)000-0000 - USA Numéro de tableau de bord séparés avec le code régional entre parenthèses
+ MS_NODS 0000000000 - Pas de formatage
+ UK_DASH 00 0000-0000 - UK tableau de bord séparés numéro de téléphone avec l'espace après le code de ville
+ AU_SPAC 000 000 000 - Australia espace séparé numéro de téléphone
+ IT_DASH 0000-000-000 - Italy tableau de bord séparés numéro de téléphone
+ FR_SPAC 00 00 00 00 00 - France espace séparé numéro de téléphone
+ +
+
+
+ Agent interface API Access Active - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Agent Only Lock Campagne de rappel - Cette option définit si rappels AGENTONLY sont enfermés à la campagne que l-agent a initialement créé sous. Mettre ce paramètre à 1 signifie que l-agent ne peut les composer dans la campagne, ils ont été définies sous, 0 signifie que l-agent peut y accéder quel que campagne, ils sont connecté. Par défaut est 1. + +
+
+
+ Central Sound Control Active - Cette option définit si le système de synchronisation sonore est actif sur tous les serveurs. Par défaut est 0 pour inactif. + +
+
+
+ Sounds Web Server - C-est le nom du serveur ou l-adresse IP du serveur Web qui sera la manipulation des fichiers sonores sur ce système, cela doit correspondre le nom du serveur ou adresse IP de la machine que vous essayez d-accéder à la page Web audio_store.php sur ou ça ne marchera pas . Par défaut est 127.0.0.1. + +
+
+
+ Sounds Web Directory - Cette auto-générés nom du répertoire est créé au hasard par le système comme étant le lieu que le magasin audio seront conservés. Tous les fichiers audio se trouver dans ce répertoire. + +
+
+
+ Active Server Boîte vocale - Dans les systèmes multi-serveur, c-est le serveur qui va gérer toutes les boîtes de messagerie vocale. Ce serveur est également lorsque le dial-in générée invites seront téléchargées à partir, le 8168 enregistrements. + +
+
+
+ Auto-Outbound Dial Active - Cette option vous permet d'activer ou désactiver la numérotation automatique sortants dans VICIDIAL, la mise en ce domaine à 0 supprime les listes et FILTRES sections et de nombreux champs de la campagne Modification écrans. Manuel de l'entrée de numérotation sera encore autorisée au sein de l'agent de l'écran, mais pas de liste d'appel ne sera possible. La valeur par défaut est 1 pour les actifs. + +
+
+
+ Ratio Dial Limit - C-est la limite maximale du niveau automatique ligne dans l-écran de campagne. + +
+
+
+ Max REMPLISSAGE demande par seconde - Ce paramètre détermine le nombre maximum d'appels qui peuvent être placés par les auto-FILL sortie d'auto-script de numérotation pour tous les serveurs, par seconde. Doit être de 1 à 200. La valeur par défaut est 40. + +
+
+
+ Permettant de personnaliser le plan d-appel Entrées - Cette option vous permet de saisir des lignes sur mesure plan de numérotation dans CALL Menus. Par défaut est 0 pour inactif. + +
+
+
+ Territoires utilisateur Active - Ce paramètre vous permet d-activer les Territoires utilisateur setttings de l-écran de modification de l-utilisateur. Cette fonctionnalité a été ajoutée afin de permettre une plus grande intégration avec une installation personnalisée Vtiger mais peut avoir des applications dans un système VICIDIAL purs ainsi. Par défaut est 0 pour les handicapés. + +
+
+
+ Activer Webform Deuxième - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Activer TTS Intégration - Ce paramètre vous permet d-activer l-intégration Text To Speech avec Cepstral. Ce n-est actuellement disponible pour les campagnes Enquête sortants type. Par défaut est 0 pour les handicapés. + +
+
+
+ Caractéristiques QC Active - Cette option vous permet d'activer ou désactiver le contrôle de la qualité ou QC fonctionnalités. La valeur par défaut est 0 pour les inactifs. + +
+
+
+ Activer le log des QueueMetrics - Cette option vous permet de définir si VICIDIAL va insérer les données des logs dans la table queue_log comme le fait Asterisk. QueueMetrics est un programme d'analyse de statistiques autonome et non open-source. Vous devez avoir installé et configuré QueueMetrics pour activer cette option. La valeur par défaut est 0. + +
+
+
+ IP du serveur QueueMetrics - C'est l'adresse IP de la base de données pour votre installation de QueueMetrics. + +
+
+
+ Nom de la base de données de QueueMetrics - C'est le nom de la base de données de QueueMetrics. + +
+
+
+ Login de la base de données de QueueMetrics - C'est le login utilisé pour se connecter à la base de données QueueMetrics. + +
+
+
+ Mot de passe de la base de données de QueueMetrics - C'est le mot de passe utilisé pour se connecter à la base de données QueueMetrics. + +
+
+
+ URL de QueueMetrics - C'est l'URL ou l'adresse du site web utilisé pour atteindre QueueMetrics. + +
+
+
+ Identifiant des log de QueueMetrics - C'est l'identifiant du serveur que tout les logs VICIDIAL dans la base de données de QueueMetrics vont utiliser pour chaque enregistrement. + +
+
+
+ QueueMetrics EnterQueue Prepend -<\/B> Ce champ est utilisé pour autorisé à ajouter un des champs des données de vicidial_list devant le numéro de téléphone du client pour personnaliser les rapports QueueMetrics. La valeur par défaut est NONE pour ne pas peupler n'importe quoi. + +
+
+
+ Activer Vtiger Integration - Ce paramètre vous permet d'activer l'intégration avec Vtiger VICIDIAL. Actuellement, des liens vers Vtiger admin et de recherche ainsi que l'utilisateur de réplication sont les seules fonctions d'intégration disponibles. La valeur par défaut est 0. + +
+
+
+ Vtiger DB IP du serveur - Il s'agit de l'adresse IP de la base de données de votre installation Vtiger. + +
+
+
+ Vtiger Database Name - C'est le nom de base de données de votre base de données Vtiger. + +
+
+
+ Vtiger Database Login - C'est le nom d'utilisateur utilisé pour vous connecter à votre base de données Vtiger. + +
+
+
+ Vtiger Database Password - Il s'agit du mot de passe utilisé pour vous connecter à votre base de données Vtiger. + +
+
+
+ Vtiger Web - Il s'agit de l'URL ou adresse du site Web utilisé pour accéder à votre installation Vtiger. + + +



+ + VICIDIAL_STATUSES TABLE

+
+
+ Par l'utilisation des statuts de système, vous pouvez avoir desstatuts qui existent pour la campagne et le dans-groupe. Le statutdoit être 1-6 caractères de longueur, la description doit être 2-30caractères de longueur et sélectionnable définit si elle apparaîtdans VICIDIAL comme disposition d'agent. Human_answered le champ estemployé en calculant le pourcentage de baisse, ou le taux d'abandon.L'arrangement human_answered à Y emploiera ce statut en comptant lesappels humain-répondus. L'option de catégorie vous permet de grouperplusieurs statuts dans un catogy qui peut être employé pourl'analyse statistique. Il ya également 5 autres paramètres qui définiront le type de statut: vente, DNC, contact client, pas intéressé, impossible. + + + +



+ + VICIDIAL_STATUS_CATEGORIES TABLE

+
+
+ Par l'utilisation des catégories de statut de système, vous pouvezgrouper ensemble des statuts pour tenir compte de l'analysestatistique sur un groupe de statuts. L'identification de catégoriedoit être 2-20 caractères de longueur sans les espaces, le nom doitêtre 2-50 caractères de longueur, la description est facultative etl'affichage de TimeonVDAD définit si ce statut sera un de jusqu'à 4statuts qui peuvent être calculés et montrés le temps sur lerapport de temps réel de VDAD. La vente et la catégorie Dead Lead Catégorie sont tous deux utilisés par le système de liste de suggestions lors de l'analyse de la liste des statistiques. + + + 0) + { + ?> +



+ + VICIDIAL QC ÉTAT DES CODES

+
+
+ Le contrôle de la qualité au sein du système-QC VICIDIAL a son propre ensemble de codes distincts de ceux dans le traitement des appels de fonctions VICIDIAL. QC statuse codes doit être comprise entre 2 et 8 caractères et ne contiennent pas de caractères spéciaux, comme un espace ou du côlon. Le code de statut QC description doit être comprise entre 2 et 30 caractères. + + + + +







+







+ LA FIN +
+ - - - -







-







-LA FIN -
-\n"; - echo "\n"; - echo "\n"; - echo ""; - - $stmt="SELECT dial_statuses,local_call_time,lead_filter_id from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $dial_statuses = $row[0]; - $local_call_time = $row[1]; - if ($lead_filter_id=='') { - $lead_filter_id = $row[2]; - if ($lead_filter_id=='') + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') { - $lead_filter_id='NONE'; + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Montrer le nombre de fiches désactivées -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTES: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; } - - $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; - $rslt=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rslt); - $camp_lists=''; - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; - if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} - } - $camp_lists = eregi_replace(".$","",$camp_lists); - - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} else - {$fSQL = '';} - - - echo "

\n"; - echo "Montrer le nombre de fiches désactivées -

\n"; - echo "CAMPAIGN: $campaign_id
\n"; - echo "LISTES: $camp_lists
\n"; - echo "STATUSES: $dial_statuses
\n"; - echo "FILTER: $lead_filter_id
\n"; - echo "CALL TIME: $local_call_time

\n"; - - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - - echo "

\n"; - echo "\n"; - - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } - else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; - } -} ###################### @@ -5141,7 +6154,7 @@ if ($ADD==7111111) $country_code = 'USA'; $gender = 'M'; $date_of_birth = '1970-01-01'; - $alt_phone = '3125551212'; + $alt_phone = '3125551111'; $email = 'test@test.com'; $security_phrase = 'SECUTIRY'; $comments = 'COMMENTS FIELD'; @@ -5159,17 +6172,32 @@ if ($ADD==7111111) $RGserver_ip = '10.10.10.15'; $RGSIPexten = 'SIP/gs102'; $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; echo "\n"; echo "\n"; echo "\n"; echo ""; - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $script_name = $row[1]; - $script_text = $row[3]; + $script_text = stripslashes($row[3]); if (eregi("iframe src",$script_text)) { @@ -5210,6 +6238,21 @@ if ($ADD==7111111) $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); } $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); @@ -5250,6 +6293,21 @@ if ($ADD==7111111) $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); $script_text = eregi_replace("\n","
",$script_text); @@ -5289,6 +6347,17 @@ if ($ADD=="1") { if ($LOGmodify_users==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; @@ -5296,7 +6365,14 @@ if ($ADD=="1") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Numéro d'utilisateur : $NWB#vicidial_users-user$NWE
Numéro d'utilisateur : Auto-Generated $NWB#vicidial_users-user$NWE
Numéro d'utilisateur : $NWB#vicidial_users-user$NWE
Mot de passe:$NWB#vicidial_users-pass$NWE
Nom complet: $NWB#vicidial_users-full_name$NWE
Niveau de l'utilisateur:
\n"; echo ""; @@ -5352,7 +6439,14 @@ if ($ADD=="1A") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -5394,26 +6488,99 @@ if ($ADD==11) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Numéro d'utilisateur : $NWB#vicidial_users-user$NWE
Numéro d'utilisateur : Auto-Generated $NWB#vicidial_users-user$NWE
Numéro d'utilisateur : $NWB#vicidial_users-user$NWE
Mot de passe:$NWB#vicidial_users-pass$NWE
Nom complet: $NWB#vicidial_users-full_name$NWE
\n"; echo ""; echo "
AJOUTER UNE NOUVELLE CAMPAGNE
\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; @@ -5424,7 +6591,11 @@ if ($ADD==11) echo "\n"; - echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID de la campagne: $NWB#vicidial_campaigns-campaign_id$NWE
ID de la campagne: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID de la campagne: $NWB#vicidial_campaigns-campaign_id$NWE
Nom de la campagne: $NWB#vicidial_campaigns-campaign_name$NWE
Description de la campagne: $NWB#vicidial_campaigns-campaign_description$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Extension du parc: $NWB#vicidial_campaigns-park_ext$NWE
Nom du fichier de mise en attente: $NWB#vicidial_campaigns-park_file_name$NWE
Formulaire Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulaire Web: $NWB#vicidial_campaigns-web_form_address$NWE
Autoriser les closers: $NWB#vicidial_campaigns-allow_closers$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Appeler l'agent suivant : $NWB#vicidial_campaigns-next_agent_call$NWE
Appeler l'agent suivant : $NWB#vicidial_campaigns-next_agent_call$NWE
Heure d'appel locale: $NWB#vicidial_campaigns-local_call_time$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Lancer l'appel: $NWB#vicidial_campaigns-get_call_launch$NWE
Lancer l'appel: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; } @@ -5444,13 +6615,31 @@ if ($ADD==12) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
CopieUne CAMPAGNE\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID de la campagne: $NWB#vicidial_campaigns-campaign_id$NWE
ID de la campagne: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID de la campagne: $NWB#vicidial_campaigns-campaign_id$NWE
Nom de la campagne: $NWB#vicidial_campaigns-campaign_name$NWE
Campagne De Source :
\n"; echo ""; echo "
ADD A NEW LIST\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
ID de la liste: (chiffres seulement)$NWB#vicidial_lists-list_id$NWE
ID de la liste: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID de la liste: (chiffres seulement)$NWB#vicidial_lists-list_id$NWE
Nom de la liste: $NWB#vicidial_lists-list_name$NWE
Description de la liste: $NWB#vicidial_lists-list_description$NWE
Campagne: \n"; echo "
\n"; echo "\n"; echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } echo "\n"; echo "
List:
Numéros de téléphone:

(un numéro de téléphone par ligne seulement)
$NWB#vicidial_list-dnc$NWE
Ajouter ou Supprimer:
\n"; } @@ -5628,24 +6898,45 @@ if ($ADD==1111) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
AJOUTER UN NOUVEAU GROUPE ENTRANT\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID du groupe: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
ID du groupe: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID du groupe: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nom du groupe: $NWB#vicidial_inbound_groups-group_name$NWE
Couleur du groupe: $NWB#vicidial_inbound_groups-group_color$NWE
Actif: $NWB#vicidial_inbound_groups-active$NWE
Formulaire Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Formulaire Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Boîte vocale: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Appeler l'agent suivant : $NWB#vicidial_inbound_groups-next_agent_call$NWE
Appeler l'agent suivant : $NWB#vicidial_inbound_groups-next_agent_call$NWE
Affichage de l'enseigne: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Lancer l'appel: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Lancer l'appel: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; } @@ -5665,13 +6956,31 @@ if ($ADD==1211) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
GROUPE D'ARRIVÉE DE COPY\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID du groupe: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
ID du groupe: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID du groupe: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nom du groupe: $NWB#vicidial_inbound_groups-group_name$NWE
Source ID du groupe:
\n"; + echo ""; + + echo "
PROPOSER UN NOUVEL APPEL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nom du menu: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nom du menu: $NWB#vicidial_call_menu-menu_name$NWE
Menu Source: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + ###################### # ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN ###################### @@ -5821,13 +7238,31 @@ if ($ADD==111111) { if ($LOGmodify_usergroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
AJOUTER UN NOUVEAU GROUPE D'UTILISATEUR\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Groupe: (pas d'espace ni de ponctuation)$NWB#vicidial_user_groups-user_group$NWE
Groupe: Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Groupe: (pas d'espace ni de ponctuation)$NWB#vicidial_user_groups-user_group$NWE
Description: (Description du groupe)$NWB#vicidial_user_groups-group_name$NWE
\n"; @@ -5848,13 +7283,32 @@ if ($ADD==1111111) { if ($LOGmodify_scripts==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
ADD NEW SCRIPT\n"; echo "\n"; + echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -5898,6 +7352,16 @@ if ($ADD==1111111) echo ""; echo ""; echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; echo ""; echo "
"; # END Insert Field @@ -5921,13 +7385,31 @@ if ($ADD==11111111) { if ($LOGmodify_filters==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
ID du script: (pas d'espace ni de ponctuation)$NWB#vicidial_scripts-script_id$NWE
ID du script: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
ID du script: (pas d'espace ni de ponctuation)$NWB#vicidial_scripts-script_id$NWE
Nom du script: (titre du script)$NWB#vicidial_scripts-script_name$NWE
Commentaires du script: $NWB#vicidial_scripts-script_comments$NWE
Actif: $NWB#vicidial_scripts-active$NWE
\n"; echo ""; echo "
AJOUTER UN NOUVEAU FILTRE\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6051,6 +7533,17 @@ if ($ADD==11111111111) { if ($LOGast_admin_access==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
ID du filtre: (pas d'espace ni de ponctuation)$NWB#vicidial_lead_filters-lead_filter_id$NWE
ID du filtre:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
ID du filtre: (pas d'espace ni de ponctuation)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nom du filtre: (courte description du filtre)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commentaires du filtre: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtre Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; echo ""; @@ -6059,7 +7552,14 @@ if ($ADD==11111111111) echo "
\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6231,6 +7731,7 @@ if ($ADD==141111111111) echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "
Extension du téléphone: $NWB#phones-extension$NWE
Extension du téléphone: Auto-Generated $NWB#phones-extension$NWE
Extension du téléphone: $NWB#phones-extension$NWE
Nuémro dans le dial plan: (chiffres seulement)$NWB#phones-dialplan_number$NWE
Boîte vocale: (chiffres seulement)$NWB#phones-voicemail_id$NWE
CallerID sortant: (chiffres seulement)$NWB#phones-outbound_cid$NWE
Carrier ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Nom du transporteur: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Description: $NWB#vicidial_server_carriers-carrier_description$NWE
Inscription à cordes: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID:
\n"; + echo ""; + + echo "
ADD NEW ENTRY TTS\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Nom: $NWB#vicidial_tts_prompts-tts_name$NWE
Actif:
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC ON HOLD ENTRY\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Musique en attente d-identification: $NWB#vicidial_music_on_hold-moh_id$NWE
Musique d-attente Nom: $NWB#vicidial_music_on_hold-moh_name$NWE
Random Order:
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW messagerie vocale\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Boîte vocale ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Actif:
Email:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + ###################### # ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN ###################### @@ -6359,6 +7952,20 @@ if ($ADD==11111111111111) if ($ADD=="2") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6371,13 +7978,14 @@ if ($ADD=="2") { $user = 'AUTOGENERA'; } - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) { - echo "
UTILISATEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
le nom et le mot de passe doivent contenir au moins 2 caractères\n"; + echo "
UTILISATEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
le nom et le mot de passe doivent contenir au moins 2 caractères\n"; + echo "
Vous devez sélectionner un groupe d-utilisateurs\n"; } - else + else { if (ereg('AUTOGENERA',$user)) { @@ -6495,8 +8103,8 @@ if ($ADD=="2") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6504,7 +8112,7 @@ if ($ADD=="2") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6626,6 +8234,20 @@ if ($ADD=="2") if ($ADD=="2A") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6634,14 +8256,14 @@ if ($ADD=="2A") {echo "
UTILISATEUR NON AJOUTE - il y a déjà un utilisateur dans le système avec ce numéro d'utilisateur\n";} else { - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) { - echo "
UTILISATEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
le nom et le mot de passe doivent contenir au moins 2 caractères\n"; - echo "\n"; + echo "
UTILISATEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
le nom et le mot de passe doivent contenir au moins 2 caractères\n"; + echo "\n"; } - else + else { if (ereg('AUTOGEN',$user)) { @@ -6680,7 +8302,7 @@ if ($ADD=="2A") $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; $rslt=mysql_query($stmt, $link); } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -6763,8 +8385,8 @@ if ($ADD=="2A") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6772,7 +8394,7 @@ if ($ADD=="2A") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6899,6 +8521,20 @@ if ($ADD=="2A") if ($ADD==21) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6914,17 +8550,17 @@ if ($ADD==21) {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) { - echo "
CAMPAGNE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; - echo "
le nom de la campagne doit contenir entre 6 et 40 caractères\n"; + echo "
CAMPAGNE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; + echo "
le nom de la campagne doit contenir entre 6 et 40 caractères\n"; } - else + else { echo "
CAMPAGNE AJOUTEE: $campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED');"; + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; @@ -6949,6 +8585,20 @@ if ($ADD==21) if ($ADD==20) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6957,41 +8607,49 @@ if ($ADD==20) {echo "
CAMPAGNE NON AJOUTEE - il existe déjà une campagne dans le système avec cet ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else { - echo "
CAMPAGNE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; - echo "
source l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; - } - else - { - echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
CAMPAGNE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; + echo "
source l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias from vicidial_campaigns where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=31; @@ -7018,17 +8676,17 @@ if ($ADD==22) {echo "
STATUT DE LA CAMPAGNE NON AJOUTE - il y a déjà un statut global dans le système avec ce nom\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
STATUT DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
le statut doit contenir entre 1 et 8 caractères\n"; - echo "
le nom du statut doit contenir entre 2 et 30 caractères\n"; + echo "
STATUT DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 8 caractères\n"; + echo "
le nom du statut doit contenir entre 2 et 30 caractères\n"; } - else + else { echo "
STATUT DE LA CAMPAGNE AJOUTE: $campaign_id - $status\n"; - $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -7064,13 +8722,13 @@ if ($ADD==23) {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
RACCOURCI CLAVIER DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
hotkey must be a single character between 1 and 9 \n"; - echo "
le statut doit contenir entre 1 et 8 caractères\n"; + echo "
RACCOURCI CLAVIER DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
le statut doit contenir entre 1 et 8 caractères\n"; } - else + else { echo "
RACOURCI CLAVIER DE LA CAMPAGNE AJOUTE: $campaign_id - $status - $hotkey\n"; @@ -7106,14 +8764,14 @@ if ($ADD==25) {echo "
RECYCLAGE DE FICHES DE LA CAMPAGNE NON AJOUTE - il y a déjà un recyclage de fiches pour cette campagne avec ce statut\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
le statut doit contenir entre 1 et 6 caractères\n"; - echo "
le délai d'attente doit être au moins 120 secondes et moins de 43,200 secondes ou 12 heures\n"; - echo "
le nombre d'essais maximum doit être compris entre 1 et 10\n"; + echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + echo "
le délai d'attente doit être au moins 120 secondes et moins de 43,200 secondes ou 12 heures\n"; + echo "
le nombre d'essais maximum doit être compris entre 1 et 10\n"; } - else + else { echo "
RECYCLAGE DES FICHES DE LA CAMPAGNE AJOUTE: $campaign_id - $status - $attempt_delay\n"; @@ -7149,12 +8807,12 @@ if ($ADD==26) {echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON AJOUTE - il y a déjà un entrée pour cette campagne avec ce statut\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
le statut doit contenir entre 1 et 6 caractères\n"; + echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; } - else + else { echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF AJOUTE: $campaign_id - $status\n"; @@ -7195,13 +8853,13 @@ if ($ADD==27) {echo "
CODE DE PAUSE NON AJOUTE - hay ya una entrada para esta campaña con este code\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
CODE DE PAUSE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
pause code must be between 1 and 6 characters in length\n"; - echo "
pause nom de code doit être compris entre 2 et 30 caractères\n"; + echo "
CODE DE PAUSE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause nom de code doit être compris entre 2 et 30 caractères\n"; } - else + else { echo "
CODE DE PAUSE AJOUTE: $campaign_id - $pause_code - $pause_code_name\n"; @@ -7237,12 +8895,12 @@ if ($ADD==28) {echo "
STATUT D'APPEL DE LA CAMPAGNE NON AJOUTE - il y a déjà un entrée pour cette campagne avec ce statut\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
STATUT D'APPEL DE LA CAMPAGNE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
le statut doit contenir entre 1 et 6 caractères\n"; + echo "
STATUT D'APPEL DE LA CAMPAGNE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; } - else + else { echo "
STATUT D'APPEL POUR LA CAMPAGNE AJOUTE: $campaign_id - $status\n"; @@ -7275,6 +8933,20 @@ if ($ADD==28) if ($ADD==211) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); @@ -7283,14 +8955,14 @@ if ($ADD==211) {echo "
LISTE NON AJOUTEE - il y a déjà une liste avec ce nom dans le système\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) { - echo "
LISTE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID de la liste doit contenir entre 2 et 8 caractères\n"; - echo "
Le nom de la liste doit contenir au moins 2 caractères\n"; - echo "
ID de la liste must be greater than 100\n"; - } - else + echo "
LISTE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la liste doit contenir entre 2 et 8 caractères\n"; + echo "
Le nom de la liste doit contenir au moins 2 caractères\n"; + echo "
ID de la liste must be greater than 100\n"; + } + else { echo "
LISTE AJOUTEE: $list_id\n"; @@ -7317,6 +8989,20 @@ if ($ADD==211) if ($ADD==2111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7332,15 +9018,15 @@ if ($ADD==2111) {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) { - echo "
GROUPE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID du groupe doit contenir entre 2 et 20 caractères et ne contenir aucun ' -+'.\n"; - echo "
Le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; + echo "
GROUPE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID du groupe doit contenir entre 2 et 20 caractères et ne contenir aucun ' -+'.\n"; + echo "
Le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch');"; + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,web_form_address_two,start_call_url,dispo_call_url) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; @@ -7368,6 +9054,20 @@ if ($ADD==2111) if ($ADD==2011) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7376,26 +9076,34 @@ if ($ADD==2011) {echo "
GROUPE NON AJOUTE - il y a déjà un groupe dans le système avec cet identifiant\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else { - echo "
GROUPE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID du groupe doit contenir entre 2 et 20 caractères et ne contenir aucun ' -+'.\n"; - echo "
Le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; - } - else - { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias from vicidial_inbound_groups where group_id=\"$source_group_id\";"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GROUPE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID du groupe doit contenir entre 2 et 20 caractères et ne contenir aucun ' -+'.\n"; + echo "
Le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); - echo "
GROUPE AJOUTE: $group_id\n"; + echo "
GROUPE AJOUTE: $group_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN GROUPE D'ARRIVÉE DE COPY', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN GROUPE D'ARRIVÉE DE COPY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=3111; @@ -7423,12 +9131,12 @@ if ($ADD==2311) {echo "
NE PAS AJOUTER - il ya déjà un DID dans le système avec cette extension\n";} else { - if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) { - echo "
NE PAS AJOUTER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
NE PAS AJOUTER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; $rslt=mysql_query($stmt, $link); @@ -7468,14 +9176,14 @@ if ($ADD==2411) {echo "
NE PAS AJOUTER - il ya déjà un DID dans le système avec cette extension\n";} else { - if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) { - echo "
NE PAS AJOUTER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
NE PAS AJOUTER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code from vicidial_inbound_dids where did_id=\"$source_did\";"; + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; $rslt=mysql_query($stmt, $link); $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; @@ -7498,6 +9206,115 @@ if ($ADD==2411) } +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU SANS ADDITION - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL MENU SANS ADDITION - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Appel menu ID doit être comprise entre 2 et 50 caractères de long et ne contiennent aucune ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU AJOUTEE: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU SANS ADDITION - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL MENU SANS ADDITION - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Appel menu ID doit être comprise entre 2 et 50 caractères de long et ne contiennent aucune ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL MENU AJOUTEE: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + ###################### # ADD=21111 adds new remote agents to the system ###################### @@ -7512,12 +9329,12 @@ if ($ADD==21111) {echo "
AGENT DISTANT NON AJOUTE - il y a déjà un agent distant avec cet identifiant\n";} else { - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
AGENT DISTANT NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères\n"; - } - else + echo "
AGENT DISTANT NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères\n"; + } + else { $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; $rslt=mysql_query($stmt, $link); @@ -7542,6 +9359,20 @@ if ($ADD==21111) if ($ADD==211111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -7550,12 +9381,12 @@ if ($ADD==211111) {echo "
GROUP D'UTILISATEURS NON AJOUTE - il y a déjà un groupe d'utilisateurs avec ce nom\n";} else { - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
GROUPE D'UTILISATEURS NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
Le nom et la description du groupe doivent contenir au moins 2 caractères\n"; - } - else + echo "
GROUPE D'UTILISATEURS NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le nom et la description du groupe doivent contenir au moins 2 caractères\n"; + } + else { $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; $rslt=mysql_query($stmt, $link); @@ -7621,8 +9452,8 @@ if ($ADD==211111) else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -7630,7 +9461,7 @@ if ($ADD==211111) if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -7656,6 +9487,20 @@ if ($ADD==211111) if ($ADD==2111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); @@ -7664,16 +9509,16 @@ if ($ADD==2111111) {echo "
SCRIPT NON AJOUTE - il y a déjà un script existant avec ce nom\n";} else { - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
SCRIPT NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Les nom, description et texte du script doivent contenir au moins 2 caractères\n"; - } - else + echo "
SCRIPT NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Les nom, description et texte du script doivent contenir au moins 2 caractères\n"; + } + else { - $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','$script_text','$active');"; + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; $rslt=mysql_query($stmt, $link); - + if ($DB > 0) {echo "|$stmt|";} echo "
SCRIPT AJOUTE: $script_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7695,6 +9540,20 @@ if ($ADD==2111111) if ($ADD==21111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; $rslt=mysql_query($stmt, $link); @@ -7703,16 +9562,17 @@ if ($ADD==21111111) {echo "
FILTRE NON AJOUTE - il y a déjà un filtre avec cet identifiant\n";} else { - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTRE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Identifiant du filtre, le nom et le SQL doivent au moins contenir 2 caractères\n"; - } - else + echo "
FILTRE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Identifiant du filtre, le nom et le SQL doivent au moins contenir 2 caractères\n"; + } + else { - $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='$lead_filter_sql';"; + $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
FILTRE AJOUTE: $lead_filter_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7742,15 +9602,16 @@ if ($ADD==211111111) {echo "
DEFINITION DE LA PERIODE D'APPEL NON AJOUTEE - il existe déjà une période d'appel avec cet ID\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
DEFINITION DE LA PERIODE D'APPEL NON AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID et le nom de la période d'appel doivent contenir au moins 2 caractères\n"; - } - else + echo "
DEFINITION DE LA PERIODE D'APPEL NON AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID et le nom de la période d'appel doivent contenir au moins 2 caractères\n"; + } + else { $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
PERIODE D'APPELS AJOUTEE: $call_time_id\n"; @@ -7781,15 +9642,16 @@ if ($ADD==2111111111) {echo "
DEFINITION DE LA PERIODE D'APPELS DE L'ETAT NON AJOUTE - il existe déjà une période d'appel avec cet ID\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
DEFINITION DE LA PERIODE D'APPELS DE L'ETAT NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID, le nom et l'état de l'appel doivent contenir au moins 2 caractères\n"; - } - else + echo "
DEFINITION DE LA PERIODE D'APPELS DE L'ETAT NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID, le nom et l'état de l'appel doivent contenir au moins 2 caractères\n"; + } + else { $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
PERIODE D'APPELS D'ETAT AJOUTEE: $call_time_id\n"; @@ -7812,6 +9674,20 @@ if ($ADD==2111111111) if ($ADD==231111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; $rslt=mysql_query($stmt, $link); @@ -7821,14 +9697,14 @@ if ($ADD==231111111) else { $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - echo "
MAJ définition pas AJOUTÉS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Shift ID et le nom doit être d'au moins 2 caractères\n"; - echo "
Start Time Shift 4 chiffres doit être de longueur et une heure valide\n"; - echo "
Shift Longueur doit être de 5 caractères de longueur et de 24 heures ou moins\n"; - } - else + echo "
MAJ définition pas AJOUTÉS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Shift ID et le nom doit être d'au moins 2 caractères\n"; + echo "
Start Time Shift 4 chiffres doit être de longueur et une heure valide\n"; + echo "
Shift Longueur doit être de 5 caractères de longueur et de 24 heures ou moins\n"; + } + else { $p=0; $shift_weekdays_ct = count($shift_weekdays); @@ -7839,6 +9715,7 @@ if ($ADD==231111111) } $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
SHIFT AJOUTÉS:$shift_id\n"; @@ -7861,6 +9738,20 @@ if ($ADD==231111111) if ($ADD==21111111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; $rslt=mysql_query($stmt, $link); @@ -7883,25 +9774,36 @@ if ($ADD==21111111111) {echo "
PHONE NOT ADDED - il existe déjà un numéro de téléphone alias dans le système avec ce login\n";} else { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
TELEPHONE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a Boîte vocale ID in the system with this ID\n";} + else { - echo "
TELEPHONE AJOUTE\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
TELEPHONE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Les champs suivants doivent avoir des données: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
TELEPHONE AJOUTE\n"; - $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } @@ -7931,9 +9833,9 @@ if ($ADD==22111111111) {echo "
PAS DE TELEPHONE ALIAS AJOUTÉS - il existe déjà un numéro de téléphone dans le système Connectez-vous avec cette ID\n";} else { - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) {echo "
PAS DE TELEPHONE ALIAS AJOUTÉS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else + else { echo "
PHONE ALIAS AJOUTÉS\n"; @@ -7972,9 +9874,9 @@ if ($ADD==23111111111) {echo "
GROUPE ALIAS pas ajouté - vous ne pouvez pas utiliser des mots réservés dans le groupe des alias\n";} else { - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) {echo "
GROUPE ALIAS pas ajouté - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else + else { echo "
GROUPE ALIAS AJOUTÉS\n"; @@ -8009,16 +9911,16 @@ if ($ADD==211111111111) {echo "
SERVEUR NON AJOUTE - il y a déjà un serveur dans le système avec cet ID\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) {echo "
SERVEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + else { echo "
SERVEUR AJOUTE\n"; $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; $rslt=mysql_query($stmtA, $link); ### LOG INSERTION Admin Log Table ### @@ -8064,14 +9966,14 @@ if ($ADD==221111111111) {echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - il y a déjà un trunk-serveur enregistré pour cette campagne\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) { - echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
la campagne doit contenir entre 3 et 8 caractères\n"; - echo "
le délai du server_ip doit contenir au moins 7 caractères\n"; - echo "
les trunks doivent être un nombre entre 0 et 9999\n"; + echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
la campagne doit contenir entre 3 et 8 caractères\n"; + echo "
le délai du server_ip doit contenir au moins 7 caractères\n"; + echo "
les trunks doivent être un nombre entre 0 et 9999\n"; } - else + else { echo "
TRUNK DU SERVEUR VICIDIAL AJOUTE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; @@ -8106,9 +10008,9 @@ if ($ADD==231111111111) {echo "
CONF TEMPLATE pas ajouté - il existe déjà un modèle dans le système avec cette ID\n";} else { - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) {echo "
CONF TEMPLATE pas ajouté - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else + else { echo "
CONF TEMPLATE AJOUTÉS\n"; @@ -8142,13 +10044,13 @@ if ($ADD==241111111111) {echo "
CARRIER pas ajouté - il ya déjà un transporteur dans le système avec cette ID\n";} else { - if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) {echo "
CARRIER pas ajouté - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else + else { echo "
CARRIER ADDED\n"; - $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N');"; + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; $rslt=mysql_query($stmt, $link); $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; @@ -8167,6 +10069,130 @@ if ($ADD==241111111111) } +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS entrée non AJOUTEE - il existe déjà une entrée dans le système TTS avec cette ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS entrée non AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
TTS Entry Ajoutée\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MUSIC ON HOLD entrée non AJOUTEE - il existe déjà une entrée dans le système de moh avec cette ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD entrée non AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
MUSIC ON HOLD Entry Ajoutée\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
La boîte vocale PAS AJOUTEE - il existe déjà une boîte vocale dans le système avec cette ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
La boîte vocale PAS AJOUTEE - il ya déjà un téléphone dans le système avec ce message vocal ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
La boîte vocale PAS AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
La boîte vocale AJOUTEE\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + ###################### # ADD=2111111111111 adds new conference to the system ###################### @@ -8181,9 +10207,9 @@ if ($ADD==2111111111111) {echo "
CONFERENCE NON AJOUTEE - il y a déjà une conférence dans le système avec cet ID\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
CONFERENCE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + else { echo "
CONFERENCE AJOUTEE\n"; @@ -8209,9 +10235,9 @@ if ($ADD==21111111111111) {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
VICIDIAL CONFERENCE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + else { echo "
VICIDIAL CONFERENCE AJOUTEE\n"; @@ -8244,17 +10270,17 @@ if ($ADD==221111111111111) {echo "
STATUT DE SYSTÈME NON SUPPLÉMENTAIRE - there is already a global-status in the system with this name\n";} else { - if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
STATUT DE SYSTÈME NON SUPPLÉMENTAIRE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
le statut doit contenir entre 1 et 8 caractères\n"; - echo "
le nom du statut doit contenir entre 2 et 30 caractères\n"; + echo "
STATUT DE SYSTÈME NON SUPPLÉMENTAIRE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 8 caractères\n"; + echo "
le nom du statut doit contenir entre 2 et 30 caractères\n"; } - else + else { echo "
STATUT DE SYSTÈME SUPPLÉMENTAIRE: $status_name - $status\n"; - $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category) values('$status','$status_name','$selectable','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -8285,13 +10311,13 @@ if ($ADD==231111111111111) {echo "
CATÉGORIE DE STATUT NON SUPPLÉMENTAIRE - il y a déjà une catégorie de statut dans le système avec cetteidentification: $row[0]\n";} else { - if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) { - echo "
CATÉGORIE DE STATUT NON SUPPLÉMENTAIRE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'identification doit être entre 2 et 20 caractères de longueur\n"; - echo "
le nom nommé doit être entre 2 et 50 caractères de longueur\n"; + echo "
CATÉGORIE DE STATUT NON SUPPLÉMENTAIRE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'identification doit être entre 2 et 20 caractères de longueur\n"; + echo "
le nom nommé doit être entre 2 et 50 caractères de longueur\n"; } - else + else { echo "
STATUS CATÉGORIE ADDED: $vsc_id - $vsc_name\n"; @@ -8335,13 +10361,13 @@ if ($ADD==241111111111111) {echo "
QC CODE ÉTAT PAS AJOUTÉS- il existe déjà un code de statut qc dans le système avec ce nom: $row[0]\n";} else { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) { - echo "
QC CODE ÉTAT PAS AJOUTÉS- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
code doit être compris entre 1 et 8 caractères\n"; - echo "
nom de code doit être compris entre 2 et 30 caractères\n"; + echo "
QC CODE ÉTAT PAS AJOUTÉS- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
code doit être compris entre 1 et 8 caractères\n"; + echo "
nom de code doit être compris entre 2 et 30 caractères\n"; } - else + else { echo "
QC ÉTAT CODE AJOUTEE:$code_name - $code\n"; @@ -8375,232 +10401,232 @@ if ($ADD==241111111111111) ###################### if ($ADD=="4A") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; } - echo "
UTILISATEUR MODIFIE - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Active'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
UTILISATEUR MODIFIE - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### @@ -8608,233 +10634,232 @@ $ADD=3; # go to user modification below ###################### if ($ADD=="4B") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; } - echo "
UTILISATEUR MODIFIE - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Active'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
UTILISATEUR MODIFIE - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3; # go to user modification below } - else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; - } -$ADD=3; # go to user modification below -} - ###################### @@ -8842,233 +10867,233 @@ $ADD=3; # go to user modification below ###################### if ($ADD==4) -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; - } - else - { - echo "
UTILISATEUR MODIFIE: $user\n"; + echo ""; - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; + echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) + else { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
UTILISATEUR MODIFIE: $user\n"; - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Active'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# - ### user doesn't exist in vtiger, insert it - else + if ($enable_vtiger_integration > 0) { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) - { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### # ADD=41 submit campaign modifications to the system - DETAIL ###################### if ($ADD==41) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9082,7 +11107,7 @@ if ($ADD==41) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9117,6 +11142,7 @@ if ($ADD==41) $survey_xfer_exten = '8300'; $voicemail_ext = ''; $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; } if (ereg('list_activation',$stage)) { @@ -9146,20 +11172,31 @@ if ($ADD==41) } else { - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
le nom de la campagne doit contenir au moins 6 caractères\n"; - echo "
|$campaign_name|$active|\n"; + echo "
CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom de la campagne doit contenir au moins 6 caractères\n"; + echo "
|$campaign_name|$active|\n"; } - else + else { echo "
CAMPAGNE MODIFIEE: $campaign_id\n"; + if ( ($dial_method != 'MANUAL') and ($dial_method != 'ENTRANT_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } if ($dial_method == 'MANUAL') { $auto_dial_level='0'; $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; } else { @@ -9188,7 +11225,7 @@ if ($ADD==41) if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) {$hopper_level='100';} - $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias' where campaign_id='$campaign_id';"; + $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -9217,124 +11254,127 @@ if ($ADD==41) } } } - else + else { echo "Vous n'avez pas la permission de voir cette page\n"; exit; } -$ADD=31; # go to campaign modification form below -} + $ADD=31; # go to campaign modification form below + } + ###################### # ADD=42 modify/delete campaign status in the system ###################### if ($ADD==42) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) - { - echo "
STAUT DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID de la campagne doit contenir au moins 2 caractères\n"; - echo "
Le statut de la campagne doit contenir au moins 1 caractère\n"; - } - else - { - if (ereg('delete',$stage)) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
STATUT PERSONNALISE DE LA CAMPAGNE SUPPRIME: $campaign_id - $status\n"; - - $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); - - $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmtA, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
STAUT DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la campagne doit contenir au moins 2 caractères\n"; + echo "
Le statut de la campagne doit contenir au moins 1 caractère\n"; } - if (ereg('modify',$stage)) + else { - echo "
LE STATUT FAIT SUR COMMANDE DE CAMPAGNE A MODIFIÉ: $campaign_id - $status\n"; + if (ereg('delete',$stage)) + { + echo "
STATUT PERSONNALISE DE LA CAMPAGNE SUPPRIME: $campaign_id - $status\n"; - $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
LE STATUT FAIT SUR COMMANDE DE CAMPAGNE A MODIFIÉ: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below } -$SUB=22; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=43 delete campaign hotkey in the system ###################### if ($ADD==43) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
RACCOURCI CLAVIER DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID de la campagne doit contenir au moins 2 caractères\n"; - echo "
Le statut de la campagne doit contenir au moins 1 caractère\n"; - echo "
the campaign hotkey needs to be at least 1 characters in length\n"; - } - else - { - echo "
RACCOURCI CLAVIER PERSONNALISE DE LA CAMPAGNE SUPPRIME: $campaign_id - $status - $hotkey\n"; + echo ""; - $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
RACCOURCI CLAVIER DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la campagne doit contenir au moins 2 caractères\n"; + echo "
Le statut de la campagne doit contenir au moins 1 caractère\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
RACCOURCI CLAVIER PERSONNALISE DE LA CAMPAGNE SUPPRIME: $campaign_id - $status - $hotkey\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Etat: $status|HotKey: $hotkey';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Etat: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below } -$SUB=23; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=44 submit campaign modifications to the system - Basic View ###################### if ($ADD==44) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9348,7 +11388,7 @@ if ($ADD==44) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9400,13 +11440,12 @@ if ($ADD==44) } else { - - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
le nom de la campagne doit contenir au moins 6 caractères\n"; + echo "
CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom de la campagne doit contenir au moins 6 caractères\n"; } - else + else { echo "
CAMPAGNE MODIFIEE: $campaign_id\n"; @@ -9464,153 +11503,155 @@ if ($ADD==44) } } } - else + else { echo "Vous n'avez pas la permission de voir cette page\n"; exit; } -$ADD=34; # go to campaign modification form below -} + $ADD=34; # go to campaign modification form below + } + ###################### # ADD=45 modify campaign lead recycle in the system ###################### if ($ADD==45) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
le statut doit contenir entre 1 et 6 caractères\n"; - echo "
le délai d'attente doit être au moins 120 secondes et moins de 43,200 secondes ou 12 heures\n"; - echo "
le nombre d'essais maximum doit être compris entre 1 et 10\n"; - } - else - { - echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + echo ""; - $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + echo "
le délai d'attente doit être au moins 120 secondes et moins de 43,200 secondes ou 12 heures\n"; + echo "
le nombre d'essais maximum doit être compris entre 1 et 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below } -$SUB=25; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=47 modify agent pause code in the system ###################### if ($ADD==47) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
CODE DE PAUSE NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
pause_code must be between 1 and 6 characters in length\n"; - echo "
pause_nom de code doit être compris entre 2 et 30 caractères\n"; - } - else - { - echo "
AGENT PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + echo ""; - $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
CODE DE PAUSE NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_nom de code doit être compris entre 2 et 30 caractères\n"; + } + else + { + echo "
AGENT PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below } -$SUB=27; -$ADD=31; # go to campaign modification form below -} ###################### # ADD=48 modify campaign QC settings in the system ###################### if ($ADD==48) -{ + { if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
QC SETTINGS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if (strlen($campaign_id) < 2) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
QC SETTINGS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
QC SETTINGS mise à jour: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
QC SETTINGS mise à jour: $campaign_id\n"; - - $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below } -$SUB=28; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9618,39 +11659,39 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD=='40A') -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
SONDAGE SETTINGS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - } - else - { - echo "
SONDAGE SETTINGS mise à jour: $campaign_id\n"; + echo ""; - $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); + if (strlen($campaign_id) < 2) + { + echo "
SONDAGE SETTINGS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + } + else + { + echo "
SONDAGE SETTINGS mise à jour: $campaign_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below } -$SUB='20A'; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9658,143 +11699,70 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==49) -{ - if ($LOGmodify_campaigns==1) { - ##### MODIFY a list mix container entry ##### + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### if ($stage=='MODIFY') - { - echo ""; - - $Flist_mix_container = "list_mix_container_$vcl_id"; - $Fmix_method = "mix_method_$vcl_id"; - $Fstatus = "status_$vcl_id"; - $Fvcl_name = "vcl_name_$vcl_id"; - - if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} - elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} - if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} - elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} - if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} - elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} - if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} - elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} - $list_mix_container = preg_replace("/:$/","",$list_mix_container); - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name name must be between 2 and 30 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; - echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $vcl_name\n"; - } - } + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); - ##### ADD a list mix container entry ##### - if ($stage=='ADD') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $OLDlist_mix_container = $row[0]; - $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; - - $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $list_id\n"; - } - } - - ##### REMOVE a list mix container entry ##### - if ($stage=='REMOVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $MIXentries = $MT; - $MIXentries = explode(":", $row[0]); - $Ms_to_print = (count($MIXentries) - 0); - - if ($Ms_to_print < 2) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
MÉLANGE DE LISTE NON MODIFIÉ: Vous ne pouvez pas supprimer la dernière entrée de list_id d'unmélange de liste\n"; + echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); - $MIXpercentPCT = $MIXdetailsPCT[2]; - - $q=0; - while ($Ms_to_print > $q) - { - if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) - { - if ( ($q==0) and ($mix_container_item > 0) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - if ( ($q==1) and ($mix_container_item < 1) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - $NEWlist_mix_container .= "$MIXentries[$q]:"; - } - } - } - $q++; - } - $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; $rslt=mysql_query($stmt, $link); @@ -9807,114 +11775,187 @@ if ($ADD==49) if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $list_id\n"; } } - } - ##### ADD a NEW list mix ##### - if ($stage=='NEWMIX') - { - echo ""; + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) - { - echo "
MÉLANGE DE LISTE NON SUPPLÉMENTAIRE- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) { - echo "
MÉLANGE DE LISTE NON SUPPLÉMENTAIRE- Il y a déjà un mélange de liste avec cette identification dans lesystème\n"; + echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
MÉLANGE DE LISTE NON MODIFIÉ: Vous ne pouvez pas supprimer la dernière entrée de list_id d'unmélange de liste\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
MÉLANGE DE LISTE NON SUPPLÉMENTAIRE- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
MÉLANGE DE LISTE NON SUPPLÉMENTAIRE- Il y a déjà un mélange de liste avec cette identification dans lesystème\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MÉLANGE DE LISTE SUPPLÉMENTAIRE :$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MÉLANGE DE LISTE NON SUPPRIMÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
MÉLANGE DE LISTE SUPPLÉMENTAIRE :$campaign_id - $vcl_id - $vcl_name\n"; + echo "
LE MÉLANGE DE LISTE A SUPPRIMÉ :$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MÉLANGE DE LISTE NON ACTIVÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MÉLANGE DE LISTE ACTIVÉ: $campaign_id - $vcl_id - $vcl_name\n"; } } } - - ##### DELETE an existing list mix ##### - if ($stage=='DELMIX') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
MÉLANGE DE LISTE NON SUPPRIMÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
LE MÉLANGE DE LISTE A SUPPRIMÉ :$campaign_id - $vcl_id - $vcl_name\n"; - } - } - - ##### Set list mix entry to active ##### - if ($stage=='SETACTIVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
MÉLANGE DE LISTE NON ACTIVÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
MÉLANGE DE LISTE ACTIVÉ: $campaign_id - $vcl_id - $vcl_name\n"; - } - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below } -$SUB=29; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9922,60 +11963,62 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==411) -{ - if ($LOGmodify_lists==1) { - echo ""; - - if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + if ($LOGmodify_lists==1) { - echo "
LISTE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
le nom de la liste doit contenir au moins 2 caractères\n"; - } - else - { - echo "
LISTE MODIFIEE: $list_id\n"; + echo ""; - $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate' where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - if ($reset_list == 'Y') + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) { - echo "
REINITIALISATION LIST-CALLED-STATUS\n"; - $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; - $rslt=mysql_query($stmtB, $link); + echo "
LISTE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom de la liste doit contenir au moins 2 caractères\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTE MODIFIEE: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } - if ($campaign_id != "$old_campaign_id") - { - echo "
ENLEVER LES FICHES DU VIEUX DISTRIBUTEUR DE FICHES DE LA CAMAPGNE ($old_campaign_id)\n"; - $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; - $rslt=mysql_query($stmtC, $link); + + if ($reset_list == 'Y') + { + echo "
REINITIALISATION LIST-CALLED-STATUS\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
ENLEVER LES FICHES DU VIEUX DISTRIBUTEUR DE FICHES DE LA CAMAPGNE ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311; # go to list modification form below } -$ADD=311; # go to list modification form below -} ###################### @@ -9983,58 +12026,88 @@ $ADD=311; # go to list modification form below ###################### if ($ADD==4111) -{ + { if ($LOGmodify_ingroups==1) - { - echo ""; - - if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - echo "
GROUPE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
GROUPE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GROUPE MODIFIE: $group_id\n"; + + $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
GROUPE MODIFIE: $group_id\n"; - - $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias' where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111; # go to in-group modification form below } -$ADD=3111; # go to in-group modification form below -} - ###################### @@ -10042,81 +12115,222 @@ $ADD=3111; # go to in-group modification form below ###################### if ($ADD==4311) -{ + { if ($LOGmodify_dids==1) - { - echo ""; - - if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) { - echo "
NE MODIFIE PAS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
did_extension must be at least 1 character in length\n"; - } - else - { - echo "
DID mise à jour: $did_pattern\n"; + echo ""; - $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code' where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NE MODIFIE PAS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID mise à jour: $did_pattern\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3311; # go to did modification form below } -$ADD=3311; # go to did modification form below -} +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU PAS MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL MENU mise à jour: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + ###################### # ADD=41111 modify remote agents info in the system ###################### if ($ADD==41111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo ""; - - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
AGENT DISTANT NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères\n"; - } - else - { - $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
AGENTS DISTANTS MODIFIES\n"; + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENT DISTANT NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
AGENTS DISTANTS MODIFIES\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below } -$ADD=31111; # go to remote agents modification form below -} - ###################### @@ -10124,169 +12338,181 @@ $ADD=31111; # go to remote agents modification form below ###################### if ($ADD==411111) -{ + { if ($LOGmodify_usergroups==1) - { - echo ""; - - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
GROUPE D'UTILISATEURS NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; - echo "
Le nom et la description du groupe doivent contenir au moins 2 caractères\n"; - } - else - { - $p=0; - $GROUP_shifts=' '; - $group_shifts_ct = count($group_shifts); - while ($p <= $group_shifts_ct) + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - $GROUP_shifts .= "$group_shifts[$p] "; - $p++; + echo "
GROUPE D'UTILISATEURS NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le nom et la description du groupe doivent contenir au moins 2 caractères\n"; } - $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement' where user_group='$OLDuser_group';"; - $rslt=mysql_query($stmt, $link); - - echo "
GROUPE D'UTILISATEURS MODIFIE\n"; - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY GROUPE D'UTILISATEURS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
GROUPE D'UTILISATEURS MODIFIE\n"; - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY GROUPE D'UTILISATEURS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $group_found_count = $row[0]; - $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### } - - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111; # go to user group modification form below } -$ADD=311111; # go to user group modification form below -} + ###################### # ADD=4111111 modify script in the system ###################### if ($ADD==4111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo ""; - - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
SCRIPT NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Les nom, description et texte du script doivent contenir au moins 2 caractères\n"; - } - else - { - $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='$script_text', active='$active' where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
SCRIPT MODIFIE\n"; + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
SCRIPT NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Les nom, description et texte du script doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='" . mysql_real_escape_string($script_text) . "', active='$active' where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
SCRIPT MODIFIE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111111; # go to script modification form below } -$ADD=3111111; # go to script modification form below -} ###################### @@ -10294,39 +12520,41 @@ $ADD=3111111; # go to script modification form below ###################### if ($ADD==41111111) -{ + { if ($LOGmodify_filters==1) - { - echo ""; - - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTRE NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Identifiant du filtre, le nom et le SQL doivent au moins contenir 2 caractères\n"; - } - else - { - $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='$lead_filter_sql' where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
FILTRE MODIFIE\n"; + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRE NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Identifiant du filtre, le nom et le SQL doivent au moins contenir 2 caractères\n"; + } + else + { + $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "' where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRES', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
FILTRE MODIFIE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRES', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111111; # go to filter modification form below } -$ADD=31111111; # go to filter modification form below -} ###################### @@ -10334,55 +12562,55 @@ $ADD=31111111; # go to filter modification form below ###################### if ($ADD==411111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
PERIODE D'APPELS NON MODIFIEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID et le nom de la période d'appel doivent contenir au moins 2 caractères\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
PERIODE D'APPELS MODIFIEE\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
PERIODE D'APPELS NON MODIFIEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID et le nom de la période d'appel doivent contenir au moins 2 caractères\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
PERIODE D'APPELS MODIFIEE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111111; # go to call time modification form below } -$ADD=311111111; # go to call time modification form below -} ###################### @@ -10390,55 +12618,55 @@ $ADD=311111111; # go to call time modification form below ###################### if ($ADD==4111111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
PERIODE D'APPELS D'ETAT NON MODIFIEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID, le nom et l'état de l'appel doivent contenir au moins 2 caractères\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
PERIODE D'APPELS D'ETAT MODIFIEE\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
PERIODE D'APPELS D'ETAT NON MODIFIEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID, le nom et l'état de l'appel doivent contenir au moins 2 caractères\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
PERIODE D'APPELS D'ETAT MODIFIEE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below } -$ADD=3111111111; # go to state call time modification form below -} ###################### @@ -10446,50 +12674,50 @@ $ADD=3111111111; # go to state call time modification form below ###################### if ($ADD==431111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; + { + echo ""; - $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) - { - echo "
SHIFT DEFINITION NOT MODIFIED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Shift ID et le nom doit être d'au moins 2 caractères\n"; - echo "
Start Time Shift 4 chiffres doit être de longueur et une heure valide\n"; - echo "
Shift Longueur doit être de 5 caractères de longueur et de 24 heures ou moins\n"; - } - else - { - $p=0; - $shift_weekdays_ct = count($shift_weekdays); - while ($p <= $shift_weekdays_ct) + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - $SHIFT_weekdays .= "$shift_weekdays[$p]"; - $p++; + echo "
SHIFT DEFINITION NOT MODIFIED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Shift ID et le nom doit être d'au moins 2 caractères\n"; + echo "
Start Time Shift 4 chiffres doit être de longueur et une heure valide\n"; + echo "
Shift Longueur doit être de 5 caractères de longueur et de 24 heures ou moins\n"; } - $shift_start_time = preg_replace('/\D/', '', $shift_start_time); - $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); - echo "
MAJ mise à jour\n"; + echo "
MAJ mise à jour\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=331111111; # go to shift modification form below } -$ADD=331111111; # go to shift modification form below -} ###################### @@ -10497,47 +12725,47 @@ $ADD=331111111; # go to shift modification form below ###################### if ($ADD==41111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) - {echo "
TELEPHONE NON MODIFIE - il y a déjà un téléphone dans le système avec cette extension/server\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
TELEPHONE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELEPHONE NON MODIFIE - il y a déjà un téléphone dans le système avec cette extension/server\n";} + else { - echo "
TELEPHONE MODIFIE: $extension\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELEPHONE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
TELEPHONE MODIFIE: $extension\n"; - $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override' where extension='$old_extension' and server_ip='$old_server_ip';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFIER LE TELEPHONE', event_sql=\"$SQL_log\", event_notes='IP du serveur: $server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFIER LE TELEPHONE', event_sql=\"$SQL_log\", event_notes='IP du serveur: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below } -$ADD=31111111111; # go to phone modification form below -} ###################### @@ -10545,39 +12773,39 @@ $ADD=31111111111; # go to phone modification form below ###################### if ($ADD==42111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) - {echo "
PHONE ALIAS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else { - echo "
PHONE ALIAS mise à jour: $alias_id\n"; + echo ""; - $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
PHONE ALIAS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
PHONE ALIAS mise à jour: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFIER LE TELEPHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFIER LE TELEPHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below } -$ADD=32111111111; # go to phone alias modification form below -} ###################### @@ -10585,39 +12813,39 @@ $ADD=32111111111; # go to phone alias modification form below ###################### if ($ADD==43111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) - {echo "
GROUPE ALIAS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else { - echo "
GROUPE ALIAS mise à jour: $alias_id\n"; + echo ""; - $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
GROUPE ALIAS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
GROUPE ALIAS mise à jour: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN Modifier un groupe ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN Modifier un groupe ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below } -$ADD=33111111111; # go to group alias modification form below -} ###################### @@ -10625,55 +12853,55 @@ $ADD=33111111111; # go to group alias modification form below ###################### if ($ADD==411111111111) -{ - if ($LOGmodify_servers==1) { - echo ""; - - $stmt="SELECT count(*) from servers where server_id='$server_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_id != $old_server_id) ) - {echo "
SERVEUR NOT MODIFIED - there is already a server in the system with this server_id\n";} - else + if ($LOGmodify_servers==1) { - $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) - {echo "
SERVEUR NON MODIFIE - il y a déjà un serveur dans le système avec cet ID\n";} + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
SERVEUR NOT MODIFIED - there is already a server in the system with this server_id\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) - {echo "
SERVEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
SERVEUR NON MODIFIE - il y a déjà un serveur dans le système avec cet ID\n";} + else { - echo "
SERVEUR MODIFIE: $server_ip\n"; + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); - $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second' where server_id='$old_server_id';"; - $rslt=mysql_query($stmt, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + echo "
SERVEUR MODIFIE: $server_ip\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFIER LE SERVEUR', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFIER LE SERVEUR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111111111; # go to server modification form below } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10681,57 +12909,57 @@ $ADD=311111111111; # go to server modification form below ###################### if ($ADD==421111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $MAXvicidial_trunks = $rowx[0]; - - $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); - - if ($SUMvicidial_trunks > $MAXvicidial_trunks) { - echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - le nombre de trunks vicidial est trop important: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - le nombre de trunks vicidial est trop important: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
TRUNK DU SERVEUR VICIDIAL NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
la campagne doit contenir entre 3 et 8 caractères\n"; + echo "
le délai du server_ip doit contenir au moins 7 caractères\n"; + echo "
les trunks doivent être un nombre entre 0 et 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
TRINK DU SERVEUR VICIDIAL MODIFIE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERMalles', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFIER LE SERVEUR TRUNK', event_sql=\"$SQL_log\", event_notes='Campagne: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } } else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) - { - echo "
TRUNK DU SERVEUR VICIDIAL NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
la campagne doit contenir entre 3 et 8 caractères\n"; - echo "
le délai du server_ip doit contenir au moins 7 caractères\n"; - echo "
les trunks doivent être un nombre entre 0 et 9999\n"; - } - else - { - echo "
TRINK DU SERVEUR VICIDIAL MODIFIE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; - - $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERMalles', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFIER LE SERVEUR TRUNK', event_sql=\"$SQL_log\", event_notes='Campagne: $campaign_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; } + $ADD=311111111111; # go to server modification form below } - else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; - } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10739,39 +12967,39 @@ $ADD=311111111111; # go to server modification form below ###################### '$template_id','$template_name','$template_contents' if ($ADD==431111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) - {echo "
CONF TEMPLATE PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else { - echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + echo ""; - $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF TEMPLATE PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below } -$ADD=331111111111; # go to conf template modification form below -} ###################### @@ -10779,39 +13007,222 @@ $ADD=331111111111; # go to conf template modification form below ###################### if ($ADD==441111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) - {echo "
CARRIER PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} - else { - echo "
CARRIER mise à jour: $carrier_id\n"; + echo ""; - $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active' where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
CARRIER PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY CARRIER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
CARRIER mise à jour: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS entrée n-est pas à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS entrée modifiée: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD entrée n-est pas à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD entrée modifiée: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD entrée n-est pas à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD entrée modifiée: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
La boîte vocale PAS MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
La boîte vocale mise à jour: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below } -$ADD=341111111111; # go to carrier modification form below -} ###################### @@ -10819,36 +13230,36 @@ $ADD=341111111111; # go to carrier modification form below ###################### if ($ADD==4111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
CONFERENCE NON MODIFIEE - il y a déjà une conférence dans le système avec cette extension-serveur\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
CONFERENCE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else - { - echo "
CONFERENCE MODIFIEE: $conf_exten\n"; + echo ""; - $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
CONFERENCE NON MODIFIEE - il y a déjà une conférence dans le système avec cette extension-serveur\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
CONFERENCE MODIFIEE: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below } -$ADD=3111111111111; # go to conference modification form below -} ###################### @@ -10856,38 +13267,37 @@ $ADD=3111111111111; # go to conference modification form below ###################### if ($ADD==41111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
VICIDIAL CONFERENCE NON MODIFIEE - il y a déjà une conférence dans le système avec cette extension-serveur\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
VICIDIAL CONFERENCE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL CONFERENCE NON MODIFIEE - il y a déjà une conférence dans le système avec cette extension-serveur\n";} + else { - echo "
VICIDIAL CONFERENCE MODIFIEE: $conf_exten\n"; + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
VICIDIAL CONFERENCE MODIFIEE: $conf_exten\n"; - $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below } -$ADD=31111111111111; # go to vicidial conference modification form below -} - ###################### @@ -10902,7 +13312,7 @@ if ($ADD==411111111111111) echo "
REGLAGES DU SYSTEME VICIDIAL MODIFIES\n"; - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second';"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -10971,7 +13381,7 @@ if ($ADD==421111111111111) { echo "
LE STATUT DE SYSTÈME A MODIFIÉ: $status\n"; - $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where status='$status';"; + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -11003,13 +13413,13 @@ if ($ADD==431111111111111) { echo ""; - if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) { echo "
CATÉGORIE DE STATUT NON MODIFIÉE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; echo "
la catégorie de statut ne peut pas être une catégorie réservée :UNDEFINED\n"; echo "
la catégorie de statut doit être au moins 2 caractères de longueur\n"; } - else + else { if (ereg('delete',$stage)) { @@ -11066,67 +13476,67 @@ if ($ADD==431111111111111) ###################### if ($ADD==441111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) - { - echo ""; - - if (ereg('delete',$stage)) { - if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + echo ""; + + if (ereg('delete',$stage)) { - echo "
QC CODE ÉTAT PAS SUPPRIMÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; - echo "
qc le code de statut doit être au moins de 1 caractères\n"; + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC CODE ÉTAT PAS SUPPRIMÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
qc le code de statut doit être au moins de 1 caractères\n"; + } + else + { + echo "
QC ÉTAT CODE DELETED:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - else + if (ereg('modify',$stage)) { - echo "
QC ÉTAT CODE DELETED:$code\n"; + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC CODE ÉTAT PAS mise à jour- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
qc le code de statut doit être au moins de 1 caractères\n"; + echo "
qc le nom de code de statut doit être au moins de 1 caractères\n"; + } + else + { + echo "
QC ÉTAT CODE mise à jour:$code\n"; - $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - if (ereg('modify',$stage)) - { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) - { - echo "
QC CODE ÉTAT PAS mise à jour- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
qc le code de statut doit être au moins de 1 caractères\n"; - echo "
qc le nom de code de statut doit être au moins de 1 caractères\n"; - } - else - { - echo "
QC ÉTAT CODE mise à jour:$code\n"; - - $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below } -$ADD=341111111111111; # go to qc status code modification form below -} @@ -11143,336 +13553,358 @@ $ADD=341111111111111; # go to qc status code modification form below ###################### if ($ADD==5) -{ + { echo ""; - if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) { - echo "
UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Utilisateur be at least 2 characters in length\n"; + echo "
UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Utilisateur be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DE L'UTILISATEUR: $user\n"; echo "

Cliquez ici pour supprimer cet utilisateur $user


\n"; } -$ADD='3'; # go to user modification below -} + $ADD='3'; # go to user modification below + } ###################### # ADD=51 confirmation before deletion of campaign ###################### if ($ADD==51) -{ + { echo ""; - if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) { - echo "
CAMPAGNE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Campagne_id be at least 2 characters in length\n"; + echo "
CAMPAGNE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DE LA CAMPAGNE: $campaign_id\n"; echo "

Cliquez ici pour supprimer cette campagne $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=52 confirmation before logging all agents out of campaign of campaign ###################### if ($ADD==52) -{ + { echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
AGENTS NON DECONNECTES DE LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Campagne_id be at least 2 characters in length\n"; + echo "
AGENTS NON DECONNECTES DE LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA DECONNECTION DE L'AGENT: $campaign_id\n"; - echo "

Cliquez ici pour déconnecter tous les agents de $campaign_id


\n"; + echo "

Cliquez ici pour déconnecter tous les agents de $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record ###################### if ($ADD==53) -{ + { if (eregi('IN',$stage)) {$group_id=$campaign_id;} echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
VDAC NON EFFACE POUR LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Campagne_id be at least 2 characters in length\n"; + echo "
VDAC NON EFFACE POUR LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE L'EFFACEMENT DE VDAC: $campaign_id\n"; echo "

Cliquez ici pour effacer les plus vieux enregistrements LIVE dans VDAC pour $campaign_id


\n"; } -# go to campaign modification below -if (eregi('IN',$stage)) - {$ADD='3111';} -else - {$ADD='31';} -} + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } ###################### # ADD=511 confirmation before deletion of list ###################### if ($ADD==511) -{ + { echo ""; - if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) { - echo "
LISTE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
List_id be at least 2 characters in length\n"; + echo "
LISTE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
List_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DE LA LISTE: $list_id\n"; echo "

Cliquez ici pour supprimer cette liste et toutes ses fiches $list_id


\n"; } -$ADD='311'; # go to campaign modification below -} + $ADD='311'; # go to campaign modification below + } ###################### # ADD=5111 confirmation before deletion of in-group ###################### if ($ADD==5111) -{ + { echo ""; - if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) { - echo "
IN-GROUP NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Group_id be at least 2 characters in length\n"; + echo "
IN-GROUP NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Group_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DU IN-GROUP: $group_id\n"; echo "

Cliquer ici pour supprimer le in-group $group_id


\n"; } -$ADD='3111'; # go to in-group modification below -} + $ADD='3111'; # go to in-group modification below + } ###################### # ADD=5311 confirmation before deletion of did ###################### if ($ADD==5311) -{ + { echo ""; - if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) { - echo "
NE PAS SUPPRIMER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
did_id be at least 1 characters in length\n"; + echo "
NE PAS SUPPRIMER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
did_id be at least 1 characters in length\n"; } - else + else { - echo "
A DELETION CONFIRMATION: $group_id\n"; + echo "
A DELETION CONFIRMATION: $menu_id\n"; echo "

Cliquez ici pour supprimerDID $did_id


\n"; } -$ADD='3311'; # go to did modification below -} + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CALL MENU DE SUPPRESSION DE CONFIRMATION: $menu_id\n"; + echo "

Cliquez ici pour supprimer CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } ###################### # ADD=51111 confirmation before deletion of remote agent record ###################### if ($ADD==51111) -{ + { echo ""; - if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) { - echo "
AGENT DISTANT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Remote_agent_id be at least 2 characters in length\n"; + echo "
AGENT DISTANT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DE L'AGENT DISTANT: $remote_agent_id\n"; echo "

Cliquez ici pour supprimer l'agent distant $remote_agent_id


\n"; } -$ADD='31111'; # go to remote agent modification below -} + $ADD='31111'; # go to remote agent modification below + } ###################### # ADD=511111 confirmation before deletion of user group record ###################### if ($ADD==511111) -{ + { echo ""; - if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) { - echo "
GROUPE D'UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Utilisateur_group be at least 2 characters in length\n"; + echo "
GROUPE D'UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Utilisateur_group be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DU GROUPE D'UTILISATEURS: $user_group\n"; echo "

Cliquez ici pour supprimer le groupe d'utilisateurs $user_group


\n"; } -$ADD='311111'; # go to user group modification below -} + $ADD='311111'; # go to user group modification below + } ###################### # ADD=5111111 confirmation before deletion of script record ###################### if ($ADD==5111111) -{ + { echo ""; - if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) { - echo "
SCRIPT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Script_id must be at least 2 characters in length\n"; + echo "
SCRIPT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Script_id must be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DU SCRIPT: $script_id\n"; echo "

Cliquez ici pour supprimer le script $script_id


\n"; } -$ADD='3111111'; # go to script modification below -} + $ADD='3111111'; # go to script modification below + } ###################### # ADD=51111111 confirmation before deletion of filter record ###################### if ($ADD==51111111) -{ + { echo ""; - if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) { - echo "
FILTRE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'identifiant du filtre doit contenir au moins 2 caractères\n"; + echo "
FILTRE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'identifiant du filtre doit contenir au moins 2 caractères\n"; } - else + else { echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; echo "

Cliquez ici pour effacer le filtre$lead_filter_id


\n"; } -$ADD='31111111'; # go to filter modification below -} + $ADD='31111111'; # go to filter modification below + } ###################### # ADD=511111111 confirmation before deletion of call time record ###################### if ($ADD==511111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
PERIODE D'APPELS NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; + echo "
PERIODE D'APPELS NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESION DE LA PERIODE D'APPELS: $call_time_id\n"; echo "

Cliquez ici pour supprimercall time $call_time_id


\n"; } -$ADD='311111111'; # go to call time modification below -} + $ADD='311111111'; # go to call time modification below + } ###################### # ADD=5111111111 confirmation before deletion of state call time record ###################### if ($ADD==5111111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
PERIODE D'APPELS D'ETAT NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; + echo "
PERIODE D'APPELS D'ETAT NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DE LA PERIODE D'APPELS D'ETAT: $call_time_id\n"; echo "

Cliquez ici pour supprimerstate call time $call_time_id


\n"; } -$ADD='3111111111'; # go to state call time modification below -} + $ADD='3111111111'; # go to state call time modification below + } ###################### # ADD=531111111 confirmation before deletion of shift record ###################### if ($ADD==531111111) -{ + { echo ""; - if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
MAJ pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Shift ID must be at least 2 characters in length\n"; + echo "
MAJ pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Shift ID must be at least 2 characters in length\n"; } - else + else { echo "
SHIFT DELETION CONFIRMATION:$shift_id\n"; echo "

Cliquez ici pour supprimer le passage $shift_id


\n"; } -$ADD='331111111'; # go to call time modification below -} + $ADD='331111111'; # go to call time modification below + } ###################### # ADD=51111111111 confirmation before deletion of phone record ###################### if ($ADD==51111111111) -{ + { echo ""; - if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
TELEPHONE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Extension be at least 2 characters in length\n"; - echo "
IP du serveur be at least 7 characters in length\n"; + echo "
TELEPHONE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; } - else + else { echo "
CONFIRMATION DE LA SUPPRESSION DU TELEPHONE: $extension - $server_ip\n"; echo "

Cliquez ici pour supprimer le téléphone $extension - $server_ip


\n"; } -$ADD='31111111111'; # go to phone modification below -} + $ADD='31111111111'; # go to phone modification below + } ###################### @@ -11480,21 +13912,21 @@ $ADD='31111111111'; # go to phone modification below ###################### if ($ADD==52111111111) -{ + { echo ""; - if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
PHONE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Alias ID must be at least 2 characters in length\n"; + echo "
PHONE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Alias ID must be at least 2 characters in length\n"; } - else + else { echo "
PHONE ALIAS DELETION CONFIRMATION: $alias_id\n"; echo "

Cliquez ici pour supprimer le téléphone alias $alias_id


\n"; } -$ADD='32111111111'; # go to phone alias modification below -} + $ADD='32111111111'; # go to phone alias modification below + } ###################### @@ -11502,21 +13934,21 @@ $ADD='32111111111'; # go to phone alias modification below ###################### if ($ADD==53111111111) -{ + { echo ""; - if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
GROUPE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Alias Groupe ID must be at least 2 characters in length\n"; + echo "
GROUPE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Alias Groupe ID must be at least 2 characters in length\n"; } - else + else { echo "
GROUPE ALIAS DELETION CONFIRMATION: $group_alias_id\n"; echo "

Cliquez ici pour supprimer le groupe alias $group_alias_id


\n"; } -$ADD='33111111111'; # go to group alias modification below -} + $ADD='33111111111'; # go to group alias modification below + } ###################### @@ -11524,22 +13956,22 @@ $ADD='33111111111'; # go to group alias modification below ###################### if ($ADD==511111111111) -{ + { echo ""; - if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
SERVEUR NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
ID du serveur be at least 2 characters in length\n"; - echo "
IP du serveur be at least 7 characters in length\n"; + echo "
SERVEUR NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
ID du serveur be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; } - else + else { echo "
SERVEUR DELETION CONFIRMATION: $server_id - $server_ip\n"; echo "

Cliquez ici pour supprimer le téléphone $server_id - $server_ip


\n"; } -$ADD='311111111111'; # go to server modification below -} + $ADD='311111111111'; # go to server modification below + } ###################### @@ -11547,21 +13979,21 @@ $ADD='311111111111'; # go to server modification below ###################### if ($ADD==531111111111) -{ + { echo ""; - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) { - echo "
CONF TEMPLATE pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Template ID être d'au moins 2 caractères\n"; + echo "
CONF TEMPLATE pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Template ID être d'au moins 2 caractères\n"; } - else + else { echo "
CONF TEMPLATE DELETION CONFIRMATION: $template_id - $template_name\n"; echo "

Cliquez ici pour supprimer le modèle de conf $template_id - $template_name


\n"; } -$ADD='331111111111'; # go to conf template modification below -} + $ADD='331111111111'; # go to conf template modification below + } ###################### @@ -11569,21 +14001,87 @@ $ADD='331111111111'; # go to conf template modification below ###################### if ($ADD==541111111111) -{ + { echo ""; - if (strlen($carrier_id) < 2) + if (strlen($carrier_id) < 2) { - echo "
CARRIER pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Carrier ID être d'au moins 2 caractères\n"; + echo "
CARRIER pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Carrier ID être d'au moins 2 caractères\n"; } - else + else { echo "
SUPPRESSION DE SUPPORT DE CONFIRMATION: $carrier_id - $carrier_name\n"; echo "

Cliquez ici pour supprimer le transporteur $carrier_id - $carrier_name


\n"; } -$ADD='341111111111'; # go to carrier modification below -} + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ENTREE DE SUPPRESSION DE CONFIRMATION: $tts_id - $tts_name\n"; + echo "

Cliquez ici pour supprimer l-entrée tts $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
MUSIC ON HOLD ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
MUSIC ON HOLD ENTREE DE SUPPRESSION DE CONFIRMATION: $moh_id - $moh_name\n"; + echo "

Cliquez ici pour supprimer la musique en attente d-entrée $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
La boîte vocale pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Boîte vocale ID be at least 2 characters in length\n"; + } + else + { + echo "
La boîte vocale SUPPRESSION DE CONFIRMATION: $voicemail_id - $fullname\n"; + echo "

Cliquez ici pour supprimer boîte vocale $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } ###################### @@ -11591,22 +14089,22 @@ $ADD='341111111111'; # go to carrier modification below ###################### if ($ADD==5111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP du serveur be at least 7 characters in length\n"; + echo "
CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; } - else + else { echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Cliquez ici pour supprimer le téléphone $conf_exten - $server_ip


\n"; } -$ADD='3111111111111'; # go to conference modification below -} + $ADD='3111111111111'; # go to conference modification below + } ###################### @@ -11614,22 +14112,22 @@ $ADD='3111111111111'; # go to conference modification below ###################### if ($ADD==51111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
VICIDIAL CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP du serveur be at least 7 characters in length\n"; + echo "
VICIDIAL CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; } - else + else { echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Cliquez ici pour supprimer le téléphone $conf_exten - $server_ip


\n"; } -$ADD='31111111111111'; # go to vicidial conference modification below -} + $ADD='31111111111111'; # go to vicidial conference modification below + } @@ -11650,8 +14148,8 @@ if ($ADD==6) if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) { - echo "
UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Utilisateur be at least 2 characters in length\n"; + echo "
UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Utilisateur be at least 2 characters in length\n"; } else { @@ -11689,8 +14187,8 @@ if ($ADD==61) if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) { - echo "
CAMPAGNE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; - echo "
Campagne_id be at least 2 characters in length\n"; + echo "
CAMPAGNE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; } else { @@ -11749,6 +14247,7 @@ if ($ADD==61) $ADD='10'; # go to campaigns list } + ###################### # ADD=62 Logout all agents from a campaign ###################### @@ -11766,8 +14265,174 @@ if ($ADD==62) } else { - $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -11833,7 +14498,7 @@ if ($ADD==63) if (eregi('IN',$stage)) {$ADD='3111';} else - {$ADD='31';} + {$ADD='31';} } @@ -11896,12 +14561,12 @@ if ($ADD==66) {echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON SUPPRIME - ce statut d'appel automatique du numéro alternatif n'est pas dans cette campagne\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; echo "
le statut doit contenir entre 1 et 6 caractères\n"; } - else + else { echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF SUPPRIME: $campaign_id - $status\n"; @@ -11932,6 +14597,7 @@ if ($ADD==66) $ADD=31; # go to campaign modification form below } + ###################### # ADD=67 delete agent pause code in the system ###################### @@ -11942,12 +14608,12 @@ if ($ADD==67) { echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) { echo "
CODE DE PAUSE DE LA CAMPAGNE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; echo "
pause code must be between 1 and 6 characters in length\n"; } - else + else { echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; @@ -11989,12 +14655,12 @@ if ($ADD==68) {echo "
STATUT D'APPEL POUR CETTE CAMPAGNE NON SUPPRIME - ce statut d'appel n'est pas selectionné pour cette campagne\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
STATUT D'APPEL POUR CETTE CAMPAGNE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; echo "
le statut doit contenir entre 1 et 6 caractères\n"; } - else + else { echo "
STATUT D'APPEL POUR CETTE CAMPAGNE SUPPRIME: $campaign_id - $status\n"; @@ -12108,6 +14774,7 @@ if ($ADD==6111) $ADD='1000'; # go to in-group list } + ###################### # ADD=6311 delete did record ###################### @@ -12141,6 +14808,42 @@ if ($ADD==6311) $ADD='1300'; # go to did list } +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
APPEL menu de suppression REMPLI: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + ###################### # ADD=61111 delete remote agent record ###################### @@ -12662,6 +15365,116 @@ if ($ADD==641111111111) } +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
MUSIC ON HOLD ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MUSIQUE EN ATTENTE DE SUPPRESSION REMPLI: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
La boîte vocale pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Boîte vocale ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
La boîte vocale SUPPRESSION REMPLI: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + ###################### # ADD=6111111111111 delete conference record ###################### @@ -12747,246 +15560,293 @@ if ($ADD==61111111111111) ###################### if ($ADD==3) -{ - if ($LOGmodify_users==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_level = $row[4]; - $user_group = $row[5]; - $phone_login = $row[6]; - $phone_pass = $row[7]; - $delete_users = $row[8]; - $delete_user_groups = $row[9]; - $delete_lists = $row[10]; - $delete_campaigns = $row[11]; - $delete_ingroups = $row[12]; - $delete_remote_agents = $row[13]; - $load_leads = $row[14]; - $campaign_detail = $row[15]; - $ast_admin_access = $row[16]; - $ast_delete_phones = $row[17]; - $delete_scripts = $row[18]; - $modify_leads = $row[19]; - $hotkeys_active = $row[20]; - $change_agent_campaign =$row[21]; - $agent_choose_ingroups =$row[22]; - $scheduled_callbacks = $row[24]; - $agentonly_callbacks = $row[25]; - $agentcall_manual = $row[26]; - $vicidial_recording = $row[27]; - $vicidial_transfers = $row[28]; - $delete_filters = $row[29]; - $alter_agent_interface_options =$row[30]; - $closer_default_blended = $row[31]; - $delete_call_times = $row[32]; - $modify_call_times = $row[33]; - $modify_users = $row[34]; - $modify_campaigns = $row[35]; - $modify_lists = $row[36]; - $modify_scripts = $row[37]; - $modify_filters = $row[38]; - $modify_ingroups = $row[39]; - $modify_usergroups = $row[40]; - $modify_remoteagents = $row[41]; - $modify_servers = $row[42]; - $view_reports = $row[43]; - $vicidial_recording_override = $row[44]; - $alter_custdata_override = $row[45]; - $qc_enabled = $row[46]; - $qc_user_level = $row[47]; - $qc_pass = $row[48]; - $qc_finish = $row[49]; - $qc_commit = $row[50]; - $add_timeclock_log = $row[51]; - $modify_timeclock_log = $row[52]; - $delete_timeclock_log = $row[53]; - $alter_custphone_override = $row[54]; - $vdc_agent_api_access = $row[55]; - $modify_inbound_dids = $row[56]; - $delete_inbound_dids = $row[57]; - $active = $row[58]; - $alert_enabled = $row[59]; - $download_lists = $row[60]; - $agent_shift_enforcement_override = $row[61]; - $manager_shift_enforcement_override = $row[62]; - $export_reports = $row[64]; - - if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + if ($LOGmodify_users==1) { - echo "
Vous n'avez pas les permissions pour modifier cet utilisateur: $row[1]\n"; - } - else - { - echo "
MODIFIER UN ENREGISTREMENT D'UTILISATEURS: $row[1]\n"; - if ($LOGuser_level > 8) - {echo "\n";} + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -13371,7 +16271,7 @@ if ($ADD==31) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; @@ -13463,7 +16527,7 @@ if ($ADD==31) } echo " $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE\n"; - echo "\n"; + echo "\n"; echo "\n"; + + + echo "\n"; + + + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; } echo "\n"; @@ -13515,17 +16628,34 @@ if ($ADD==31) echo "\n"; + echo "$NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; } echo "\n"; @@ -13535,6 +16665,22 @@ if ($ADD==31) echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($SSoutbound_autodial_active > 0) { echo "\n"; @@ -13543,42 +16689,69 @@ if ($ADD==31) if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; } - echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; echo "\n"; @@ -13586,9 +16759,9 @@ if ($ADD==31) { echo "\n"; } - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -13622,13 +16795,17 @@ if ($ADD==31) if ($SSenable_vtiger_integration > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; } else { @@ -13636,8 +16813,18 @@ if ($ADD==31) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($campaign_allow_inbound == 'Y') { echo "\n"; echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Vous n'avez pas les permissions pour modifier cet utilisateur: $user\n"; + } else { - if ($LOGalter_agent_interface == "1") - {echo "\n";} + echo "
MODIFIER UN ENREGISTREMENT D'UTILISATEURS: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} else - {echo "\n";} - } - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - if ($LOGdelete_users > 0) - { - echo "

SUPPRIMER CET UTILISATEUR\n"; - } - echo "

Cliquez ici pour la feuille de présence de l'utilisateur\n"; - echo "

Cliquez ici pour les statuts utilisateur\n"; - echo "

Cliquez ici pour les statistiques de l'utilisateur\n"; - echo "

Cliquez ici pour l'utilisateur de plusieurs jours le statut de détails rapport\n"; - echo "

Cliquez ici pour les rappels reservés à cet utilisateur\n"; - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce record\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Numéro d'utilisateur : $row[1]$NWB#vicidial_users-user$NWE
Mot de passe:$NWB#vicidial_users-pass$NWE
Nom complet: $NWB#vicidial_users-full_name$NWE
Niveau de l'utilisateur: $NWB#vicidial_users-user_level$NWE
Groupe utilisateur: \n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "\n"; } - echo "\n"; - echo "\n"; - echo "\n"; + echo "$Ugroups_list"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - if ($SSqc_features_active > 0) + if ($SSuser_territories_active > 0) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; } - } - if ($LOGuser_level > 8) - { - echo "\n"; -#9BB9FB -#B9CBFD - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - if ($SSoutbound_autodial_active > 0) + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) { - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if ($LOGuser_level > 8) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + #9BB9FB + #B9CBFD + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - } - echo "\n"; - echo "
Numéro d'utilisateur : $user$NWB#vicidial_users-user$NWE
Mot de passe:$NWB#vicidial_users-pass$NWE
Nom complet: $NWB#vicidial_users-full_name$NWE
Niveau de l'utilisateur: $NWB#vicidial_users-user_level$NWE
Groupe utilisateur: $NWB#vicidial_users-user_group$NWE
Login du téléphone: $NWB#vicidial_users-phone_login$NWE
Mot de passe du téléphone: $NWB#vicidial_users-phone_pass$NWE
Actif: $NWB#vicidial_users-active$NWE
OPTIONS DE L'INTERFACE DE L'AGENT:
L'agent choisit les Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Racourccis clavier actifs: $NWB#vicidial_users-hotkeys_active$NWE
Rappels de service programmés: $NWB#vicidial_users-scheduled_callbacks$NWE
Rappels de service d'agent-seulement: $NWB#vicidial_users-agentonly_callbacks$NWE
Appel manuel de l'agent: $NWB#vicidial_users-agentcall_manual$NWE
Enregistrement Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Transferts Vicidial: $NWB#vicidial_users-vicidial_transfers$NWE
Closer Default Blended: $NWB#vicidial_users-closer_default_blended$NWE
Ecrasement de l'enregistrment VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
Modifications des données des clients pour l'agent: $NWB#vicidial_users-alter_custdata_override$NWE
Alter Agent Client Téléphone Override:$NWB#vicidial_users-alter_custphone_override$NWE
Login du téléphone: $NWB#vicidial_users-phone_login$NWE
Mot de passe du téléphone: $NWB#vicidial_users-phone_pass$NWE
Actif: $NWB#vicidial_users-active$NWE
Email:$NWB#vicidial_users-optional$NWE
Utilisateur Code: $NWB#vicidial_users-optional$NWE
Main Territoire: $NWB#vicidial_users-optional$NWE
Agent de l'exécution Shift Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alerte Enabled: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Rangs De Campagne :$NWB#vicidial_users-campaign_ranks$NWE
\n"; - echo "\n"; - echo "$RANKcampaigns_list"; - echo "
\n"; - echo "
Groupes entrants: $NWB#vicidial_users-closer_campaigns$NWE
\n"; - echo "\n"; - echo "$RANKgroups_list"; - echo "
\n"; - echo "
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC Niveau de l'utilisateur:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Finition:$NWB#vicidial_users-qc_finish$NWE
QC Comité:$NWB#vicidial_users-qc_commit$NWE
Utilisateur Territoires: $Uterrs_list
OPTIONS DE L'INTERFACE D'ADMINISTRATION:
Voir les rapports: $NWB#vicidial_users-view_reports$NWE
Changer les options de l'interface de l'agent: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifier les utilisateurs: $NWB#vicidial_users-modify_sections$NWE
Changer l'agent de campagne: $NWB#vicidial_users-change_agent_campaign$NWE
Supprimer les utilisateurs: $NWB#vicidial_users-delete_users$NWE
Modifier les groupes d'utilisateurs: $NWB#vicidial_users-modify_sections$NWE
Supprimer les groupes utilisateurs: $NWB#vicidial_users-delete_user_groups$NWE
Modifier les listes: $NWB#vicidial_users-modify_sections$NWE
Supprimer les listes: $NWB#vicidial_users-delete_lists$NWE
Charger des fiches: $NWB#vicidial_users-load_leads$NWE
Modifier les fiches: $NWB#vicidial_users-modify_leads$NWE
Listes de téléchargement: $NWB#vicidial_users-modify_leads$NWE
Rapports d'exportation: $NWB#vicidial_users-export_reports$NWE
Modifier les campagnes: $NWB#vicidial_users-modify_sections$NWE
Détails de la campagne: $NWB#vicidial_users-campaign_detail$NWE
Supprimer les campagnes: $NWB#vicidial_users-delete_campaigns$NWE
Modifier les In-Groups: $NWB#vicidial_users-modify_sections$NWE
Supprimer les in-groups: $NWB#vicidial_users-delete_ingroups$NWE
Modifier DiDs:$NWB#vicidial_users-modify_sections$NWE
Supprimer DiDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifier les agents distants: $NWB#vicidial_users-modify_sections$NWE
Supprimer les agents distants: $NWB#vicidial_users-delete_remote_agents$NWE
Modifier les scripts: $NWB#vicidial_users-modify_sections$NWE
Supprimer les scriptss: $NWB#vicidial_users-delete_scripts$NWE
Modifier les filtres: $NWB#vicidial_users-modify_sections$NWE
Supprimer le filtres: $NWB#vicidial_users-delete_filters$NWE
OPTIONS DE L'INTERFACE DE L'AGENT:
L'agent choisit les Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agent Choisir Territoires: $NWB#vicidial_users-agent_choose_territories$NWE
Racourccis clavier actifs: $NWB#vicidial_users-hotkeys_active$NWE
Rappels de service programmés: $NWB#vicidial_users-scheduled_callbacks$NWE
Rappels de service d'agent-seulement: $NWB#vicidial_users-agentonly_callbacks$NWE
Appel manuel de l'agent: $NWB#vicidial_users-agentcall_manual$NWE
Enregistrement Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Transferts Vicidial: $NWB#vicidial_users-vicidial_transfers$NWE
Closer Default Blended: $NWB#vicidial_users-closer_default_blended$NWE
Ecrasement de l'enregistrment VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
Modifications des données des clients pour l'agent: $NWB#vicidial_users-alter_custdata_override$NWE
Alter Agent Client Téléphone Override:$NWB#vicidial_users-alter_custphone_override$NWE
Agent de l'exécution Shift Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alerte Enabled: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Permettez Alertes: $NWB#vicidial_users-allow_alerts$NWE
Rangs De Campagne :$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Groupes entrants: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC Niveau de l'utilisateur:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Finition:$NWB#vicidial_users-qc_finish$NWE
QC Comité:$NWB#vicidial_users-qc_commit$NWE
Accès administateur de l'AGC: $NWB#vicidial_users-ast_admin_access$NWE
Supprimer les téléphones AGC: $NWB#vicidial_users-ast_delete_phones$NWE
Modifier la période d'appelss: $NWB#vicidial_users-modify_call_times$NWE
SupprimerPériodes d'appels: $NWB#vicidial_users-delete_call_times$NWE
Modifier les serveurs: $NWB#vicidial_users-modify_sections$NWE
Agent API d'accès:$NWB#vicidial_users-vdc_agent_api_access$NWE
OPTIONS DE L'INTERFACE D'ADMINISTRATION:
Ajouter Log timeclock Record: $NWB#vicidial_users-add_timeclock_log$NWE
Modifier timeclock journal Record: $NWB#vicidial_users-modify_timeclock_log$NWE
Supprimer timeclock journal Record: $NWB#vicidial_users-delete_timeclock_log$NWE
Voir les rapports: $NWB#vicidial_users-view_reports$NWE
Shift Manager exécution Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
Changer les options de l'interface de l'agent: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifier les utilisateurs: $NWB#vicidial_users-modify_sections$NWE
Changer l'agent de campagne: $NWB#vicidial_users-change_agent_campaign$NWE
Supprimer les utilisateurs: $NWB#vicidial_users-delete_users$NWE
\n"; + echo "
Modifier les groupes d'utilisateurs: $NWB#vicidial_users-modify_sections$NWE
Supprimer les groupes utilisateurs: $NWB#vicidial_users-delete_user_groups$NWE
Modifier les listes: $NWB#vicidial_users-modify_sections$NWE
Supprimer les listes: $NWB#vicidial_users-delete_lists$NWE
Charger des fiches: $NWB#vicidial_users-load_leads$NWE
Modifier les fiches: $NWB#vicidial_users-modify_leads$NWE
Listes de téléchargement: $NWB#vicidial_users-modify_leads$NWE
Rapports d'exportation: $NWB#vicidial_users-export_reports$NWE
Supprimer From Listes DNC: $NWB#vicidial_users-delete_from_dnc$NWE
Modifier les campagnes: $NWB#vicidial_users-modify_sections$NWE
Détails de la campagne: $NWB#vicidial_users-campaign_detail$NWE
Supprimer les campagnes: $NWB#vicidial_users-delete_campaigns$NWE
Modifier les In-Groups: $NWB#vicidial_users-modify_sections$NWE
Supprimer les in-groups: $NWB#vicidial_users-delete_ingroups$NWE
Modifier DiDs:$NWB#vicidial_users-modify_sections$NWE
Supprimer DiDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifier les agents distants: $NWB#vicidial_users-modify_sections$NWE
Supprimer les agents distants: $NWB#vicidial_users-delete_remote_agents$NWE
Modifier les scripts: $NWB#vicidial_users-modify_sections$NWE
Supprimer les scriptss: $NWB#vicidial_users-delete_scripts$NWE
Modifier les filtres: $NWB#vicidial_users-modify_sections$NWE
Supprimer le filtres: $NWB#vicidial_users-delete_filters$NWE
Accès administateur de l'AGC: $NWB#vicidial_users-ast_admin_access$NWE
Supprimer les téléphones AGC: $NWB#vicidial_users-ast_delete_phones$NWE
Modifier la période d'appelss: $NWB#vicidial_users-modify_call_times$NWE
SupprimerPériodes d'appels: $NWB#vicidial_users-delete_call_times$NWE
Modifier les serveurs: $NWB#vicidial_users-modify_sections$NWE
Agent API d'accès:$NWB#vicidial_users-vdc_agent_api_access$NWE
Ajouter Log timeclock Record: $NWB#vicidial_users-add_timeclock_log$NWE
Modifier timeclock journal Record: $NWB#vicidial_users-modify_timeclock_log$NWE
Supprimer timeclock journal Record: $NWB#vicidial_users-delete_timeclock_log$NWE
Shift Manager exécution Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

SUPPRIMER CET UTILISATEUR\n"; + } + echo "

Cliquez ici pour la feuille de présence de l'utilisateur\n"; + echo "

Cliquez ici pour les statuts utilisateur\n"; + echo "

Cliquez ici pour les statistiques de l'utilisateur\n"; + echo "

Cliquez ici pour l'utilisateur de plusieurs jours le statut de détails rapport\n"; + echo "

Cliquez ici pour les rappels reservés à cet utilisateur\n"; + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce record
\n"; + } } } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -12999,19 +15859,19 @@ if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==31) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; $rslt=mysql_query($stmt, $link); @@ -13019,7 +15879,7 @@ if ($ADD==31) $enable_vtiger_integration_LU = $row[0]; $vtiger_url_LU = $row[1]; - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $campaign_name = $row[1]; @@ -13124,6 +15984,42 @@ if ($ADD==31) $cpd_amd_action = $row[103]; $agent_allow_group_alias = $row[104]; $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -13169,14 +16065,13 @@ if ($ADD==31) $QCL_to_print = (count($QClists) -0); ##### get status listings for dynamic pulldown - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; $dial_statuses_list=''; $qc_statuses_list=''; $survey_ni_status_list=''; - $o=0; while ($statuses_to_print > $o) { @@ -13214,7 +16109,7 @@ if ($ADD==31) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -13355,9 +16250,14 @@ if ($ADD==31) echo "
Description de la campagne: $NWB#vicidial_campaigns-campaign_description$NWE
Campagne Changement Date: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagne Login Date: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Campagne Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Extension du parc: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Formulaire Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulaire Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulaire Web Two: $NWB#vicidial_campaigns-web_form_address$NWE
Formulaire Web Public: $NWB#vicidial_campaigns-web_form_target$NWE
Autoriser les closers: $NWB#vicidial_campaigns-allow_closers$NWE
Statut d'appel$o: \n"; + echo "
Statut d'appel$o: \n"; if ($DEFstatusDISABLED > 0) { @@ -13385,14 +16285,118 @@ if ($ADD==31) } } - echo "
Add A Dial Etat:
Add A Dial Etat:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordre de la liste: $NWB#vicidial_campaigns-lead_order$NWE
Ordre de la liste: $NWB#vicidial_campaigns-lead_order$NWE
Liste Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Drop Lockout Time: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Forcer la réinitialisation du distributeur de fiches: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Méthode d'appel: $NWB#vicidial_campaigns-dial_method$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPTER LE DEPASSEMENT
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPTER LE DEPASSEMENT
Valable seulement pour les contrôles: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Pourcentage limite d'abandon: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Transferts concurents: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Transferts concurents: $NWB#vicidial_campaigns-concurrent_transfers$NWE
File d'attente de priorité: $NWB#vicidial_campaigns-queue_priority$NWE
Multiples campagne Drop Rate Groupe: $NWB#vicidial_campaigns-drop_rate_group$NWE
Appeler automatiquement le numéro alternatif: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Appeler l'agent suivant : $NWB#vicidial_campaigns-next_agent_call$NWE
Appeler l'agent suivant : $NWB#vicidial_campaigns-next_agent_call$NWE
Heure d'appel locale:
Délai de tentative d'appel: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Délai de tentative d'appel: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Préfixe de numérotation: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Omettre le phone code: $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID de la campagne: $NWB#vicidial_campaigns-campaign_cid$NWE
CallerID de la campagne: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Exten VDAD de la campagne: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Exten VDAD de la campagne: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Extension d'enregistrement de la campagne: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Lancer l'appel: $NWB#vicidial_campaigns-get_call_launch$NWE
Lancer l'appel: $NWB#vicidial_campaigns-get_call_launch$NWE
Message de répondeur: $NWB#vicidial_campaigns-am_message_exten$NWE
Message de répondeur: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Options: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD envoyé au VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
AMD envoyé au VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Action: $NWB#vicidial_campaigns-cpd_amd_action$NWE
CPD AMD Action: $NWB#vicidial_campaigns-cpd_amd_action$NWE
DTMF Transfert-Conf 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Quick Transfer Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Préremplir Transfert Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Minuterie d-action: $NWB#vicidial_campaigns-timer_action$NWE
Minuterie d-action Message: $NWB#vicidial_campaigns-timer_action_message$NWE
Minuterie d-action Seconds: $NWB#vicidial_campaigns-timer_action_seconds$NWE
Appel du numéro alternatif: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Temps avant abandon de l'appel: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Temps avant abandon de l'appel: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop d'action:$NWB#vicidial_campaigns-drop_action$NWE
Drop d'action:$NWB#vicidial_campaigns-drop_action$NWE
Extension du port sûr: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Extension du port sûr: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Boîte vocale: $NWB#vicidial_campaigns-voicemail_ext$NWE
Boîte vocale: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Drop de transfert du Groupe:
Drop de transfert du Groupe:$NWB#vicidial_campaigns-drop_inbound_group$NWE
Temps de conclusion: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Message de conclusion: $NWB#vicidial_campaigns-wrapup_message$NWE
Utiliser la liste DNC interne: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Utiliser la liste DNC interne: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Utilisez la liste de campagne DNC: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
Utilisez la liste de campagne DNC: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentCodes De PauseActif: $NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Campagne Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Désactiver la modification des données d'un client$NWB#vicidial_campaigns-disable_alter_custdata$NWE
Désactiver Alter clientèle Téléphone:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Désactiver la modification des données d'un client$NWB#vicidial_campaigns-disable_alter_custdata$NWE
Désactiver Alter clientèle Téléphone:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Autoriser la connection dans les distributeurs vides: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
N Hopper Dialing: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Propriétaire composer seulement: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agent de sélectionner des territoires: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent d-affichage composable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agent Chef de file d'attente d'affichage:$NWB#vicidial_campaigns-display_queue_count$NWE
Identification Manuelle De Liste De Cadran :$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Agent Chef de file d'attente d'affichage:$NWB#vicidial_campaigns-display_queue_count$NWE
Manuelle Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent Voir appels en attente: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Voir les appels en attente de lancement: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agent Grab appels en attente: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Agent d-appel Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agent Pause après chaque appel: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Identification Manuelle De Liste De Cadran :$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manuelle Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent de copie d'écran du Presse-papiers: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agent Screen Extended Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Way Outbound Call CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Outbound Call CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Call Préfixe de numérotation: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
3-Way Call Préfixe de numérotation: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Groupe Alias permis: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Vtiger Recherche Catégorie: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Recherche Catégorie: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Créer Enregistrement d'appel: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Recherche Dead Comptes: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Vtiger Créer Lead Enregistrement: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Créer Enregistrement d'appel: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Screen Login: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
Vtiger Créer Lead Enregistrement: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger état des appels: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Screen Login: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup Adresse: $NWB#vicidial_campaigns-crm_login_address$NWE
Début de l-appel Web: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call Web: $NWB#vicidial_campaigns-dispo_call_url$NWE
Groupes entrants autorisés:
"; @@ -13661,37 +16848,37 @@ if ($ADD==31) echo "
\n"; - echo "
\n"; + echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "
LISTES DANS CETTE CAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTES DANS CETTE CAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; - echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14411,7 +17626,7 @@ if ($ADD==34) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; - - echo "
\n"; - echo ""; + echo "\n"; echo "
\n"; + echo ""; - $LISTlink='stage=LISTIDDOWN'; - $TALLYlink='stage=TALLYDOWN'; - $ACTIVElink='stage=ACTIVEDOWN'; - $CAMPAIGNlink='stage=CAMPAIGNDOWN'; - $CALLDATElink='stage=CALLDATEDOWN'; - $SQLorder='order by list_id'; - if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} - if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} - if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} - if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} - if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} - if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} - if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} - if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} - if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} - if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -13744,47 +16931,48 @@ if ($ADD==31) echo "

\n"; - echo "
\n"; + echo "
\n"; - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} - else - {$fSQL = '';} + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Cette campagne a $active_lists listes actives et $inactive_lists listes inactives

\n"; + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Cette campagne a $active_lists listes actives et $inactive_lists listes inactives

\n"; - if ($display_dialable_count == 'Y') - { - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - echo " - CACHER

"; + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - CACHER

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - MONTRER

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Cette campagne a $hopper_leads fiches dans le distributeur de fiches

\n"; + echo "Cliquez ici pour voir quelles fiches sont dans le distributeur à l'instant

\n"; + echo "Cliquez ici pour voir une VDAD rapport de cette campagne

\n"; } - else + echo "Cliquez ici pour voir les rappels réservés de cette campagne

\n"; + if ($LOGuser_level >= 9) { - echo "Popup Dialable Leads Count"; - echo " - MONTRER

"; + echo "

Cliquez ici pour voir Admin chages à cette campagne
\n"; } - - $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $hopper_leads = "$rowx[0]"; - - echo "Cette campagne a $hopper_leads fiches dans le distributeur de fiches

\n"; - echo "Cliquez ici pour voir quelles fiches sont dans le distributeur à l'instant

\n"; - echo "Cliquez ici pour voir une VDAD rapport de cette campagne

\n"; + echo "
\n"; } - echo "Cliquez ici pour voir les rappels réservés de cette campagne

\n"; - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à cette campagne\n"; - } - echo "
\n"; - } ##### CAMPAIGN CUSTOM STATUSES ##### @@ -13810,9 +16998,9 @@ if ($ADD==31) echo "
\n"; echo "
STATUTS PERSONNALISES DANS CETTE CAMPAGNE:   $NWB#vicidial_campaign_statuses$NWE
\n"; echo "\n"; - echo "\n"; + echo "\n"; - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -13845,6 +17033,14 @@ if ($ADD==31) echo "\n"; } @@ -13855,8 +17051,13 @@ if ($ADD==31) echo "\n"; echo "Etat:   \n"; echo "Description:   \n"; - echo "Selectionnable:   \n"; - echo "Réponse de l'homme:   \n"; + echo "Selectionnable:  
\n"; + echo "Réponse de l'homme:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; echo "Catégorie :\n"; echo "
ETATDESCRIPTIONSELECTIONABLERÉPONSE HUMAINESUPPRIMER
ETATDESCRIPTIONSELECTIONABLERÉPONSE HUMAINECATÉGORIEMODIFY-DELETE
        \n"; echo "   \n"; echo "SUPPRIMER\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT * from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -13934,7 +17136,7 @@ if ($ADD==31) } $camp_lists = eregi_replace(".$","",$camp_lists); - $stmt="SELECT * from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; @@ -14060,13 +17262,14 @@ if ($ADD==31) echo "
RACCOURCI CLAVIERETATDESCRIPTIONSUPPRIMER
\n"; echo "\n"; - $stmt="SELECT * from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; - $rslt=mysql_query($stmt, $link); - $pause_codes_to_print = mysql_num_rows($rslt); - $o=0; - while ($pause_codes_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -14182,22 +17385,33 @@ if ($ADD==31) { echo "

SONDAGE SETTINGS pour cette campagne:
\n"; - echo "
CODES DE PAUSEFACTURABLEMODIFIERSUPPRIMER
\n"; + echo "
\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "
\n"; echo "\n"; - echo "
Enquête Premier fichier audio: $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Enquête Premier fichier audio: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Enquête DTMF Digits: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Enquête Non Intéressé Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Enquête sur Opt-in audio de dossier: $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Enquête Non Intéressé fichier audio: $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Enquête sur Opt-in audio de dossier: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Enquête Non Intéressé fichier audio: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Enquête sur la méthode: $NWB#vicidial_campaigns-survey_method$NWE
Etude de non-réponse de l'action: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Enquête Non Intéressé Etat: $NWB#vicidial_campaigns-survey_ni_status$NWE
Enquête sur le troisième chiffre: $NWB#vicidial_campaigns-survey_third_digit$NWE
Troisième enquête sur Fichier Audio: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Troisième enquête Etat: $NWB#vicidial_campaigns-survey_third_status$NWE
Enquête Troisième prorogation: $NWB#vicidial_campaigns-survey_third_exten$NWE
Enquête quatrième chiffre: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Quatrième étude Fichier Audio: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Quatrième enquête sur l-état: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Quatrième enquête Extension: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Enquête sur la carte réponse Digit: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Sondage Enquête Xfer Extension: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Enquête sur la campagne d'enregistrement du répertoire: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Boîte vocale: $NWB#vicidial_campaigns-voicemail_ext$NWE
Boîte vocale: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; @@ -14208,8 +17422,8 @@ if ($ADD==31) if ($SUB < 1) { echo "

\n"; - echo "
DECONNECTER TOUS LES AGENTS DE CETTE CAMPAGNE

\n"; - echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + echo "DECONNECTER TOUS LES AGENTS DE CETTE CAMPAGNE

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; if ($LOGdelete_campaigns > 0) { @@ -14233,21 +17447,21 @@ if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==34) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dial_status_a = $row[3]; @@ -14281,13 +17495,14 @@ if ($ADD==34) $default_xfer_group = $row[67]; $campaign_allow_inbound = $row[65]; $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} else {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; @@ -14305,7 +17520,7 @@ if ($ADD==34) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -14396,7 +17611,7 @@ if ($ADD==34) echo "
Campagne Changement Date: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagne Login Date: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Extension du parc: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Formulaire Web: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Autoriser les closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Statut d'appel$o: \n"; + echo "
Statut d'appel$o: \n"; if ($DEFstatusDISABLED > 0) { echo "$Dstatus - $statname_list[$Dstatus]         \n"; @@ -14424,14 +17639,118 @@ if ($ADD==34) } } - echo "
Add A Dial Etat:
Add A Dial Etat:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordre de la liste: $NWB#vicidial_campaigns-lead_order$NWE
Ordre de la liste: $NWB#vicidial_campaigns-lead_order$NWE
Liste Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Forcer la réinitialisation du distributeur de fiches: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Méthode d'appel: $NWB#vicidial_campaigns-dial_method$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Adapter le modificateur d'intensité: \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT user,campaign_rank,calls_today from vicidial_campaign_agents where campaign_id='$campaign_id'"; + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); @@ -14624,13 +17999,13 @@ if ($ADD==34) else {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; } echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; - echo "DECONNECTER TOUS LES AGENTS DE CETTE CAMPAGNE

\n"; + echo "DECONNECTER TOUS LES AGENTS DE CETTE CAMPAGNE

\n"; if ($LOGdelete_campaigns > 0) @@ -14678,10 +18053,18 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

MÉLANGES DE LISTE POUR CETTE CAMPAGNE :  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; - echo "

Experimental Feature in development!!! NON-FUNCTIONAL
\n"; + echo "
ATTENTION, nous recommandons que la liste Mix pour les utilisateurs avancés, S-il vous plaît lire le manuel VICIDIAL Manager
\n"; + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } - $stmt="SELECT * from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; $rslt=mysql_query($stmt, $link); $listmixes = mysql_num_rows($rslt); $o=0; @@ -14700,11 +18083,11 @@ if ( ($ADD==34) or ($ADD==31) ) else {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} } - echo "
\n"; + echo "

\n"; echo ""; echo "\n"; echo "\n"; + echo "List: $MIXdetailsLIST   SUPPRIMER\n"; echo "\n"; @@ -14810,8 +18193,8 @@ if ( ($ADD==34) or ($ADD==31) ) echo "\n"; - echo "\n"; + echo "\n"; - if ($q > 9) {$AE_disabled = 'DISABLED';} + if ($q > 39) {$AE_disabled = 'DISABLED';} else {$AE_disabled = '';} - echo "\n"; + + $X='X'; + echo "\n"; echo "
\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14755,10 +18138,10 @@ if ( ($ADD==34) or ($ADD==31) ) echo "
\n"; echo "\n"; - echo "List: $MIXdetailsLIST   SUPPRIMER
\n"; - echo "
\n"; + echo "
\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14820,11 +18203,27 @@ if ( ($ADD==34) or ($ADD==31) ) echo "List: \n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "SUPPRIMER\n"; echo "
\n"; } @@ -14832,7 +18231,7 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

AJOUTER UNE NOUVELLE LISTE MIX
\n"; echo "\n"; - echo "
\n"; + echo "
\n"; echo "\n"; echo "\n"; echo "\n"; @@ -15251,356 +18650,565 @@ echo "
\n"; ###################### if ($ADD==311) -{ + { if ($LOGmodify_lists==1) - { - echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_lists where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $campaign_id = $row[2]; - $active = $row[3]; - $list_description = $row[4]; - $list_changedate = $row[5]; - $list_lastcalldate = $row[6]; - - # grab names of global statuses and statuses in the selected campaign - $stmt="SELECT * from vicidial_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($Cstatuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - # end grab status names - - - echo "
MODIFIER UN ENREGISTREMENT DE LA LISTE: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
ID de la liste: $row[0]$NWB#vicidial_lists-list_id$NWE
Nom de la liste: $NWB#vicidial_lists-list_name$NWE
Description de la liste: $NWB#vicidial_lists-list_description$NWE
Campagne: $NWB#vicidial_lists-campaign_id$NWE
Actif: $NWB#vicidial_lists-active$NWE
Réinitialiser les statuts des fiches appelées pour cette liste: $NWB#vicidial_lists-reset_list$NWE
Date de changement de la liste: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Liste Date Last Call: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
\n"; - - echo "
\n"; - echo "
STATUTS DANS CETTE LISTE:
\n"; - echo "\n"; - echo "\n"; - - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } - - $o=0; - if ($lead_list['count'] > 0) - { - while (list($dispo,) = each($lead_list[$since_reset])) { + echo "
ETATNOM DU STATUTAPPELENON APPELE
\n"; - $o++; - } - } + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); - echo "\n"; - echo "\n"; + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names - echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; - if ($dispo == 'CBHOLD') + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) { - $CLB=""; - $CLE=""; - } - else - { - $CLB=''; - $CLE=''; + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; } - echo "
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; - unset($lead_list); + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} - echo "
\n"; - echo "
ZONES DE TEMPS DANS CETTE LISTE:
\n"; - echo "\n"; - echo "\n"; + echo "
MODIFIER UN ENREGISTREMENT DE LA LISTE: $list_id\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
GMT OFFSET NOW (heure locale)APPELENON APPELE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $o=0; - $plus='+'; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } + echo "\n"; - if ($lead_list['count'] > 0) - { - while (list($tzone,) = each($lead_list[$since_reset])) - { - $LOCALzone=3600 * $tzone; - $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + echo "\n"; - if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} - else {$DISPtzone = "$tzone";} - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + echo "\n"; - echo "\n"; - } - } + echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - echo "
ID de la liste: $list_id$NWB#vicidial_lists-list_id$NWE
Nom de la liste: $NWB#vicidial_lists-list_name$NWE
Description de la liste: $NWB#vicidial_lists-list_description$NWE
Campagne: $NWB#vicidial_lists-campaign_id$NWE
Actif: $NWB#vicidial_lists-active$NWE
Réinitialiser les statuts des fiches appelées pour cette liste: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Date de changement de la liste: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Liste Date Last Call: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Script Override: $NWB#vicidial_lists-agent_script_override$NWE
Campagne CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Message de répondeur Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
Drop Inbound Groupe Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]
numéro de Transfer-Conf 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE

\n"; - unset($lead_list); + echo "
numéro de Transfer-Conf 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_count,count(*) from vicidial_list where list_id='$list_id' group by status,called_count order by status,called_count"; - $rslt=mysql_query($stmt, $link); - $status_called_to_print = mysql_num_rows($rslt); + echo "
\n"; + echo "
STATUTS DANS CETTE LISTE:
\n"; + echo "\n"; + echo "\n"; - $o=0; - $sts=0; - $first_row=1; - $all_called_first=1000; - $all_called_last=0; - while ($status_called_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $leads_in_list = ($leads_in_list + $rowx[2]); - $count_statuses[$o] = "$rowx[0]"; - $count_called[$o] = "$rowx[1]"; - $count_count[$o] = "$rowx[2]"; - $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); - if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) - { - if ($first_row) {$first_row=0;} - else {$sts++;} - $status[$sts] = "$rowx[0]"; - $status_called_first[$sts] = "$rowx[1]"; - if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} - } - $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); - $status_called_last[$sts] = "$rowx[1]"; - if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - $o++; - } + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ETATNOM DU STATUTAPPELENON APPELE
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + echo "
\n"; + echo "
ZONES DE TEMPS DANS CETTE LISTE:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
GMT OFFSET NOW (heure locale)APPELENON APPELE
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); - echo "
\n"; - echo "
NOMBRE D'APPELES DANS CETTE LISTE:
\n"; - echo "\n"; - echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; + echo "
\n"; + echo "
Guichet unique de cette liste:
\n"; + echo "
ETATNOM DU STATUT$firstSOUS TOTAL
\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERAPPELENON APPELE
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
LES RANGS DANS CETTE LISTE:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKAPPELENON APPELE
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
NOMBRE D'APPELES DANS CETTE LISTE:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; $sts=0; $statuses_called_to_print = count($status); while ($statuses_called_to_print > $sts) - { - $Pstatus = $status[$sts]; - if (eregi("1$|3$|5$|7$|9$", $sts)) - {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} - else - {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} - # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; - # echo "$status[$sts]|"; - echo ""; + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; $first = $all_called_first; while ($first <= $all_called_last) { - if (eregi("1$|3$|5$|7$|9$", $sts)) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - else - { - if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - - $called_printed=0; - $o=0; - while ($status_called_to_print > $o) - { - if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) - { - $called_printed++; - echo ""; - } - - - $o++; - } - if (!$called_printed) - {echo "";} + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; $first++; } - echo "\n\n"; + echo "\n"; - $sts++; + echo "
ETATNOM DU STATUT$first$FplusSOUS TOTAL
$Pstatus$statuses_list[$Pstatus]
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
TOTAL $count_count[$o]  $all_called_count[$first]$leads_in_sts[$sts]
$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Cliquez ici pour voir tous les CallBack Détient dans cette liste

\n"; + echo "

Cliquez ici pour télécharger la liste

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

SUPPRIMER CETTE LISTE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à cette liste\n"; + } } - - echo "
TOTAL$all_called_count[$first]$leads_in_list

\n"; - - - - - - echo "
\n"; - - echo "

Cliquez ici pour voir tous les CallBack Détient dans cette liste

\n"; - echo "

Cliquez ici pour télécharger la liste

\n"; - - if ($LOGdelete_lists > 0) - { - echo "

SUPPRIMER CETTE LISTE\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à cette liste
\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} @@ -15609,345 +19217,429 @@ if ($ADD==311) ###################### if ($ADD==3111) -{ - if ($LOGmodify_ingroups==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_groups where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $group_name = $row[1]; - $group_color = $row[2]; - $active = $row[3]; - $web_form_address = stripslashes($row[4]); - $voicemail_ext = $row[5]; - $next_agent_call = $row[6]; - $fronter_display = $row[7]; - $script_id = $row[8]; - $get_call_launch = $row[9]; - $xferconf_a_dtmf = $row[10]; - $xferconf_a_number = $row[11]; - $xferconf_b_dtmf = $row[12]; - $xferconf_b_number = $row[13]; - $drop_call_seconds = $row[14]; - $drop_action = $row[15]; - $drop_exten = $row[16]; - $call_time_id = $row[17]; - $after_hours_action = $row[18]; - $after_hours_message_filename = $row[19]; - $after_hours_exten = $row[20]; - $after_hours_voicemail = $row[21]; - $welcome_message_filename = $row[22]; - $moh_context = $row[23]; - $onhold_prompt_filename = $row[24]; - $prompt_interval = $row[25]; - $agent_alert_exten = $row[26]; - $agent_alert_delay = $row[27]; - $default_xfer_group = $row[28]; - $queue_priority = $row[29]; - $drop_inbound_group = $row[30]; - $ingroup_recording_override = $row[31]; - $ingroup_rec_filename = $row[32]; - $afterhours_xfer_group = $row[33]; - $qc_enabled = $row[34]; - $qc_statuses = $row[35]; - $qc_shift_id = $row[36]; - $qc_get_record_launch = $row[37]; - $qc_show_recording = $row[38]; - $qc_web_form_address = stripslashes($row[39]); - $qc_script = $row[40]; - $play_place_in_line = $row[41]; - $play_estimate_hold_time = $row[42]; - $hold_time_option = $row[43]; - $hold_time_option_seconds = $row[44]; - $hold_time_option_exten = $row[45]; - $hold_time_option_voicemail = $row[46]; - $hold_time_option_xfer_group = $row[47]; - $hold_time_option_callback_filename = $row[48]; - $hold_time_option_callback_list_id = $row[49]; - $hold_recall_xfer_group = $row[50]; - $no_delay_call_route = $row[51]; - $play_welcome_message = $row[52]; - $answer_sec_pct_rt_stat_one = $row[53]; - $answer_sec_pct_rt_stat_two = $row[54]; - $default_group_alias = $row[55]; - - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $Dgroups_menu=''; - $Dgroups_selected=0; - $Agroups_menu=''; - $Agroups_selected=0; - $Hgroups_menu=''; - $Hgroups_selected=0; - $Tgroups_menu=''; - $Tgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) + if ($LOGmodify_ingroups==1) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "\n"; - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - if ($group_id!=$rowx[0]) - { - $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - } - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - if ($Agroups_selected < 1) - {$Agroups_menu .= "\n";} - else - {$Agroups_menu .= "\n";} - if ($Tgroups_selected < 1) - {$Tgroups_menu .= "\n";} - else - {$Tgroups_menu .= "\n";} - if ($Hgroups_selected < 1) - {$Hgroups_menu .= "\n";} - else - {$Hgroups_menu .= "\n";} + echo "
\n"; + echo ""; - - echo "
MODIFIER UN ENREGISTREMENT DE GROUPES: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - ##### get groups_alias listings for dynamic default group alias pulldown list menu - $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; - $rslt=mysql_query($stmt, $link); - $group_alias_to_print = mysql_num_rows($rslt); - $group_alias_menu=''; - $group_alias_selected=0; - $o=0; - while ($group_alias_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $group_alias_menu .= "\n"; - $o++; - } - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - - ##### get status listings for dynamic pulldown - $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); - $QCstatuses = explode(" ", $qc_statuses); - $QCs_to_print = (count($QCstatuses) -0); - $stmt="SELECT * from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $qc_statuses_list=''; + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; $o=0; - while ($statuses_to_print > $o) + while ($Xgroups_to_print > $o) { $rowx=mysql_fetch_row($rslt); - $qc_statuses_list .= "$rowx[0] - $rowx[1]\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + echo "
MODIFIER UN ENREGISTREMENT DE GROUPES: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
ID du groupe: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nom du groupe: $NWB#vicidial_inbound_groups-group_name$NWE
Couleur du groupe: $NWB#vicidial_inbound_groups-group_color$NWE
Actif: $NWB#vicidial_inbound_groups-active$NWE
Formulaire Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Appeler l'agent suivant : $NWB#vicidial_inbound_groups-next_agent_call$NWE
File d'attente de priorité: $NWB#vicidial_inbound_groups-queue_priority$NWE
Affichage de l'enseigne: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Lancer l'appel: $NWB#vicidial_inbound_groups-get_call_launch$NWE
DTMF Transfert-Conf 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
DTMF Transfert-Conf 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Temps avant abandon de l'appel: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop d'action:$NWB#vicidial_inbound_groups-drop_action$NWE
Extension d'abandon: $NWB#vicidial_inbound_groups-drop_exten$NWE
Boîte vocale: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop de transfert du Groupe:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Temps D'Appel :$NWB#vicidial_inbound_groups-call_time_id$NWE
Après Action D'Heures :$NWB#vicidial_inbound_groups-after_hours_action$NWE
Après Nom de fichier De Message D'Heures :$NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Après Prolongation D'Heures :$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Après Des Heures Boîte vocale :$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Après les heures d'ouverture de transfert de Groupe:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Nom de fichier Bienvenu De Message :$NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Play Message de bienvenue:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Musique Sur Le Contexte De Prise :$NWB#vicidial_inbound_groups-moh_context$NWE
Sur Le Nom de fichier De Message de sollicitation De Prise :$NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Sur L'Intervalle De Message de sollicitation De Prise :$NWB#vicidial_inbound_groups-prompt_interval$NWE
Jouer en ligne Lieu:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Hold estimée Play Time:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Hold Time Option:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Hold Time Option Seconds:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Hold Time Option Extension:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Hold Time Option de messagerie vocale:$NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Hold Time Option de transfert en groupe:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Hold Time Option Callback Filename:$NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Hold Time Option Callback Liste ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Prolongation Alerte D'Agent :$NWB#vicidial_inbound_groups-agent_alert_exten$NWE
L'Alerte D'Agent Retardent :$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Groupe De Transfert De Défaut :$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Groupe par défaut Alias: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Hold Recall transfert en groupe:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Pas de délai d'appel Route:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
En groupe enregistrement Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
En groupe d'enregistrement du fichier:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Stats Pourcentage des appels dans les X secondes 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Stats Pourcentage des appels dans les X secondes 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
 
Inbound Groupe QC Paramètres:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; $o++; } - $stmt="SELECT distinct(status),status_name from vicidial_campaign_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); + echo "\n"; - $o=0; - while ($Cstatuses_to_print > $o) + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) { - $rowx=mysql_fetch_row($rslt); - if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) { + $rowx=mysql_fetch_row($rslt); $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; } - ##### get scripts listings for pulldown - $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; - $rslt=mysql_query($stmt, $link); - $scripts_to_print = mysql_num_rows($rslt); - $QCscripts_list=""; - $o=0; - while ($scripts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCscripts_list .= "\n"; - $scriptname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - ##### get shifts listings for pulldown - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $QCshifts_list=""; - $o=0; - while ($shifts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCshifts_list .= "\n"; - $shiftname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - } - - echo "
ID du groupe: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nom du groupe: $NWB#vicidial_inbound_groups-group_name$NWE
Couleur du groupe: $NWB#vicidial_inbound_groups-group_color$NWE
Actif: $NWB#vicidial_inbound_groups-active$NWE
Formulaire Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Formulaire Web Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Appeler l'agent suivant : $NWB#vicidial_inbound_groups-next_agent_call$NWE
File d'attente de priorité: $NWB#vicidial_inbound_groups-queue_priority$NWE
Affichage de l'enseigne: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Lancer l'appel: $NWB#vicidial_inbound_groups-get_call_launch$NWE
DTMF Transfert-Conf 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
DTMF Transfert-Conf 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Minuterie d-action: $NWB#vicidial_inbound_groups-timer_action$NWE
Minuterie d-action Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Minuterie d-action Seconds: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Temps avant abandon de l'appel: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop d'action:$NWB#vicidial_inbound_groups-drop_action$NWE
Extension d'abandon: $NWB#vicidial_inbound_groups-drop_exten$NWE
Boîte vocale: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop de transfert du Groupe:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Temps D'Appel :$NWB#vicidial_inbound_groups-call_time_id$NWE
Après Action D'Heures :$NWB#vicidial_inbound_groups-after_hours_action$NWE
Après Nom de fichier De Message D'Heures : audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Après Prolongation D'Heures :$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Après Des Heures Boîte vocale : voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Après les heures d'ouverture de transfert de Groupe:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Agents n Queueing: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Non Non Queue action de l-agent: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Appel du menu:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID de la liste: "; + echo "
ID de la campagne: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Extension:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Boîte vocale: voicemail chooser\n"; + } + + echo "
+
 
Nom de fichier Bienvenu De Message : audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Play Message de bienvenue:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Musique Sur Le Contexte De Prise : moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
Sur Le Nom de fichier De Message de sollicitation De Prise : audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Sur L'Intervalle De Message de sollicitation De Prise :$NWB#vicidial_inbound_groups-prompt_interval$NWE
Jouer en ligne Lieu:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Hold estimée Play Time:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Hold Time Option:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Hold Time Option Seconds:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Hold Time Option Extension:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Hold Time Option de messagerie vocale: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Hold Time Option de transfert en groupe:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Hold Time Option Callback Filename: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Hold Time Option Callback Liste ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agent d-alerte Filename: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
L'Alerte D'Agent Retardent :$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Groupe De Transfert De Défaut :$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Groupe par défaut Alias: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Hold Recall transfert en groupe:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Pas de délai d'appel Route:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
En groupe enregistrement Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
En groupe d'enregistrement du fichier:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Stats Pourcentage des appels dans les X secondes 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Stats Pourcentage des appels dans les X secondes 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Début de l-appel Web: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call Web: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound Groupe QC Paramètres:
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Statut:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
Get Lancement Record QC: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Voir l'enregistrement: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Statut:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
Get Lancement Record QC: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Voir l'enregistrement: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; - echo "

\n"; + echo "
\n"; + echo "

\n"; - ### list of agent rank or skill-level for this inbound group - echo "
\n"; - echo "
AGENT RANKS FOR THIS ENTRANT GROUP:
\n"; - echo "\n"; - echo "\n"; + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
AGENT RANKS FOR THIS ENTRANT GROUP:
\n"; + echo "
USER     RANK     CALLS TODAY
\n"; + echo "\n"; - $stmt="SELECT user,group_rank,calls_today from vicidial_inbound_group_agents where group_id='$group_id'"; + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); $o=0; - while ($users_to_print > $o) { + while ($users_to_print > $o) + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Cliquez ici pour voir un rapport de ce groupe d'entrants

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "CAMPAGNES DE PERMETTRE DANS CE GROUPE:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

SUPPRIMER CE IN-GROUP\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce groupe en\n"; + } } - - echo "

\n"; - - echo "

\n"; - - echo "Cliquez ici pour voir un rapport de ce groupe d'entrants

\n"; - - echo "
\n"; - - if ($LOGdelete_ingroups > 0) - { - echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; - echo "

SUPPRIMER CE IN-GROUP\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce groupe en
\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} @@ -16068,151 +19832,478 @@ if ($ADD==3111) ###################### if ($ADD==3311) -{ + { if ($LOGmodify_dids==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_dids where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $did_id = $row[0]; - $did_pattern = $row[1]; - $did_description = $row[2]; - $did_active = $row[3]; - $did_route = $row[4]; - $extension = $row[5]; - $exten_context = $row[6]; - $voicemail_ext = $row[7]; - $phone = $row[8]; - $server_ip = $row[9]; - $user = $row[10]; - $user_unavailable_action = $row[11]; - $user_route_settings_ingroup = $row[12]; - $group_id = $row[13]; - $call_handle_method = $row[14]; - $agent_search_method = $row[15]; - $list_id = $row[16]; - $campaign_id = $row[17]; - $phone_code = $row[18]; - - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; - $rslt=mysql_query($stmt, $link); - $campaigns_to_print = mysql_num_rows($rslt); - $campaigns_list=''; - $o=0; - while ($campaigns_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $campaigns_list .= "\n"; - $o++; - } - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) { - $Xgroups_menu .= "SELECTED "; - $Xgroups_selected++; + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; } - $Xgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Dgroups_to_print = mysql_num_rows($rslt); - $Dgroups_menu=''; - $Dgroups_selected=0; - $o=0; - while ($Dgroups_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $Dgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
Modifier un DID RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID Extension:$NWB#vicidial_inbound_dids-did_pattern$NWE
A Description:$NWB#vicidial_inbound_dids-did_description$NWE
Actif: $NWB#vicidial_inbound_dids-did_active$NWE
Route de DID:$NWB#vicidial_inbound_dids-did_route$NWE
Extension:$NWB#vicidial_inbound_dids-extension$NWE
Extension Contexte:$NWB#vicidial_inbound_dids-exten_context$NWE
Boîte vocale: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Téléphone Extension:$NWB#vicidial_inbound_dids-phone$NWE
IP du serveur: $NWB#vicidial_inbound_dids-server_ip$NWE
Appel du menu: $NWB#vicidial_inbound_dids-menu_id$NWE
Utilisateur Agent:$NWB#vicidial_inbound_dids-user$NWE
Unavailable Action utilisateur:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Utilisateur Settings En Route-Group:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID du groupe: $NWB#vicidial_inbound_dids-group_id$NWE
In-Call Groupe Handle Méthode:$NWB#vicidial_inbound_dids-call_handle_method$NWE
En groupe Agent Méthode de recherche:$NWB#vicidial_inbound_dids-agent_search_method$NWE
In-Liste du groupe ID:$NWB#vicidial_inbound_dids-list_id$NWE
En-groupe ID de la campagne:$NWB#vicidial_inbound_dids-campaign_id$NWE
En-groupe Téléphone Code:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Cliquez ici pour voir un rapport de trafic pour cette DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

SUPPRIMER CETTE DID\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce DID\n"; } - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; } - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - - - echo "
Modifier un DID RECORD:$row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "
DID Extension:$NWB#vicidial_inbound_dids-did_pattern$NWE
A Description:$NWB#vicidial_inbound_dids-did_description$NWE
Actif: $NWB#vicidial_inbound_dids-did_active$NWE
Route de DID:$NWB#vicidial_inbound_dids-did_route$NWE
Extension:$NWB#vicidial_inbound_dids-extension$NWE
Extension Contexte:$NWB#vicidial_inbound_dids-exten_context$NWE
Boîte vocale:$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Téléphone Extension:$NWB#vicidial_inbound_dids-phone$NWE
IP du serveur: $NWB#vicidial_inbound_dids-server_ip$NWE
Utilisateur Agent:$NWB#vicidial_inbound_dids-user$NWE
Unavailable Action utilisateur:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Utilisateur Settings En Route-Group:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID du groupe: $NWB#vicidial_inbound_dids-group_id$NWE
In-Call Groupe Handle Méthode:$NWB#vicidial_inbound_dids-call_handle_method$NWE
En groupe Agent Méthode de recherche:$NWB#vicidial_inbound_dids-agent_search_method$NWE
In-Liste du groupe ID:$NWB#vicidial_inbound_dids-list_id$NWE
En-groupe ID de la campagne:$NWB#vicidial_inbound_dids-campaign_id$NWE
En-groupe Téléphone Code:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; - echo "

\n"; - - - - if ($LOGdelete_dids > 0) - { - echo "

SUPPRIMER CETTE DID\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce DID\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "\n"; -echo "\n"; - -echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
MODIFIER UN APPEL Record menu: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menu ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Nom du menu: $NWB#vicidial_call_menu-menu_name$NWE
Menu rapide: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Menu Timeout: $NWB#vicidial_call_menu-menu_timeout$NWE
Menu prompt timeout: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Menu Blancs Prompt: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Menu Répétez: $NWB#vicidial_call_menu-menu_repeat$NWE
Menu Heure Départ: $NWB#vicidial_call_menu-menu_time_check$NWE
Temps D'Appel :$NWB#vicidial_call_menu-call_time_id$NWE
Le suivi des appels dans Real-Time Report: $NWB#vicidial_call_menu-track_in_vdac$NWE
Groupe de suivi: $NWB#vicidial_call_menu-tracking_group$NWE
Appel du menu Options:
+ Option: $dtmf_list   + Description: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Appel du menu:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID de la liste: "; + echo "
ID de la campagne: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Extension:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Boîte vocale: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Option: $dtmf_list   + Description: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Entrée:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Entrée: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

SUPPRIMER CETTE CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages Admin à ce menu d-appel
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} @@ -16221,62 +20312,62 @@ if ($ADD==3311) ###################### if ($ADD==31111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $remote_agent_id = $row[0]; - $user_start = $row[1]; - $number_of_lines = $row[2]; - $server_ip = $row[3]; - $conf_exten = $row[4]; - $status = $row[5]; - $campaign_id = $row[6]; - - echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Début des ID utilisateurs: (nombres seulement, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Nombre de lignes: (nombres seulement)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP du serveur: $NWB#vicidial_remote_agents-server_ip$NWE
Extension externe: (numéro du dial plan pour atteindre les agents)$NWB#vicidial_remote_agents-conf_exten$NWE
Etat: $NWB#vicidial_remote_agents-status$NWE
Campagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Groupes entrants: \n"; - echo "$groups_list"; - echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; - echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; - - - if ($LOGdelete_remote_agents > 0) { - echo "

SUPPRIMER CET AGENT DISTANT\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Début des ID utilisateurs: (nombres seulement, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Nombre de lignes: (nombres seulement)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP du serveur: $NWB#vicidial_remote_agents-server_ip$NWE
Extension externe: (numéro du dial plan pour atteindre les agents)$NWB#vicidial_remote_agents-conf_exten$NWE
Etat: $NWB#vicidial_remote_agents-status$NWE
Campagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Groupes entrants: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

SUPPRIMER CET AGENT DISTANT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à cette télécommande agent
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à cette télécommande agent\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -16284,79 +20375,118 @@ if ($ADD==31111) ###################### if ($ADD==311111) -{ - if ($LOGmodify_usergroups==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_user_groups where user_group='$user_group';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_group = $row[0]; - $group_name = $row[1]; - $GROUP_shifts = $row[5]; - $forced_timeclock_login = $row[6]; - $shift_enforcement = $row[7]; - - echo ""; - - echo "
MODIFIER UN ENREGISTREMENT DE GROUPE D'UTILISATEURS\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - - echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Groupe: (pas d'espace ni de ponctuation)$NWB#vicidial_user_groups-user_group$NWE
Description: (Description du groupe)$NWB#vicidial_user_groups-group_name$NWE
Force timeclock Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift exécution: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campagnes autorisées:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; - echo "$campaigns_list
 "; - echo "
Groupe de changements:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $o=0; - while ($shifts_to_print > $o) + if ($LOGmodify_usergroups==1) { - $rowx=mysql_fetch_row($rslt); - $shift_id_value = $rowx[0]; - $shift_name_value = $rowx[1]; - echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
MODIFIER UN ENREGISTREMENT DE GROUPE D'UTILISATEURS\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - } - echo "\n"; - echo "
Groupe: (pas d'espace ni de ponctuation)$NWB#vicidial_user_groups-user_group$NWE
Description: (Description du groupe)$NWB#vicidial_user_groups-group_name$NWE
Force timeclock Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift exécution: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campagnes autorisées:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Groupe de changements:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) { - if (ereg(" $shift_id_value ", $GROUP_shifts)) + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; } - echo "> $shift_id_value - $shift_name_value
\n"; - $o++; - } - echo "
 
QC permis Campagnes:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; - echo "$qc_campaigns_list"; echo "
 
QC permis l'arrivée des groupes:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; - echo "$qc_groups_list"; + + + echo "
Le statut de mandataire Viewable Groupes:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } echo "
 
\n"; + echo "
Le statut de mandataire Afficher Time: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC permis Campagnes:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC permis l'arrivée des groupes:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; - ### list of users in this user group + ### list of users in this user group $active_confs = 0; $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; @@ -16370,45 +20500,44 @@ if ($ADD==311111) $o=0; while ($users_to_print > $o) - { + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "
$rowx[0]$rowx[1]$rowx[2]$rowx[3]
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Cliquez ici pour voir tous les CallBack Détient dans ce groupe d'utilisateurs

\n"; + echo "

Cliquez ici pour voir le statut timeclock pour ce groupe d'utilisateurs

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

SUPPRIMER CE GROUPE \n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce groupe d'utilisateurs\n"; + } } - - echo "

\n"; - - - - echo "

Cliquez ici pour voir tous les CallBack Détient dans ce groupe d'utilisateurs

\n"; - echo "

Cliquez ici pour voir le statut timeclock pour ce groupe d'utilisateurs

\n"; - - if ($LOGdelete_user_groups > 0) - { - echo "

SUPPRIMER CE GROUPE \n"; - } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce groupe d'utilisateurs
\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -16416,90 +20545,151 @@ if ($ADD==311111) ###################### if ($ADD==3111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $script_name = $row[1]; - $script_comments = $row[2]; - $script_text = $row[3]; - $active = $row[4]; - echo ""; - - echo "
MODIFIER UN SCRIPT\n"; - echo "\n"; - echo "\n"; - echo "
ID du script: $script_id$NWB#vicidial_scripts-script_name$NWE
Nom du script: (titre du script)$NWB#vicidial_scripts-script_name$NWE
Commentaires du script: $NWB#vicidial_scripts-script_comments$NWE
Actif: $NWB#vicidial_scripts-active$NWE
Texte du script:

Prévisualisation du script
"; - # BEGIN Insert Field - echo ""; - echo "
"; - # END Insert Field - echo " $NWB#vicidial_scripts-script_text$NWE
\n"; - - if ($LOGdelete_scripts > 0) { - echo "

SUPPRIMER CE SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
MODIFIER UN SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du script: $script_id$NWB#vicidial_scripts-script_name$NWE
Nom du script: (titre du script)$NWB#vicidial_scripts-script_name$NWE
Commentaires du script: $NWB#vicidial_scripts-script_comments$NWE
Actif: $NWB#vicidial_scripts-active$NWE
Texte du script:

Prévisualisation du script
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " CAMPAIGNS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " IN-GROUPS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

SUPPRIMER CE SCRIPT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages de ce script\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages de ce script\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -16507,29 +20697,30 @@ if ($ADD==3111111) ###################### if ($ADD==31111111) -{ - if ($LOGmodify_filters==1) { - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_filters==1) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; - $stmt="SELECT * from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $lead_filter_name = $row[1]; - $lead_filter_comments = $row[2]; - $lead_filter_sql = $row[3]; - echo ""; + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; - echo "
MODIFIER UN FILTRE\n"; - echo "\n"; - echo "\n"; - echo "
ID du filtre:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nom du filtre: (courte description du filtre)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commentaires du filtre: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtre Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + echo "
MODIFIER UN FILTRE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du filtre:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nom du filtre: (courte description du filtre)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commentaires du filtre: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtre Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; ##### get campaigns listing for dynamic pulldown $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; @@ -16545,31 +20736,31 @@ if ($ADD==31111111) $o++; } - echo "

"; - echo "
TEST SUR LA CAMPAGNE:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "

"; + echo "
TEST SUR LA CAMPAGNE: \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($LOGdelete_filters > 0) - { - echo "

SUPPRIMER CE FILTRE\n"; + if ($LOGdelete_filters > 0) + { + echo "

SUPPRIMER CE FILTRE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce filtre\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce filtre\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -16577,46 +20768,44 @@ if ($ADD==31111111) ###################### if ($ADD==321111111) -{ -if ($LOGmodify_call_times==1) -{ - -if ( ($stage=="ADD") and (strlen($state_rule)>0) ) { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; - if (eregi("\|$",$ct_state_call_times)) - {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Règle d'état ajoutée: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Règle d'état supprimée: $state_rule
\n"; + } + + $ADD=311111111; + } else - {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Règle d'état ajoutée: $state_rule
\n"; + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } } -if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) - { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; - - $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Règle d'état supprimée: $state_rule
\n"; - } - -$ADD=311111111; -} -else -{ -echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; -} - -} ###################### @@ -16624,151 +20813,154 @@ echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrièr ###################### if ($ADD==311111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -$ct_srs=1; -$b=0; -$srs_SQL =''; -if (strlen($ct_state_call_times)>2) { - $state_rules = explode('|',$ct_state_call_times); - $ct_srs = ((count($state_rules)) - 1); - } -echo "\n"; -echo "\n"; -while($ct_srs >= $b) - { - if (strlen($state_rules[$b])>0) + if ($LOGmodify_call_times==1) { - $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $call_time_name = $row[1]; - $call_time_comments = $row[2]; - $ct_default_start = $row[3]; - $ct_default_stop = $row[4]; - $ct_sunday_start = $row[5]; - $ct_sunday_stop = $row[6]; - $ct_monday_start = $row[7]; - $ct_monday_stop = $row[8]; - $ct_tuesday_start = $row[9]; - $ct_tuesday_stop = $row[10]; - $ct_wednesday_start = $row[11]; - $ct_wednesday_stop = $row[12]; - $ct_thursday_start = $row[13]; - $ct_thursday_stop = $row[14]; - $ct_friday_start = $row[15]; - $ct_friday_stop = $row[16]; - $ct_saturday_start = $row[17]; - $ct_saturday_stop = $row[18]; - $ct_state_call_times = $row[19]; - -echo ""; - -echo "
MODIFIER UNE PERIODE D'APPELS\n"; -echo "\n"; -echo "\n"; -echo "
Identifiant de la période d'appels: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nom de la période d'appels: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels: $NWB#vicidial_call_times-call_time_comments$NWE
Début par défaut: Fin par défaut: $NWB#vicidial_call_times-ct_default_start$NWE
Début le dimanche: Fin le dimanche: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le lundi: Fin le lundi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mardi: Fin le mardi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mercredi: Fin le mercredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jeudi Start: Fin le jeudi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le vendredi: Fin le vendredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le samedi: Fin le samedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Activer les définitions des états des périodes d'appels pour cet enregistrement:  
\n"; - $srs_SQL .= "'$state_rules[$b]',"; - $srs_state_SQL .= "'$row[0]',"; + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
MODIFIER UNE PERIODE D'APPELS
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "
$state_rules[$b] - REMOVE $row[0] - $row[1]
Identifiant de la période d'appels: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nom de la période d'appels: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels: $NWB#vicidial_call_times-call_time_comments$NWE
Début par défaut: Fin par défaut: $NWB#vicidial_call_times-ct_default_start$NWE
Début le dimanche: Fin le dimanche: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le lundi: Fin le lundi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mardi: Fin le mardi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mercredi: Fin le mercredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jeudi Start: Fin le jeudi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le vendredi: Fin le vendredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le samedi: Fin le samedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Activer les définitions des états des périodes d'appels pour cet enregistrement:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "CAMPAGNES UTILISANT CETTE PERIODE D'APPELS:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "ENTRANT GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce temps de garde
\n"; + } } - $b++; + else + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } + } -if (strlen($srs_SQL)>2) - { - $srs_SQL = "$srs_SQL''"; - $srs_state_SQL = "$srs_state_SQL''"; - $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; - } -else - {$srs_SQL='';} -$stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; -$rslt=mysql_query($stmt, $link); -$sct_to_print = mysql_num_rows($rslt); -$sct_list=''; - -$o=0; -while ($sct_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $sct_list .= "\n"; - $o++; -} -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "Add state call time rule:


\n"; -echo "CAMPAGNES UTILISANT CETTE PERIODE D'APPELS:
\n"; -echo "\n"; - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "ENTRANT GROUPS USING THIS CALL TIME:
\n"; -echo "\n"; - - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce temps de garde\n"; - } -} -else -{ -echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; -} - -} ###################### @@ -16776,327 +20968,328 @@ echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrièr ###################### if ($ADD==3111111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -echo "\n"; -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $state_call_time_state =$row[1]; - $call_time_name = $row[2]; - $call_time_comments = $row[3]; - $ct_default_start = $row[4]; - $ct_default_stop = $row[5]; - $ct_sunday_start = $row[6]; - $ct_sunday_stop = $row[7]; - $ct_monday_start = $row[8]; - $ct_monday_stop = $row[9]; - $ct_tuesday_start = $row[10]; - $ct_tuesday_stop = $row[11]; - $ct_wednesday_start = $row[12]; - $ct_wednesday_stop = $row[13]; - $ct_thursday_start = $row[14]; - $ct_thursday_stop = $row[15]; - $ct_friday_start = $row[16]; - $ct_friday_stop = $row[17]; - $ct_saturday_start = $row[18]; - $ct_saturday_stop = $row[19]; - -echo ""; - -echo "
MODIFIER UNE PERIODE D'APPELS D'ETAT
\n"; -echo "\n"; -echo "\n"; -echo "
Identifiant de la période d'appels: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Nom de la période d'appels d'état: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels d'état: $NWB#vicidial_call_times-call_time_comments$NWE
Début par défaut: Fin par défaut: $NWB#vicidial_call_times-ct_default_start$NWE
Début le dimanche: Fin le dimanche: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le lundi: Fin le lundi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mardi: Fin le mardi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mercredi: Fin le mercredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jeudi Start: Fin le jeudi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le vendredi: Fin le vendredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le samedi: Fin le samedi: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; -echo "PERIODE D'APPELS UTILISANT CET ETAT DE PERIODE D'APPELS:
\n"; -echo "\n"; - - $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) { - echo "

SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL D'ETAT\n"; + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
MODIFIER UNE PERIODE D'APPELS D'ETAT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identifiant de la période d'appels: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Nom de la période d'appels d'état: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels d'état: $NWB#vicidial_call_times-call_time_comments$NWE
Début par défaut: Fin par défaut: $NWB#vicidial_call_times-ct_default_start$NWE
Début le dimanche: Fin le dimanche: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le lundi: Fin le lundi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mardi: Fin le mardi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mercredi: Fin le mercredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jeudi Start: Fin le jeudi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le vendredi: Fin le vendredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le samedi: Fin le samedi: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "PERIODE D'APPELS UTILISANT CET ETAT DE PERIODE D'APPELS:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL D'ETAT\n"; + } + } + else + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } } -} -else -{ -echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; -} - -} - - ###################### # ADD=331111111 modify shift definition info in the system ###################### if ($ADD==331111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_shifts where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $shift_name = $row[1]; - $shift_start_time = $row[2]; - $shift_length = $row[3]; - $shift_weekdays = $row[4]; - - $shift_start_hour = substr($shift_start_time,0,2); - $shift_start_min = substr($shift_start_time,2,2); - $shift_length_hour = substr($shift_length,0,2); - $shift_length_min = substr($shift_length,3,2); - $shift_end_hour = ($shift_start_hour + $shift_length_hour); - $shift_end_min = ($shift_start_min + $shift_length_min); - if ($shift_end_min >=60) + { + if ($LOGmodify_call_times==1) { - $shift_end_min = ($shift_end_min - 60); - $shift_end_hour++; - } - if ($shift_end_hour >=24) - { - $shift_end_hour = ($shift_end_hour - 24); - } - $shift_end_hour = sprintf("%02s", $shift_end_hour); - $shift_end_min = sprintf("%02s", $shift_end_min); - $shift_end = "$shift_end_hour$shift_end_min"; + echo "
\n"; + echo ""; -echo ""; - -echo "
MODIFIER UN DEPLACEMENT\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Shift ID:$shift_id
Shift Nom: (brève description de l'évolution)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; -echo "   End Time Shift:\n"; -echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longueur Shift: $NWB#vicidial_shifts-shift_length$NWE
Shift-Ven:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; -echo "Dimanche
\n"; -echo "Lundi
\n"; -echo "Mardi
\n"; -echo "Mercredi
\n"; -echo "Jeudi
\n"; -echo "Vendredi
\n"; -echo "Samedi
\n"; -echo "
\n"; - -echo "


\n"; -echo "Groupes d'utilisateurs UTILISANT CE SHIFT:
\n"; -echo "\n"; - - - $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFIER UN DEPLACEMENT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
$row[0] $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift ID:$shift_id
Shift Nom: (brève description de l'évolution)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; + echo "   End Time Shift:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longueur Shift: $NWB#vicidial_shifts-shift_length$NWE
Shift-Ven:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Dimanche
\n"; + echo "Lundi
\n"; + echo "Mardi
\n"; + echo "Mercredi
\n"; + echo "Jeudi
\n"; + echo "Vendredi
\n"; + echo "Samedi
\n"; + echo "
\n"; + + echo "


\n"; + echo "Groupes d'utilisateurs UTILISANT CE SHIFT:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPPRIMER CETTE DEFINITION SHIFT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce changement\n"; + } + } + else + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } + } -echo "
\n"; -echo "


\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

SUPPRIMER CETTE DEFINITION SHIFT\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce changement\n"; - } -} -else -{ -echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; -} - -} - - ###################### # ADD=31111111111 modify phone record in the system ###################### if ($ADD==31111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFIER UN TELEPHONE: $row[1]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Extension du téléphone: $NWB#phones-extension$NWE
Nuémro dans le dial plan: (chiffres seulement)$NWB#phones-dialplan_number$NWE
Boîte vocale: (chiffres seulement)$NWB#phones-voicemail_id$NWE
CallerID sortant: (chiffres seulement)$NWB#phones-outbound_cid$NWE
Adresse IP du téléphone: (optional)$NWB#phones-phone_ip$NWE
Adresse IP de l'ordinateur: (optional)$NWB#phones-computer_ip$NWE
IP du serveur: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Mot de passe:$NWB#phones-pass$NWE
Etat: $NWB#phones-status$NWE
Compte actif: $NWB#phones-active$NWE
Type de téléphone: $NWB#phones-phone_type$NWE
Nom complet: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Compagnie: $NWB#phones-company$NWE
Image: $NWB#phones-picture$NWE
Nouveaux messages: $row[14]$NWB#phones-messages$NWE
Anciens messages: $row[15]$NWB#phones-old_messages$NWE
Protocole client: $NWB#phones-protocol$NWE
GMT local: (Ne PAS ajuster pour DST)$NWB#phones-local_gmt$NWE
Login du manager: $NWB#phones-ASTmgrUSERNAME$NWE
Mot de passe du manager: $NWB#phones-ASTmgrSECRET$NWE
Utilisateur par défaut de VICIDIAL: $NWB#phones-login_user$NWE
Mot de passe par défaut de VICIDIAL: $NWB#phones-login_pass$NWE
Campagne par défaut de VICIDIAL: $NWB#phones-login_campaign$NWE
Extension du parc: $NWB#phones-park_on_extension$NWE
Extension de la conférence: $NWB#phones-conf_on_extension$NWE
Extension du parc VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Fichier du parc VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Préfixe du moniteur: $NWB#phones-monitor_prefix$NWE
Extension d'enregistrement: $NWB#phones-recording_exten$NWE
Extension de la boîte vocale: $NWB#phones-voicemail_exten$NWE
Extension de VmailDump: $NWB#phones-voicemail_dump_exten$NWE
Extension du context: $NWB#phones-ext_context$NWE
Cannal d'envoi DTMF: $NWB#phones-dtmf_send_extension$NWE
Groupe d'appels sortants: $NWB#phones-call_out_number_group$NWE
Localisation du navigateur: $NWB#phones-client_browser$NWE
Répertoire d'installation: $NWB#phones-install_directory$NWE
URL du CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL par défaut de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Log des appels: $NWB#phones-AGI_call_logging_enabled$NWE
Changement d'utilisateur: $NWB#phones-user_switching_enabled$NWE
En conférence: $NWB#phones-conferencing_enabled$NWE
Raccrochage administrateur: $NWB#phones-admin_hangup_enabled$NWE
Détournement administrateur: $NWB#phones-admin_hijack_enabled$NWE
Moniteur administrateur: $NWB#phones-admin_monitor_enabled$NWE
Parc d'appel: $NWB#phones-call_parking_enabled$NWE
Contrôle de mise à jour: $NWB#phones-updater_check_enabled$NWE
Log AF: $NWB#phones-AFLogging_enabled$NWE
Queue activée: $NWB#phones-QUEUE_ACTION_enabled$NWE
Popup du CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Bouton de la boîte vocale: $NWB#phones-voicemail_button_enabled$NWE
Rafraichissement rapide: $NWB#phones-enable_fast_refresh$NWE
Taux du rafraichissement rapide: (in ms)$NWB#phones-fast_refresh_rate$NWE
MySQL persistant: $NWB#phones-enable_persistant_mysql$NWE
Appel automatique du numéro suivant: $NWB#phones-auto_dial_next_number$NWE
Arrêter l'enregistrement après chaque appel: $NWB#phones-VDstop_rec_after_each_call$NWE
Activer les messages SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Serveur DBX: (PrimaireDB Server)$NWB#phones-DBX_server$NWE
Base de données DBX: (PrimaireServer Database)$NWB#phones-DBX_database$NWE
Utilisateur DBX: (PrimaireDB Login)$NWB#phones-DBX_user$NWE
Mot de passe DBX: (PrimaireDB Secret)$NWB#phones-DBX_pass$NWE
Port DBX: (PrimaireDB Port)$NWB#phones-DBX_port$NWE
Serveur DBY: (SecondaireDB Server)$NWB#phones-DBY_server$NWE
Base de données DBY: (SecondaireServer Database)$NWB#phones-DBY_database$NWE
Utilisateur DBY: (SecondaireDB Login)$NWB#phones-DBY_user$NWE
Mot de passe DBY: (SecondaireDB Secret)$NWB#phones-DBY_pass$NWE
Port DBY: (SecondaireDB Port)$NWB#phones-DBY_port$NWE
Template ID: \n"; - - echo "\n"; - - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFIER UN TELEPHONE: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Extension du téléphone: $NWB#phones-extension$NWE (Agent Screen Login du téléphone)
Nuémro dans le dial plan: (chiffres seulement)$NWB#phones-dialplan_number$NWE
Boîte vocale: (chiffres seulement)$NWB#phones-voicemail_id$NWE
CallerID sortant: (chiffres seulement)$NWB#phones-outbound_cid$NWE
Adresse IP du téléphone: (optional)$NWB#phones-phone_ip$NWE
Adresse IP de l'ordinateur: (optional)$NWB#phones-computer_ip$NWE
IP du serveur: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Mot de passe:$NWB#phones-pass$NWE
Etat: $NWB#phones-status$NWE
Compte actif: $NWB#phones-active$NWE
Type de téléphone: $NWB#phones-phone_type$NWE
Nom complet: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Supprimer messagerie vocale après le courrier électronique: $NWB#phones-delete_vm_after_email$NWE
Compagnie: $NWB#phones-company$NWE
Image: $NWB#phones-picture$NWE
Nouveaux messages: $row[14]$NWB#phones-messages$NWE
Anciens messages: $row[15]$NWB#phones-old_messages$NWE
Protocole client: $NWB#phones-protocol$NWE
GMT local: (Ne PAS ajuster pour DST)$NWB#phones-local_gmt$NWE
Phone Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Login du manager: $NWB#phones-ASTmgrUSERNAME$NWE
Mot de passe du manager: $NWB#phones-ASTmgrSECRET$NWE
Utilisateur par défaut de VICIDIAL: $NWB#phones-login_user$NWE
Mot de passe par défaut de VICIDIAL: $NWB#phones-login_pass$NWE
Campagne par défaut de VICIDIAL: $NWB#phones-login_campaign$NWE
Extension du parc: $NWB#phones-park_on_extension$NWE
Extension de la conférence: $NWB#phones-conf_on_extension$NWE
Extension du parc VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Fichier du parc VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Préfixe du moniteur: $NWB#phones-monitor_prefix$NWE
Extension d'enregistrement: $NWB#phones-recording_exten$NWE
Extension de la boîte vocale: $NWB#phones-voicemail_exten$NWE
Extension de VmailDump: $NWB#phones-voicemail_dump_exten$NWE
Extension du context: $NWB#phones-ext_context$NWE
Téléphone Contexte: $NWB#phones-phone_context$NWE
Conf dossier secret: $NWB#phones-conf_secret$NWE
Cannal d'envoi DTMF: $NWB#phones-dtmf_send_extension$NWE
Groupe d'appels sortants: $NWB#phones-call_out_number_group$NWE
Localisation du navigateur: $NWB#phones-client_browser$NWE
Répertoire d'installation: $NWB#phones-install_directory$NWE
URL du CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL par défaut de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Log des appels: $NWB#phones-AGI_call_logging_enabled$NWE
Changement d'utilisateur: $NWB#phones-user_switching_enabled$NWE
En conférence: $NWB#phones-conferencing_enabled$NWE
Raccrochage administrateur: $NWB#phones-admin_hangup_enabled$NWE
Détournement administrateur: $NWB#phones-admin_hijack_enabled$NWE
Moniteur administrateur: $NWB#phones-admin_monitor_enabled$NWE
Parc d'appel: $NWB#phones-call_parking_enabled$NWE
Contrôle de mise à jour: $NWB#phones-updater_check_enabled$NWE
Log AF: $NWB#phones-AFLogging_enabled$NWE
Queue activée: $NWB#phones-QUEUE_ACTION_enabled$NWE
Popup du CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Bouton de la boîte vocale: $NWB#phones-voicemail_button_enabled$NWE
Rafraichissement rapide: $NWB#phones-enable_fast_refresh$NWE
Taux du rafraichissement rapide: (in ms)$NWB#phones-fast_refresh_rate$NWE
MySQL persistant: $NWB#phones-enable_persistant_mysql$NWE
Appel automatique du numéro suivant: $NWB#phones-auto_dial_next_number$NWE
Arrêter l'enregistrement après chaque appel: $NWB#phones-VDstop_rec_after_each_call$NWE
Activer les messages SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Serveur DBX: (PrimaireDB Server)$NWB#phones-DBX_server$NWE
Base de données DBX: (PrimaireServer Database)$NWB#phones-DBX_database$NWE
Utilisateur DBX: (PrimaireDB Login)$NWB#phones-DBX_user$NWE
Mot de passe DBX: (PrimaireDB Secret)$NWB#phones-DBX_pass$NWE
Port DBX: (PrimaireDB Port)$NWB#phones-DBX_port$NWE
Serveur DBY: (SecondaireDB Server)$NWB#phones-DBY_server$NWE
Base de données DBY: (SecondaireServer Database)$NWB#phones-DBY_database$NWE
Utilisateur DBY: (SecondaireDB Login)$NWB#phones-DBY_user$NWE
Mot de passe DBY: (SecondaireDB Secret)$NWB#phones-DBY_pass$NWE
Port DBY: (SecondaireDB Port)$NWB#phones-DBY_port$NWE
Template ID: $NWB#phones-template_id$NWE
Conf Override: $NWB#phones-conf_override$NWE
\n"; + + echo "

Cliquez ici pour les statistiques des téléphones\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CE TELEPHONE\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#phones-template_id$NWE
Conf Override: $NWB#phones-conf_override$NWE
\n"; - - echo "

Cliquez ici pour les statistiques des téléphones\n"; - - if ($LOGast_delete_phones > 0) - { - echo "

SUPPRIMER CE TELEPHONE\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -17104,70 +21297,70 @@ if ($ADD==31111111111) ###################### if ($ADD==32111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
A MODIFIER TELEPHONE ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nom: $NWB#phones-alias_name$NWE
Téléphones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; - - - ### list of phones in this phones alias - $phone_alias_SQL = ereg_replace(',',"','",$row[2]); - - echo "
\n"; - echo "
TELEPHONES PORTABLES DANS CETTE ALIAS:
\n"; - echo "\n"; - echo "\n"; - - $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; - if ($DB) {echo "|$stmt|";} - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
LOGINEXTENSIONSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; - - if ($LOGast_delete_phones > 0) { - echo "

SUPPRIMER CETTE PHONE ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
A MODIFIER TELEPHONE ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nom: $NWB#phones-alias_name$NWE
Téléphones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
TELEPHONES PORTABLES DANS CETTE ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINEXTENSIONSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE PHONE ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce téléphone alias
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce téléphone alias\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -17175,44 +21368,44 @@ if ($ADD==32111111111) ###################### if ($ADD==33111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
Modifier un groupe ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Alias Groupe ID: $row[0] $NWB#phones-group_alias_id$NWE
Nom du groupe Alias: $NWB#phones-group_alias_name$NWE
Nombre CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nom: $NWB#phones-caller_id_name$NWE
Actif:
\n"; - - - if ($LOGast_delete_phones > 0) { - echo "

Supprimer ce groupe ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
Modifier un groupe ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias Groupe ID: $row[0] $NWB#phones-group_alias_id$NWE
Nom du groupe Alias: $NWB#phones-group_alias_name$NWE
Nombre CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nom: $NWB#phones-caller_id_name$NWE
Actif:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

Supprimer ce groupe ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce groupe alias
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce groupe alias\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -17220,286 +21413,301 @@ if ($ADD==33111111111) ###################### if ($ADD==311111111111) -{ - if ($LOGmodify_servers==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "Malles:
\n"; + echo "CAMPAGNE:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "
\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
SUPPORTS DE CE SERVEUR:
\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage from servers where server_id='$server_id' or server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $server_id = $row[0]; - $server_description = $row[1]; - $server_ip = $row[2]; - $active = $row[3]; - $asterisk_version = $row[4]; - $max_vicidial_trunks = $row[5]; - $telnet_host = $row[6]; - $telnet_port = $row[7]; - $ASTmgrUSERNAME = $row[8]; - $ASTmgrSECRET = $row[9]; - $ASTmgrUSERNAMEupdate = $row[10]; - $ASTmgrUSERNAMElisten = $row[11]; - $ASTmgrUSERNAMEsend = $row[12]; - $local_gmt = $row[13]; - $voicemail_dump_exten = $row[14]; - $answer_transfer_agent = $row[15]; - $ext_context = $row[16]; - $sys_perf_log = $row[17]; - $vd_server_logs = $row[18]; - $agi_output = $row[19]; - $vicidial_balance_active = $row[20]; - $balance_trunks_offlimits = $row[21]; - $recording_web_link = $row[22]; - $alt_server_ip = $row[23]; - $active_asterisk_server = $row[24]; - $generate_vicidial_conf = $row[25]; - $rebuild_conf_files = $row[26]; - $outbound_calls_per_second = $row[27]; - $sysload = $row[28]; - $channels_total = $row[29]; - $cpu_idle_percent = $row[30]; - $disk_usage = $row[31]; + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; - $cpu = (100 - $cpu_idle_percent); - $disk_usage = preg_replace("/ /"," - ",$disk_usage); - $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); - echo "
MODIFIER UN SERVEUR: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
MODIFIER UN SERVEUR: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du serveur: $NWB#servers-server_id$NWE
Description du serveur: $NWB#servers-server_description$NWE
Adresse IP du serveur: $NWB#servers-server_ip$NWE
Actif: $NWB#servers-active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "
ID du serveur: $NWB#servers-server_id$NWE
Description du serveur: $NWB#servers-server_description$NWE
Adresse IP du serveur: $NWB#servers-server_ip$NWE
Actif: $NWB#servers-active$NWE
Système de charge: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Chaînes: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
Système de charge: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Chaînes: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
Version d'Asterisk: $NWB#servers-asterisk_version$NWE
Nombre max de trunks VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Max demande par seconde: $NWB#servers-outbound_calls_per_second$NWE
Equilibrage des appels VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
Limite de l'équilibrage VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Hôte telnet: $NWB#servers-telnet_host$NWE
Port telnet: $NWB#servers-telnet_port$NWE
Utilisateur manager: $NWB#servers-ASTmgrUSERNAME$NWE
Mot de passe du manager: $NWB#servers-ASTmgrSECRET$NWE
Utilisateur de mise à jour manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Utilisateur manager pour l'écoute: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Utilisateur manager pour l'envoi: $NWB#servers-ASTmgrUSERNAMEsend$NWE
GMT local: (Ne PAS ajuster pour DST)$NWB#servers-local_gmt$NWE
VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
Extension AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexte par défaut: $NWB#servers-ext_context$NWE
Performances du système: $NWB#servers-sys_perf_log$NWE
Logs du serveur: $NWB#servers-vd_server_logs$NWE
Sortie des AGI: $NWB#servers-agi_output$NWE
Enregistrement Web Link: $NWB#servers-recording_web_link$NWE
Alternate Recording IP du serveur: $NWB#servers-alt_server_ip$NWE
Active Server Asterisk: $NWB#servers-active_asterisk_server$NWE
Générer des fichiers de conf: $NWB#servers-generate_vicidial_conf$NWE
Reconstruire les fichiers de configuration: $NWB#servers-rebuild_conf_files$NWE
Version d'Asterisk: $NWB#servers-asterisk_version$NWE
Nombre max de trunks VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Max demande par seconde: $NWB#servers-outbound_calls_per_second$NWE
Equilibrage des appels VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
VICIDIAL Solde Rank:$NWB#servers-vicidial_balance_rank$NWE
Limite de l'équilibrage VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Hôte telnet: $NWB#servers-telnet_host$NWE
Port telnet: $NWB#servers-telnet_port$NWE
Utilisateur manager: $NWB#servers-ASTmgrUSERNAME$NWE
Mot de passe du manager: $NWB#servers-ASTmgrSECRET$NWE
Utilisateur de mise à jour manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Utilisateur manager pour l'écoute: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Utilisateur manager pour l'envoi: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf dossier secret: $NWB#servers-conf_secret$NWE
GMT local: (Ne PAS ajuster pour DST)$NWB#servers-local_gmt$NWE
VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
Extension AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexte par défaut: $NWB#servers-ext_context$NWE
Performances du système: $NWB#servers-sys_perf_log$NWE
Logs du serveur: $NWB#servers-vd_server_logs$NWE
Sortie des AGI: $NWB#servers-agi_output$NWE
Carrier Logging Actif: $NWB#servers-carrier_logging_active$NWE
Enregistrement Web Link: $NWB#servers-recording_web_link$NWE
Alternate Recording IP du serveur: $NWB#servers-alt_server_ip$NWE
Active Server Asterisk: $NWB#servers-active_asterisk_server$NWE
Active Server Agent: $NWB#servers-active_agent_login_server$NWE
Générer des fichiers de conf: $NWB#servers-generate_vicidial_conf$NWE
Reconstruire les fichiers de configuration: $NWB#servers-rebuild_conf_files$NWE
Reconstruire la musique d-attente: $NWB#servers-rebuild_music_on_hold$NWE
Mise à jour de sons: $NWB#servers-sounds_update$NWE
VICIDIAL Recording Limit: $NWB#servers-vicidial_recording_limit$NWE
\n"; + echo "
\n"; - ### vicidial server trunk records for this server - echo "

LES MallesVICIDIAL POUR CE SERVEUR:   $NWB#vicidial_server_trunks$NWE
\n"; - echo "\n"; - echo "\n"; + ### vicidial server trunk records for this server + echo "

LES MallesVICIDIAL POUR CE SERVEUR:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "
CAMPAGNE Malles RESTRICTION DELETE
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; - while ($recycle_to_print > $o) { + while ($recycle_to_print > $o) + { $rowx=mysql_fetch_row($rslt); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CAMPAGNE Malles RESTRICTION DELETE
$rowx[1]
\n"; + echo "
$rowx[1]\n"; + echo "\n"; + echo "\n"; + echo "SUPPRIMER
\n"; + + echo "
AJOUTER UN NOUVEAU TRUNK SERVEUR VICIDIAL
\n"; + echo "\n"; echo "\n"; - echo "\n"; - echo "
SUPPRIMER
\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNOMREGISTRATIONACTIF
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELEPHONES SUR CE SERVEUR:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIONNOMACTIF
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEEXTENSION
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEEXTENSION
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Ce serveur a $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Ce serveur a $active_phones téléphones actifs et $inactive_phones téléphones inactifs

\n"; + echo "Ce serveur a $active_confs active conferences

\n"; + echo "Ce serveur a $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CE SERVEUR\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce serveur\n"; + } } - - echo "
\n"; - - echo "
AJOUTER UN NOUVEAU TRUNK SERVEUR VICIDIAL
\n"; - echo "\n"; - echo "\n"; - echo "Malles:
\n"; - echo "CAMPAGNE:
\n"; - echo "RESTRICTION:
\n"; - echo "
\n"; - - echo "

\n"; - - - ### list of carriers on this server - echo "
\n"; - echo "
SUPPORTS DE CE SERVEUR:
\n"; - echo "\n"; - echo "\n"; - - $active_carriers = 0; - $inactive_carriers = 0; - $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $carriers_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($carriers_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[3])) {$active_carriers++;} - if (ereg("N", $rowx[3])) {$inactive_carriers++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIER IDNOMREGISTRATIONACTIF
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; - - - ### list of phones on this server - echo "
\n"; - echo "
TELEPHONES SUR CE SERVEUR:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
EXTENSIONNOMACTIF
$rowx[0]$rowx[2]$rowx[1]

\n"; - - - ### list of conferences on this server - echo "
\n"; - echo "
CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_confs = 0; - $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_confs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CONFERENCEEXTENSION
$rowx[0]$rowx[2]

\n"; - - - ### list of vicidial conferences on this server - echo "
\n"; - echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_vdconfs = 0; - $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_vdconfs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
VD CONFERENCEEXTENSION
$rowx[0]$rowx[2]

\n"; - - - echo "
\n"; - - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Ce serveur a $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; - echo "Ce serveur a $active_phones téléphones actifs et $inactive_phones téléphones inactifs

\n"; - echo "Ce serveur a $active_confs active conferences

\n"; - echo "Ce serveur a $active_vdconfs active vicidial conferences

\n"; - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

SUPPRIMER CE SERVEUR\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce serveur
\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -17507,111 +21715,111 @@ if ($ADD==311111111111) ###################### if ($ADD==331111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $template_id = $row[0]; - $template_name = $row[1]; - $template_contents = $row[2]; - - echo "
A MODIFIER CONF TEMPLATE RECORD: $row[0]
\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Template ID: $template_id
Nom du modèle: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommaire: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; - - echo "
\n"; - - ### list of phones using this conf template - echo "
\n"; - echo "
PHONES UTILISANT CE CONF TEMPLATE:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} + echo "
EXTENSIONNOMSERVERACTIF
\n"; + echo "
A MODIFIER CONF TEMPLATE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; - echo "
$rowx[0]$rowx[2]$rowx[3]$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Template ID: $template_id
Nom du modèle: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommaire: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES UTILISANT CE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIONNOMSERVERACTIF
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
SUPPORTS UTILISANT CE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNOMSERVERACTIF
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CONF TEMPLATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce modèle de conf
\n"; + } } - - echo "

\n"; - - ### list of carriers using this conf template - echo "
\n"; - echo "
SUPPORTS UTILISANT CE CONF TEMPLATE:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIERNOMSERVERACTIF
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; - - - - if ($LOGast_delete_phones > 0) - { - echo "

SUPPRIMER CETTE CONF TEMPLATE\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce modèle de conf\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -17619,95 +21827,284 @@ if ($ADD==331111111111) ###################### if ($ADD==341111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active from vicidial_server_carriers where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $carrier_id = $row[0]; - $carrier_name = $row[1]; - $registration_string = $row[2]; - $template_id = $row[3]; - $account_entry = $row[4]; - $protocol = $row[5]; - $globals_string = $row[6]; - $dialplan_entry = $row[7]; - $server_ip = $row[8]; - $active = $row[9]; - - echo "
MODIFIER UN SUPPORT D'ENREGISTREMENT: $row[0]\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Carrier ID: $carrier_id
Nom du transporteur: $NWB#vicidial_server_carriers-carrier_name$NWE
Inscription à cordes: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: \n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFIER UN SUPPORT D'ENREGISTREMENT: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Carrier ID: $carrier_id
Nom du transporteur: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Description: $NWB#vicidial_server_carriers-carrier_description$NWE
Inscription à cordes: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: $NWB#vicidial_server_carriers-template_id$NWE
Entrée de compte: $NWB#vicidial_server_carriers-account_entry$NWE
Protocole: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrée: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP du serveur: $NWB#vicidial_server_carriers-server_ip$NWE
Actif: $NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CARRIER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce transporteur
\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#vicidial_server_carriers-template_id$NWE
Entrée de compte: $NWB#vicidial_server_carriers-account_entry$NWE
Protocole: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrée: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP du serveur: $NWB#vicidial_server_carriers-server_ip$NWE
Actif: $NWB#vicidial_server_carriers-active$NWE
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

SUPPRIMER CETTE CARRIER\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages à ce transporteur\n"; - } - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
MODIFIER UN RECORD TTS: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
TTS Nom: $NWB#vicidial_tts_prompts-tts_name$NWE
Actif: $NWB#vicidial_tts_prompts-active$NWE
TTS Text: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS ENTRY TTS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages Admin à cette entrée TTS
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Musique en attente d-identification: $moh_id
Musique d-attente Nom: $NWB#vicidial_music_on_hold-moh_name$NWE
Actif: $NWB#vicidial_music_on_hold-active$NWE
Random Order: $NWB#vicidial_music_on_hold-random$NWE
Fichiers audio: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rank:\n"; + + echo "   $rowx[0] - SUPPRIMER
\n"; + $o++; + } + + echo "
Ajouter un fichier audio: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE MUSIC ON HOLD ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages d-administration pour cette musique en attente d-entrée
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
MODIFIER UN messagerie vocale: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Boîte vocale ID: $voicemail_id
Mot de passe:$NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Email:$NWB#vicidial_voicemail-email$NWE
Actif: $NWB#vicidial_voicemail-active$NWE
Supprimer messagerie vocale après le courrier électronique: $NWB#vicidial_voicemail-delete_vm_after_email$NWE
Nouveaux messages: $messages
Anciens messages: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE BOITE VOCALE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages Admin à cette boîte de messagerie vocale
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} ###################### @@ -17715,45 +22112,45 @@ if ($ADD==341111111111) ###################### if ($ADD==3111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFIER UNE CONFERENCE: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Conférence: $NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
Extension courante:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

SUPPRIMER CETTE CONFERENCE\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFIER UNE CONFERENCE: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conférence: $NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
Extension courante:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CONFERENCE\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; } } - else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; - } -} ###################### @@ -17761,45 +22158,45 @@ if ($ADD==3111111111111) ###################### if ($ADD==31111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Conférence: $NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
Extension courante:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

SUPPRIMER CETTE CONFERENCE VICIDIAL\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conférence: $NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
Extension courante:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CONFERENCE VICIDIAL\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; } } - else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; - } -} @@ -17808,153 +22205,251 @@ if ($ADD==31111111111111) ###################### if ($ADD==311111111111111) -{ + { if ($LOGmodify_servers==1) - { - echo "
\n"; - echo ""; + { + echo "\n"; - } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second from system_settings;"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $version = $row[0]; - $install_date = $row[1]; - $use_non_latin = $row[2]; - $webroot_writable = $row[3]; - $enable_queuemetrics_logging = $row[4]; - $queuemetrics_server_ip = $row[5]; - $queuemetrics_dbname = $row[6]; - $queuemetrics_login = $row[7]; - $queuemetrics_pass = $row[8]; - $queuemetrics_url = $row[9]; - $queuemetrics_log_id = $row[10]; - $queuemetrics_eq_prepend = $row[11]; - $vicidial_agent_disable = $row[12]; - $allow_sipsak_messages = $row[13]; - $admin_home_url = $row[14]; - $enable_agc_xfer_log = $row[15]; - $db_schema_version = $row[16]; - $auto_user_add_value = $row[17]; - $timeclock_end_of_day = $row[18]; - $timeclock_last_reset_date = $row[19]; - $vdc_header_date_format = $row[20]; - $vdc_customer_date_format = $row[21]; - $vdc_header_phone_format = $row[22]; - $vdc_agent_api_active = $row[23]; - $qc_last_pull_time = $row[24]; - $enable_vtiger_integration = $row[25]; - $vtiger_server_ip = $row[26]; - $vtiger_dbname = $row[27]; - $vtiger_login = $row[28]; - $vtiger_pass = $row[29]; - $vtiger_url = $row[30]; - $qc_features_active = $row[31]; - $outbound_autodial_active = $row[32]; - $outbound_calls_per_second = $row[33]; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; - echo "
MODIFIER LES REGLAGES DU SYSTEME VICIDIAL\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
MODIFIER LES REGLAGES DU SYSTEME VICIDIAL\n"; + echo "\n"; + echo "\n"; + echo "
Version: $version
DB Schema Version: $db_schema_version
Auto Utilisateur-add Value: $auto_user_add_value
Date d'installation: $install_date
Utiliser Non-Latin: $NWB#settings-use_non_latin$NWE
Webroot éditable: $NWB#settings-webroot_writable$NWE
Affichage de la désactivation d'un agent VICIDIAL: $NWB#settings-vicidial_agent_disable$NWE
Autoriser les messages SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL de l'accueil de l'administration: $NWB#settings-admin_home_url$NWE
Permettez Le Fichier journal De Transfert D'Agent: $NWB#settings-enable_agc_xfer_log$NWE
Horloge en temps Fin de la journée:$NWB#settings-timeclock_end_of_day$NWE
Dernière timeclock Auto Déconnection: $timeclock_last_reset_date
Pull QC Dernière Heure: $qc_last_pull_time
Agent Header Screen Format Date: $NWB#settings-vdc_header_date_format$NWE
Agent client Screen Format Date: $NWB#settings-vdc_customer_date_format$NWE
Agent Client Téléphone Screen Format: $NWB#settings-vdc_header_phone_format$NWE
Agent API Active:$NWB#settings-vdc_agent_api_active$NWE
QC Active Caractéristiques: $NWB#settings-qc_features_active$NWE
Auto Outbound Dial-Actif: $NWB#settings-outbound_autodial_active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "\n"; + $o++; + } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "$servers_list"; + echo "\n"; + echo "$NWB#settings-active_voicemail_server$NWE\n"; - echo "\n"; - echo "
Version: $version
DB Schema Version: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Utilisateur-add Value: $auto_user_add_value
Date d'installation: $install_date
Utiliser Non-Latin: $NWB#settings-use_non_latin$NWE
Webroot éditable: $NWB#settings-webroot_writable$NWE
Affichage de la désactivation d'un agent VICIDIAL: $NWB#settings-vicidial_agent_disable$NWE
Autoriser les messages SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL de l'accueil de l'administration: $NWB#settings-admin_home_url$NWE
Permettez Le Fichier journal De Transfert D'Agent: $NWB#settings-enable_agc_xfer_log$NWE
Horloge en temps Fin de la journée:$NWB#settings-timeclock_end_of_day$NWE
Dernière timeclock Auto Déconnection: $timeclock_last_reset_date
Agent Header Screen Format Date: $NWB#settings-vdc_header_date_format$NWE
Agent client Screen Format Date: $NWB#settings-vdc_customer_date_format$NWE
Agent Client Téléphone Screen Format: $NWB#settings-vdc_header_phone_format$NWE
Agent API Active:$NWB#settings-vdc_agent_api_active$NWE
Agent Only Lock Campagne de rappel: $NWB#settings-agentonly_callback_campaign_lock$NWE
Max REMPLISSAGE demande par seconde: $NWB#settings-outbound_calls_per_second$NWE
Central Sound Control Actif: $NWB#settings-sounds_central_control_active$NWE
Sounds Web Server: $NWB#settings-sounds_web_server$NWE
Sounds Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Activer le log des QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP du serveur QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nom de la base de données QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
Login de la base de données QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Mot de passe de la base de données QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Identifiant des log de QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
Préfixe EnterQueue QueueMetrics: $NWB#settings-queuemetrics_eq_prepend$NWE
Active Server Boîte vocale:
Activer Vtiger Integration: $NWB#settings-enable_vtiger_integration$NWE\n"; - echo "   Cliquez ici pour synchroniser les utilisateurs avec Vtiger\n"; - echo "
Vtiger DB IP du serveur: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Mot de passe:$NWB#settings-vtiger_pass$NWE
Vtiger Web: $NWB#settings-vtiger_url$NWE
\n"; - echo "\n"; - if ($LOGuser_level >= 9) - { - echo "

Cliquez ici pour voir Admin chages pour les réglages du système
\n"; - } + echo "
Auto Dial Limite: $NWB#settings-auto_dial_limit$NWE
Auto Outbound Dial-Actif: $NWB#settings-outbound_autodial_active$NWE
Max REMPLISSAGE demande par seconde: $NWB#settings-outbound_calls_per_second$NWE
Permettant de personnaliser le plan d-appel Entrées: $NWB#settings-allow_custom_dialplan$NWE
Territoires utilisateur Actif: $NWB#settings-user_territories_active$NWE
Activer Webform Deuxième: $NWB#settings-enable_second_webform$NWE
Activer TTS Intégration: $NWB#settings-enable_tts_integration$NWE
QC Active Caractéristiques: $NWB#settings-qc_features_active$NWE
Pull QC Dernière Heure: $qc_last_pull_time
Activer le log des QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP du serveur QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nom de la base de données QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
Login de la base de données QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Mot de passe de la base de données QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Identifiant des log de QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
Préfixe EnterQueue QueueMetrics: $NWB#settings-queuemetrics_eq_prepend$NWE
Activer Vtiger Integration: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Cliquez ici pour synchroniser les utilisateurs avec Vtiger\n"; + echo "
Vtiger DB IP du serveur: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Mot de passe:$NWB#settings-vtiger_pass$NWE
Vtiger Web: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages pour les réglages du système
\n"; + } + } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} @@ -17966,100 +22461,114 @@ if ($ADD==311111111111111) ###################### if ($ADD==321111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; - - echo "
\n"; - echo "STATUTS DE VICIDIAL DANS CE SYSTÈME :  $NWB#vicidial_statuses$NWE
\n"; - echo "\n"; - echo "\n"; - - ##### get status category listings for dynamic pulldown - $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; - $rslt=mysql_query($stmt, $link); - $cats_to_print = mysql_num_rows($rslt); - $cats_list=""; - - $o=0; - while ($cats_to_print > $o) + if ($LOGmodify_servers==1) { - $rowx=mysql_fetch_row($rslt); - $cats_list .= "\n"; - $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); - $o++; - } + echo "
ETATDESCRIPTIONSELECT-
ABLE
L'HOMME
REPONSE
CATÉGORIEMODIFY/DELETE
\n"; - echo "\n"; + echo "  
\n"; + echo "
\n"; + + echo "
\n"; + } - - echo "
\n"; + echo ""; + + echo "
\n"; + echo "STATUTS DE VICIDIAL DANS CE SYSTÈME :  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } - $stmt="SELECT * from vicidial_statuses order by status;"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $AScategory = $rowx[4]; - $o++; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ETATDESCRIPTIONSELECT-
ABLE
L'HOMME
REPONSE
CATÉGORIEMODIFY/DELETE
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "SUPPRIMER\n"; + } + else + { + echo "SUPPRIMER\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AJOUTEZ LE NOUVEAU STATUT DE SYSTÈME
\n"; + echo "\n"; + echo "Etat:   \n"; + echo "Description:
\n"; + echo "Selectionnable:   \n"; + echo "Réponse de l'homme:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Catégorie :\n"; echo "\n"; - echo "
        \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "SUPPRIMER\n"; - } - else - { - echo "SUPPRIMER\n"; - } - echo "
\n"; - - echo "
AJOUTEZ LE NOUVEAU STATUT DE SYSTÈME
\n"; - echo "\n"; - echo "Etat:   \n"; - echo "Description:
\n"; - echo "Selectionnable:   \n"; - echo "Réponse de l'homme:   \n"; - echo "Catégorie :\n"; - echo "  
\n"; - echo "
\n"; - - echo "

\n"; - - } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} @@ -18070,18 +22579,18 @@ if ($ADD==321111111111111) ###################### if ($ADD==331111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; - echo "
\n"; - echo "VICIDIAL ÉTAT CATEGORIES:   $NWB#vicidial_status_categories$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
\n"; + echo "VICIDIAL ÉTAT CATEGORIES:   $NWB#vicidial_status_categories$NWE
\n"; + echo "
CATÉGORIENOMSTATUTS DE CETTE CATEGORIE
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_status_categories order by vsc_id;"; + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -18144,28 +22653,28 @@ if ($ADD==331111111111111) $p++; } + + echo "
CATÉGORIENOMSTATUTS DE CETTE CATEGORIE
\n"; - echo "
\n"; + echo "
AJOUTEZ LA NOUVELLE CATÉGORIE DE STATUT
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Afficher:   \n"; + echo "Vente Catégorie:   \n"; + echo "Dead Lead Catégorie:  
\n"; + echo "Description:   \n"; + echo "
\n"; - echo "
AJOUTEZ LA NOUVELLE CATÉGORIE DE STATUT
\n"; - echo "\n"; - echo "Category ID:   \n"; - echo "Name:  
\n"; - echo "TimeOnVDAD Afficher:   \n"; - echo "Vente Catégorie:   \n"; - echo "Dead Lead Catégorie:  
\n"; - echo "Description:   \n"; - echo "
\n"; + echo "

\n"; - echo "
\n"; - - } + } else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } } -} @@ -18176,121 +22685,121 @@ if ($ADD==331111111111111) ###################### if ($ADD==341111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL QC ÉTAT DANS CE SYSTEME DE CODES:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEDESCRIPTIONMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "SUPPRIMER\n"; + } + else + { + echo "SUPPRIMER\n"; + } + echo "
\n"; + + echo "
ADD NEW QC Code de statut
\n"; + echo "\n"; + echo "Etat:   \n"; + echo "Description:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) { echo "
\n"; echo ""; - echo "
\n"; - echo "VICIDIAL QC ÉTAT DANS CE SYSTEME DE CODES:  $NWB#vicidial_qc_status_codes$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
RECHERCHER UN UTILISATEUR\n"; + echo "\n"; + echo "
STATUS CODEDESCRIPTIONMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - } - } - echo "
Numéro d'utilisateur :
Nom complet:
Niveau de l'utilisateur:
Groupe utilisateur:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]         \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "SUPPRIMER\n"; - } - else - { - echo "SUPPRIMER\n"; - } - echo "
\n"; - - echo "
ADD NEW QC Code de statut
\n"; - echo "\n"; - echo "Etat:   \n"; - echo "Description:
\n"; - echo "
\n"; - - echo "

\n"; - - } - else - { - echo "Vous n'avez pas la permission de voir cette page\n"; - exit; - } -} - - - - - - -###################### -# ADD=550 search form -###################### - -if ($ADD==550) -{ -echo "\n"; - -echo "\n"; -echo "
\n"; -echo ""; - -echo "
RECHERCHER UN UTILISATEUR
\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + + echo "\n"; + echo "
Numéro d'utilisateur :
Nom complet:
Niveau de l'utilisateur:
Groupe utilisateur:
\n"; } -echo "$groups_list
\n"; - -} ###################### # ADD=660 user search results ###################### if ($ADD==660) -{ -echo "
\n"; + { + echo "
\n"; echo ""; $SQL = ''; @@ -18299,18 +22808,19 @@ echo "
\n"; if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} if ($user_group) {$SQL .= " user_group = '$user_group' and";} $SQL = eregi_replace(" and$", "", $SQL); - if (strlen($SQL)>5) {$SQL = "where $SQL";} + if (strlen($SQL)>5) {$SQL = "and $SQL";} - $stmt="SELECT * from vicidial_users $SQL order by full_name desc;"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; # echo "\n|$stmt|\n"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); -echo "
RESULTATS DE LA RECHERCHE:\n"; -echo "
\n"; + echo "
RESULTATS DE LA RECHERCHE:\n"; + echo "
\n"; $o=0; - while ($people_to_print > $o) { + while ($people_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18319,12 +22829,12 @@ echo "
\n"; echo ""; echo "\n"; $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]MODIFIER | STATISTIQUES | ETAT | TIME
\n"; + } -echo "
\n"; - -} - ###################################################################################################### ###################################################################################################### @@ -18336,158 +22846,158 @@ echo "
\n"; # ADD=8 find all callbacks on hold by a User ###################### if ($ADD==8) -{ - if ($LOGmodify_users==1) { + if ($LOGmodify_users==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Utilisateur($user) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utilisateur($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Utilisateur($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utilisateur($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; -echo ""; + echo ""; $CBquerySQLwhere = "and user='$user'"; -echo "
USER CALLBACK HOLD LISTINGS: $user\n"; -$oldADD = "ADD=8&user=$user"; -$ADD='82'; -} + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } ###################### # ADD=81 find all callbacks on hold within a Campaign ###################### if ($ADD==81) -{ - if ($LOGmodify_campaigns==1) { + if ($LOGmodify_campaigns==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; -echo ""; + echo ""; $CBquerySQLwhere = "and campaign_id='$campaign_id'"; -echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; -$oldADD = "ADD=81&campaign_id=$campaign_id"; -$ADD='82'; -} + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } ###################### # ADD=811 find all callbacks on hold within a List ###################### if ($ADD==811) -{ - if ($LOGmodify_lists==1) { + if ($LOGmodify_lists==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; -echo ""; + echo ""; $CBquerySQLwhere = "and list_id='$list_id'"; -echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=811&list_id=$list_id"; -$ADD='82'; -} + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } ###################### # ADD=8111 find all callbacks on hold within a user group ###################### if ($ADD==8111) -{ - if ($LOGmodify_usergroups==1) { + if ($LOGmodify_usergroups==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; echo ""; $CBquerySQLwhere = "and user_group='$user_group'"; -echo "
GROUPE D'UTILISATEURS CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=8111&user_group=$user_group"; -$ADD='82'; -} + echo "
GROUPE D'UTILISATEURS CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } ###################### # ADD=82 display all callbacks on hold ###################### if ($ADD==82) -{ + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $NIVEAUlink='stage=NIVEAUUP';} -$USERlink='stage=USERIDDOWN'; -$GROUPlink='stage=GROUPDOWN'; -$ENDATElink='stage=ENDATEDOWN'; -$SQLorder='order by '; -if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} -if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} -if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $NIVEAUlink='stage=NIVEAUUP';} - - $stmt="SELECT * from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; $rslt=mysql_query($stmt, $link); $cb_to_print = mysql_num_rows($rslt); -echo ""; echo ""; echo "\n"; + echo "\n"; echo "\n"; echo ""; echo ""; @@ -18691,6 +23202,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18700,7 +23212,7 @@ if ($ADD==100) $o++; } - $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id from vicidial_lists where list_id NOT IN($lists_printed'');"; + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); $o=0; @@ -18714,6 +23226,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18817,6 +23330,65 @@ if ($ADD==1300) } +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + echo "
LEADLIST CAMPAGNEENTRY DATECALLBACK DATEUSERRECIPIENTETATGROUP
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; $o=0; - while ($cb_to_print > $o) { + while ($cb_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18505,13 +23015,13 @@ echo ""; echo "\n"; $o++; + } + + echo "
LEADLIST CAMPAGNEENTRY DATECALLBACK DATEUSERRECIPIENTETATGROUP
G echo "$row[11]
\n"; + + echo "$CBinactiveLINK"; } -echo "
\n"; - -echo "$CBinactiveLINK"; -} - ###################################################################################################### @@ -18535,7 +23045,7 @@ if ($ADD==0) } else { - $SQLstatus = "where active='Y'"; + $SQLstatus = "and active='Y'"; echo "   Afficher tous les utilisateurs\n"; } @@ -18552,7 +23062,7 @@ if ($ADD==0) if (eregi("NIVEAUDOWN",$stage)) {$SQLorder='order by user_level desc'; $NIVEAUlink='stage=NIVEAUUP';} if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} - $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users $SQLstatus $SQLorder"; + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); @@ -18662,7 +23172,7 @@ if ($ADD==100) if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} - $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -18672,6 +23182,7 @@ if ($ADD==100) echo "
ID DE LA LISTENOM DE LA LISTEDESCRIPTIONRTIMEABOUTIT COUNTACTIFLAST CALL DATE
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
"; echo "\n"; - $o=0; while ($statecalltimes_to_print > $o) { @@ -19369,6 +23940,143 @@ if ($ADD==140000000000) echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNOMPROMPTTIMEOUTOPTIONSMODIFIER
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]MODIFIER
\n"; + } + + ###################### # ADD=10000 display all remote agents ###################### @@ -19039,7 +23611,6 @@ if ($ADD==1000000000) echo "
DEFAULT STOPMODIFIER
\n"; } + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDTTS NomActiveTTS TextMODIFIER
$row[0]$row[1]$row[2]$row[3]MODIFIER
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameActiveRandom OrderMODIFIER
$row[0]$row[1]$row[2]$row[3]MODIFIER
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
VOCAL BOITES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameActiveNouveaux messagesAnciens messagesDeleteMODIFIER
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFIER
\n"; + } + + ###################### # ADD=1000000000000 display all conferences ###################### @@ -19763,7 +24471,7 @@ if ($ADD==999999) echo "\n";echo "\n"; -$stmt="SELECT admin_home_url from system_settings;"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; ?>
-
\n"; echo ""; - $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers;"; + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $servers_to_print = mysql_num_rows($rslt); @@ -19788,52 +24496,97 @@ if ($ADD==999999) $queuemetrics_url_LU = $row[0]; $vtiger_url_LU = $row[1]; + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; ?> - VICIDIAL: Stats Rapports Server et - VICIDIAL: Stats Rapports Server et

+ Stats Rapports Server et + Stats Rapports Server et

+
+       + + Real-Time Rapports

+ Inbound and Outbound Calling Rapports
+ + +
+       + + Agent Rapports
+
+ Time Clock Rapports
+
+ Other Rapports and Links
+ +
+ +

-		 $o)
@@ -19855,7 +24608,7 @@ if ($ADD==999999)
 				}
 			$disk = "$disk%";
 			echo "\n";
-			echo "\n";
+			echo "\n";
 			echo "\n";
 			echo "\n";
 			echo "\n";
@@ -19898,7 +24651,7 @@ echo "CONSTRUCTION: $build\n";
 
 
-1)
 					{
-					$stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
+					$stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
 					$rslt=mysql_query($stmt, $link);
 					$row=mysql_fetch_row($rslt);
 					$Gstate_call_time_id =		"$row[0]";
@@ -20207,7 +24960,6 @@ if (isset($camp_lists))
 			$default_gmt = "$default_gmt'99'";
 			$all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL";
 
-
 			$dial_statuses = preg_replace("/ -$/","",$dial_statuses);
 			$Dstatuses = explode(" ", $dial_statuses);
 			$Ds_to_print = (count($Dstatuses) - 0);
@@ -20221,7 +24973,16 @@ if (isset($camp_lists))
 			$Dsql = preg_replace("/,$/","",$Dsql);
 			if (strlen($Dsql) < 2) {$Dsql = "''";}
 
-			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $fSQL";
+			$DLTsql='';
+			if ($drop_lockout_time > 0)
+				{
+				$DLseconds = ($drop_lockout_time * 3600);
+				$DLseconds = floor($DLseconds);
+				$DLseconds = intval("$DLseconds");
+				$DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )";
+				}
+
+			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL";
 			#$DB=1;
 			if ($DB) {echo "$stmt\n";}
 			$rslt=mysql_query($stmt, $link);
diff --git a/LANG_www/vicidial_fr/admin_header.php b/LANG_www/vicidial_fr/admin_header.php
index c4c2fc78..2daa478c 100644
--- a/LANG_www/vicidial_fr/admin_header.php
+++ b/LANG_www/vicidial_fr/admin_header.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -6,6 +6,19 @@
 
 # CHANGES
 # 90310-0709 - First Build
+# 90508-0542 - Added Call Menu option, changed script to use long PHP tags
+# 90514-0605 - Added audio prompt selection functions
+# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option
+# 90531-2339 - Added Dynamic options for Call Menu
+# 90612-0852 - Changed relative links
+# 90635-0943 - Added javascript for dynamic menus in In-Groups
+# 90627-0548 - Added no-agent-no-queue options
+# 90628-1016 - Added Text-to-speech options
+# 90830-2213 - Added Music On Hold options
+# 90904-1534 - Added launch_moh_chooser
+# 90916-2334 - Added Voicemail options
+# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus
+#
 
 
 ######################### SMALL HTML HEADER BEGIN #######################################
@@ -26,7 +39,7 @@ if($short_header)
 	
SERVERDESCRIPTIONIPACTLOADCHANDISKSORTANTENTRANT
$server_id[$o]$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]   Rapports  
- \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
English French
-VICIDIAL logo +VICIDIAL logo ADMINISTRATION
- - 1) { + 1) { ?> - >>>>>>> - >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + - - - 1) { if ($sh=='basic') {$sh='list';} @@ -657,201 +968,241 @@ if (strlen($reports_hh) > 1) { else {$listmix_sh=''; $listmix_fc='BLACK';} ?> - > - - > - - > - - > + + > + + > + + 0) { ?> - > - - > - - > - - > + + > + + > + + - > - - > + + - 0) { ?> - - + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Ajouter-Supprimer numéro Du DNC';} + else {$DNClink = 'Add Number To DNC';} ?> - >>>>>>>>>> - - - 1) { ?> - >>>> - - 0) { ?> - - + 1) { ?> - >>>> - - - 1) { ?> - >>>>>>>>>>>>>>> - - - 1) { ?> - >>>>>>>> - - - 1) { ?> - >>>> - - - 1) { - if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} # pink + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} else {$times_sh=''; $times_fc='BLACK';} - if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} # pink + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} else {$shifts_sh=''; $shifts_fc='BLACK';} - if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} # pink + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} else {$templates_sh=''; $templates_fc='BLACK';} - if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} # pink + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} else {$carriers_sh=''; $carriers_fc='BLACK';} - if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} # pink + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} else {$phones_sh=''; $phones_fc='BLACK';} - if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} # pink + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} else {$server_sh=''; $server_fc='BLACK';} - if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} # pink + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} else {$conference_sh=''; $conference_fc='BLACK';} - if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} # pink + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} else {$settings_sh=''; $settings_fc='BLACK';} - if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} # pink + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} ?> - > - - > - > - > - > - > - > - > - > + > + + > + > + > + > + > + > + > + > + > - 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + - +
WIDTH=160> - SIZE=>Utilisateurs +
WIDTH=160> + SIZE=>Utilisateurs
-   >Voir les utilisateurs -
-   >Ajouter un nouvel utilisateur -
-   >Utilisateur De Copie -
-   >Rechercher un utilisateur -
-   >Statistiques utilisateur -
-   >Utilisateur Status -
-   >Feuille de temps
+   >Voir les utilisateurs +
+   >Ajouter un nouvel utilisateur +
+   >Utilisateur De Copie +
+   >Rechercher un utilisateur +
+   >Statistiques utilisateur +
+   >Utilisateur Status +
+   >Feuille de temps
+   >Utilisateur Territoires
> - SIZE=>Campagnes + +
> + SIZE=>Campagnes
>   SIZE=>Campagnes principale
>   SIZE=>Statuts
>   SIZE=>HotKeys>   SIZE=>Campagnes principale
>   SIZE=>Statuts
>   SIZE=>HotKeys
>   SIZE=>Recyclage Plomb
>   SIZE=>Auto-Alt Dial
>   SIZE=>Liste Mix
>   SIZE=>Recyclage Plomb
>   SIZE=>Auto-Alt Dial
>   SIZE=>Liste Mix
>   SIZE=>Pause Codes
>   SIZE=>Pause Codes
> SIZE=>Listes
> SIZE=>Listes
  - > Voir les listes -
  - > Ajouter une nouvelle liste -
  - > Rechercher une fiche -
  - > Ajouter un numéro à la liste DNC -
  - > Charger de nouvelles fiches +
  + > Voir les listes +
  + > Ajouter une nouvelle liste +
  + > Rechercher une fiche +
  + > +
  + > Charger de nouvelles fiches
> - SIZE=> Scripts +
> + SIZE=> Scripts
  - > Voir les scripts -
  - > Ajouter un nouveau script +
  + > Voir les scripts +
  + > Ajouter un nouveau script
> SIZE=> Filtres
> SIZE=> Filtres
  - > Voir les filtres -
  - > Ajouter un nouveau filtre +
  + > Voir les filtres +
  + > Ajouter un nouveau filtre
> - SIZE=> In-Groups +
> + SIZE=> In-Groups
  - > Voir les In-Groups -
  - > Ajouter un nouveau In-Group -
  - > Dans-Groupe De Copie -
  - > Voir DiDs -
  - > Ajouter une nouvelle DID -
  - > CopieDID +
  + > Voir les In-Groups +
  + > Ajouter un nouveau In-Group +
  + > Dans-Groupe De Copie
+
  + > Voir DiDs +
  + > Ajouter une nouvelle DID +
  + > CopieDID
+
  + > Afficher Appel Menus +
  + > Ajouter un nouveau menu d-appel +
  + > Copiez Appel du menu
> - SIZE=> Groupes d'utilisateurs +
> + SIZE=> Groupes d'utilisateurs
  - > Voir les groupes d'utilisateurs -
  - > Ajouter un nouveau groupe d'utilisateurs -
  - > Rapport horaire du groupe -
  - > Bulk Change Group +
  + > Voir les groupes d'utilisateurs +
  + > Ajouter un nouveau groupe d'utilisateurs +
  + > Rapport horaire du groupe +
  + > Bulk Change Group
> - SIZE=> Agents distants +
> + SIZE=> Agents distants
  - > Voir les agents distants -
  - > Ajouter un nouvel agent distant +
  + > Voir les agents distants +
  + > Ajouter un nouvel agent distant
> - SIZE=> Admin +
> + SIZE=> Admin
COLSPAN=2>   - SIZE=> Période d'appels
>   - SIZE=> Shifts
>   - SIZE=> Téléphones
>   - SIZE=> Modèles
>   - SIZE=> Carriers
>   - SIZE=> Serveurs
>   - SIZE=> Conférences
>   - SIZE=> Réglages du système
>   - SIZE=>Statuts De Système
COLSPAN=2>   + SIZE=> Période d'appels
>   + SIZE=> Shifts
>   + SIZE=> Téléphones
>   + SIZE=> Modèles
>   + SIZE=> Carriers
>   + SIZE=> Serveurs
>   + SIZE=> Conférences
>   + SIZE=> Réglages du système
>   + SIZE=>Statuts De Système
>   + SIZE=> Boîte vocale
>   + SIZE=> Audio Store
>   + SIZE=> Musique d-attente
>   + SIZE=> Text To Speech
> - SIZE=> Rapports +
> + SIZE=> Rapports
 
-
BGCOLOR=#D9E6FE> + BGCOLOR=#D9E6FE> - HEIGHT=15> - + + +
ACCUEIL | Horloge en temps | Déconnection  
HEIGHT=15> + @@ -862,64 +1213,75 @@ if (strlen($reports_hh) > 1) { - 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { ?> - > - > + 1) and (!eregi('campaign',$hh) ) ) { ?> - > - > + - > - > + 1) { ?> -> - +> +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $u++; $call_log .= ""; @@ -363,27 +393,28 @@ else $call_log .= "\n"; $call_log .= "\n"; $call_log .= "\n"; - $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_agent_log records ##### - $stmt="select * from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Alogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); - $y=0; - $agent_log = ''; - $Alog_campaign = ''; - while ($Alogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $agent_log .= ""; @@ -400,24 +431,24 @@ else $agent_log .= "\n"; $campaign_id = $row[5]; - } + } - ##### grab vicidial_closer_log records ##### - $stmt="select * from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Clogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); - $y=0; - $closer_log = ''; - $Clog_campaign = ''; - while ($Clogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $closer_log .= ""; @@ -433,39 +464,43 @@ else $closer_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_list data for lead ##### - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $lead_id = "$row[0]"; - $dispo = "$row[3]"; - $tsr = "$row[4]"; - $vendor_id = "$row[5]"; - $list_id = "$row[7]"; - $gmt_offset_now = "$row[8]"; - $phone_code = "$row[10]"; - $phone_number = "$row[11]"; - $title = "$row[12]"; - $first_name = "$row[13]"; # - $middle_initial = "$row[14]"; - $last_name = "$row[15]"; # - $address1 = "$row[16]"; # - $address2 = "$row[17]"; # - $address3 = "$row[18]"; # - $city = "$row[19]"; # - $state = "$row[20]"; # - $province = "$row[21]"; # - $postal_code = "$row[22]"; # - $country_code = "$row[23]"; # - $gender = "$row[24]"; - $date_of_birth = "$row[25]"; - $alt_phone = "$row[26]"; # - $email = "$row[27]"; # - $security = "$row[28]"; # - $comments = "$row[29]"; # + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; echo "
Informations sur l'appel: $first_name $last_name - $phone_number

\n"; echo "\n"; @@ -499,45 +534,47 @@ else echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + if ($DS < 1) {$statuses_list .= "\n";} + echo "$statuses_list"; + echo "(with $log_campaign statuses)\n"; echo "\n"; @@ -551,9 +588,9 @@ else echo "


\n"; if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) - { + { ### find any vicidial_callback records for this lead - $stmt="select * from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $CB_to_print = mysql_num_rows($rslt); @@ -593,62 +630,68 @@ else { echo "
No Callback records found
\n"; } + } + } + else + { + echo "ECHEC de la vérification de la fiche pour l'id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; } + echo "

\n"; + echo "
\n"; + if ($c > 0) + { + echo "EXTENSION SUPPLEANT DE NUMEROS DE TELEPHONE POUR CE PLOMB:\n"; + echo "
ACCUEIL | Horloge en temps | Déconnection  
>   > Voir les campagnes     |     > Ajouter une nouvelle campagne     |     > Campagne De Copie     |     > Menu temps-réel des campagnes
>   > Voir les campagnes     |     > Ajouter une nouvelle campagne     |     > Campagne De Copie     |     > Menu temps-réel des campagnes
  > Voir les périodes d'appels  | > Ajouter une période d'appels  | > Voir les périodes d'appels d'états  | > Ajouter une nouvelle période d'appels d'état
  > Voir les périodes d'appels  | > Ajouter une période d'appels  | > Voir les périodes d'appels d'états  | > Ajouter une nouvelle période d'appels d'état
  > Voir les changements  | > Add A New Shift
  > Voir les changements  | > Add A New Shift
  > Voir les téléphones  | > Ajouter un nouveau téléphone  | > Téléphone Alias Liste  | > Ajouter un nouveau téléphone Alias  | > Groupe Alias Liste  | > Ajouter un nouveau groupe Alias
  > Voir les téléphones  | > Ajouter un nouveau téléphone  | > Téléphone Alias Liste  | > Ajouter un nouveau téléphone Alias  | > Groupe Alias Liste  | > Ajouter un nouveau groupe Alias
  > Voir les conférences   |   > Ajouter une nouvelle conférence   |   > Voir les conférences VICIDIAL   |   > Ajouter une nouvelle conférence VICIDIAL
  > Voir les conférences   |   > Ajouter une nouvelle conférence   |   > Voir les conférences VICIDIAL   |   > Ajouter une nouvelle conférence VICIDIAL
  > Voir les serveurs   |   > Ajouter un nouveau serveur
  > Voir les serveurs   |   > Ajouter un nouveau serveur
  > Afficher les modèles   |   > Ajouter un nouveau modèle
  > Afficher les modèles   |   > Ajouter un nouveau modèle
  > Show Carriers   |   > Add A New Carrier
  > Show Carriers   |   > Add A New Carrier
  > Afficher TTS Entrées   |   > Ajouter une nouvelle entrée TTS
  > Afficher MOH Entrées   |   > Ajouter une nouvelle entrée MOH
  > Show Boîte vocale Entries   |   > Add A New Boîte vocale Entry
  > Réglages du système
  > Réglages du système
  >Statuts De Système   |   >Catégories De Statut   |   >Codes d'état QC
  >Statuts De Système   |   >Catégories De Statut   |   >Codes d'état QC
  >Statistiques utilisateur   |   >Utilisateur Status   |   >Feuille de temps   |   >Jours Etat
  >Statistiques utilisateur   |   >Utilisateur Status   |   >Feuille de temps   |   >Jours Etat
>  
>  
-0) { - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; if ($WeBRooTWritablE > 0) { @@ -206,23 +214,22 @@ $browser = getenv("HTTP_USER_AGENT"); -ADMINISTRATION DE VICIDIAL: Modification de l'enregistrement de la fiche +ADMINISTRATION: Modification de l'enregistrement de la fiche
-ADMINISTRATION DE VICIDIAL: Modification de l'enregistrement de la fiche
\n"; +ADMINISTRATION: Modification de l'enregistrement de la fiche
\n"; if ($end_call > 0) -{ - + { ### update the lead record in the vicidial_list table - $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "Informations modifiées

\n"; - echo "\n"; + echo "Informations modifiées

\n"; + echo "
\n"; ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -233,69 +240,69 @@ if ($end_call > 0) $rslt=mysql_query($stmt, $link); if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($dispo == 'CALLBK') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($status == 'DNC') ) - { + { ### add lead to the internal DNC list $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; - } + } ### update last record in vicidial_log table if (($dispo != $status) and ($modify_logs > 0)) - { + { $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_closer_log table if (($dispo != $status) and ($modify_closer_logs > 0)) - { + { $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_agent_log table if (($dispo != $status) and ($modify_agent_logs > 0)) - { + { $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } if ($add_closer_record > 0) - { + { ### insert a NEW record to the vicidial_closer_log table $stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . mysql_real_escape_string($status) . "','" . mysql_real_escape_string($phone_code) . "','" . mysql_real_escape_string($phone_number) . "','$PHP_AUTH_USER','" . mysql_real_escape_string($comments) . "','Y')"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); + } + + } - - -} else -{ + { if ($CBchangeUSERtoANY == 'YES') { @@ -334,24 +341,47 @@ else $lead_count = $row[0]; if ($lead_count > 0) - { - - ##### grab vicidial_log records ##### - $stmt="select * from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); - - $u=0; - $call_log = ''; - $log_campaign = ''; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (strlen($log_campaign)<1) {$log_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$row[3] $row[2] $row[1] $row[15]
$row[15]   $row[10]
  $row[17]
  $row[17]
Téléphone alternatif :
Email :
Sécurité:
Rank :
Owner :
Commentaires :
Disposition:
Disposition: (with $log_campaign statuses)
Modifiervicidial log
\n"; + echo "\n"; - } - else - { - echo "ECHEC de la vérification de la fiche pour l'id $lead_id       $NOW_TIME\n

\n"; -# echo "Close this window\n

\n"; - } + echo "$alts_output\n"; + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } - -echo "

\n"; - -echo "
\n"; - -echo "APPELS VERS CETTE FICHE:\n"; -echo "\n"; -echo "\n"; + echo "APPELS VERS CETTE FICHE:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNE LIST LEAD HANGUP REASON
\n"; + echo "\n"; echo "$call_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNE LIST LEAD HANGUP REASON PHONE
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "CLOSER RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNE LIST LEAD WAIT HANGUP REASON
\n"; + echo "\n"; echo "$closer_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNE LIST LEAD WAIT HANGUP REASON
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "AGENT LOG RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "AGENT LOG RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "\n"; - echo "$agent_log\n"; + echo "$agent_log\n"; -echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "RECORDINGS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; + echo "\n"; -$stmt="select * from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; -$rslt=mysql_query($stmt, $link); -$logs_to_print = mysql_num_rows($rslt); + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); $u=0; while ($logs_to_print > $u) @@ -707,12 +750,8 @@ $logs_to_print = mysql_num_rows($rslt); } -echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; - - - - -} + echo "
\n"; + } $ENDtime = date("U"); @@ -731,15 +770,9 @@ echo "\n\n\n


\ntemps d'exécution du script: $RUNtime se - - - - - - diff --git a/LANG_www/vicidial_fr/admin_search_lead.php b/LANG_www/vicidial_fr/admin_search_lead.php index 3926ea41..6f7be4b6 100644 --- a/LANG_www/vicidial_fr/admin_search_lead.php +++ b/LANG_www/vicidial_fr/admin_search_lead.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -18,6 +18,9 @@ # 90121-0500 - Added filter for phone to remove non-digits # 90309-1828 - Added admin_log logging # 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR # require("dbconnect.php"); @@ -43,21 +46,25 @@ if (isset($_GET["user"])) {$user=$_GET["user"];} elseif (isset($_POST["user"])) {$user=$_POST["user"];} if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} $STARTtime = date("U"); $TODAY = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner'; - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} @@ -66,25 +73,24 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - - if($auth>0) + if ($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; if ($WeBRooTWritablE > 0) { @@ -106,8 +112,8 @@ $browser = getenv("HTTP_USER_AGENT"); -ADMINISTRATION DE VICIDIAL: Recherche de fiches -<? +<title>ADMINISTRATION: Recherche de fiches +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -131,12 +137,8 @@ $subcamp_color = '#C6C6C6'; require("admin_header.php"); - - - echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; - if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) { echo date("l F j, Y G:i:s A"); @@ -144,7 +146,8 @@ if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and echo "<form method=post name=search action=\"$PHP_SELF\">\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<b>Veuillez entrer un:<br> Vendor ID(code vendeur de la fiche): <input type=text name=vendor_id size=10 maxlength=10> or \n"; - echo "<br><b>un numéro de téléphone du domicile: <input type=text name=phone size=20 maxlength=16> or\n"; + echo "<br><b>un numéro de téléphone du domicile: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; echo "<br><b>ID de la fiche: <input type=text name=lead_id size=10 maxlength=10> or\n"; echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; @@ -160,19 +163,26 @@ else if ($vendor_id) { - $stmt="SELECT * from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; } else { if ($phone) { - $stmt="SELECT * from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' order by modify_date desc limit 1000"; + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } } else { if ($lead_id) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; } else { @@ -195,7 +205,7 @@ else if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; } - $stmt="SELECT * from vicidial_list where $statusSQL $list_idSQL $userSQL order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; } else { @@ -205,14 +215,38 @@ else } } } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + if ($DB) { echo "\n\n$stmt\n\n"; } - - $rslt=mysql_query($stmt, $link); + + $rslt=mysql_query("$stmt", $link); $results_to_print = mysql_num_rows($rslt); - if ($results_to_print < 1) + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) { echo date("l F j, Y G:i:s A"); echo "\n<br><br><center>\n"; @@ -270,7 +304,7 @@ else $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); } diff --git a/LANG_www/vicidial_fr/audio_store.php b/LANG_www/vicidial_fr/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/LANG_www/vicidial_fr/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_campaigns='1'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/LANG_www/vicidial_fr/call_report_export.php b/LANG_www/vicidial_fr/call_report_export.php index 21d06ca4..77a49b05 100644 --- a/LANG_www/vicidial_fr/call_report_export.php +++ b/LANG_www/vicidial_fr/call_report_export.php @@ -1,4 +1,4 @@ -<? +<?php # call_report_export.php # # displays options to select for downloading of leads and their vicidial_log @@ -10,6 +10,10 @@ # CHANGES # # 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name # require("dbconnect.php"); @@ -37,8 +41,8 @@ if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} -if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} - elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (strlen($shift)<2) {$shift='ALL';} @@ -48,12 +52,10 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -72,7 +74,7 @@ $auth=$row[0]; { # Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); # Header("HTTP/1.0 401 Unauthorized"); - echo "Login ou mot de passe invalide or no export report permission: |$PHP_AUTH_USER|\n"; + echo "Invalid Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; exit; } @@ -206,14 +208,14 @@ if ($run_export > 0) echo "<BR>\n"; echo "$status_ct|$status_string|$status_SQL\n"; echo "<BR>\n"; - exit; } - + $outbound_calls=0; + $export_rows=''; + $k=0; if ($RUNcampaign > 0) { - $export_campaign_rows=''; - $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $outbound_to_print = mysql_num_rows($rslt); @@ -229,20 +231,23 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_campaign_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; + $outbound_calls++; } } } if ($RUNgroup > 0) { - $export_group_rows=''; - $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmtA, $link); if ($DB) {echo "$stmt\n";} $inbound_to_print = mysql_num_rows($rslt); - if ($inbound_to_print < 1) + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) { echo "There are no inbound calls during this time period for these parameters\n"; exit; @@ -254,8 +259,11 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_group_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; } } } @@ -267,7 +275,7 @@ if ($run_export > 0) $SQL_log = "$stmt|$stmtA|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORTATION DE RAPPORT ENGAGE', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); @@ -284,7 +292,48 @@ if ($run_export > 0) ob_clean(); flush(); - echo "$export_campaign_rows$export_group_rows"; + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } } else { @@ -397,7 +446,7 @@ else echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; - echo "<TITLE>VICIDIAL: Appels d'exportation Rapport"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -422,7 +471,7 @@ else echo "<CENTER><BR>\n"; - echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Appels d'exportation Rapport</B></FONT><BR><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; @@ -434,7 +483,7 @@ else echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; - echo "<font class=\"select_bold\"><B>Campagnes:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; $o=0; while ($campaigns_to_print > $o) @@ -448,7 +497,7 @@ else echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Groupes entrants:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; $o=0; while ($groups_to_print > $o) @@ -461,7 +510,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Listes:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; $o=0; while ($lists_to_print > $o) @@ -474,7 +523,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Statuts:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; $o=0; while ($statuses_to_print > $o) @@ -487,7 +536,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Groupes d'utilisateurs:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; $o=0; while ($user_groups_to_print > $o) @@ -503,7 +552,7 @@ else echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; - echo "<INPUT TYPE=Submit NAME=VALIDER VALUE=VALIDER>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "</TD></TR></TABLE>\n"; echo "</FORM>\n\n"; diff --git a/LANG_www/vicidial_fr/dbconnect.php b/LANG_www/vicidial_fr/dbconnect.php index dae8cc7a..dca45485 100644 --- a/LANG_www/vicidial_fr/dbconnect.php +++ b/LANG_www/vicidial_fr/dbconnect.php @@ -1,10 +1,10 @@ -<? +<?php # -# dbconnect.php version 2.0.5 +# dbconnect.php version 2.2.0 # # database connection settings and some global web settings # -# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { @@ -16,6 +16,8 @@ foreach ($DBCagc as $DBCline) {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} if (ereg("^PATHweb", $DBCline)) {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} if (ereg("^VARDB_server", $DBCline)) {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} if (ereg("^VARDB_database", $DBCline)) diff --git a/LANG_www/vicidial_fr/fcstats.php b/LANG_www/vicidial_fr/fcstats.php index 2f7dc3cd..8130a61d 100644 --- a/LANG_www/vicidial_fr/fcstats.php +++ b/LANG_www/vicidial_fr/fcstats.php @@ -1,4 +1,4 @@ -<? +<?php # fcstats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # 71228-1140 - added percentages, cross-day start/stop # 80328-1139 - adapted for basic fronter/closer stats # 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -80,9 +81,9 @@ while ($i < $groups_to_print) --> </STYLE> -<? +<?php echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; -echo "<TITLE>VICIDIAL: In-Group Fronter-Closer Stats\n"; +echo "In-Group Fronter-Closer Stats Report\n"; $short_header=1; @@ -147,7 +148,7 @@ if ($shift == 'ALL') $query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0])); } -echo "VICIDIAL: In-Group Fronter-Closer Stats $NOW_TIME\n"; +echo "In-Group Fronter-Closer Stats Report $NOW_TIME\n"; echo "\n"; echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n"; diff --git a/LANG_www/vicidial_fr/functions.php b/LANG_www/vicidial_fr/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/LANG_www/vicidial_fr/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/LANG_www/vicidial_fr/group_hourly_stats.php b/LANG_www/vicidial_fr/group_hourly_stats.php index 6c3da44c..9f7c508b 100644 --- a/LANG_www/vicidial_fr/group_hourly_stats.php +++ b/LANG_www/vicidial_fr/group_hourly_stats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 60620-1014 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -26,14 +27,34 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { @@ -106,8 +127,8 @@ $browser = getenv("HTTP_USER_AGENT"); -ADMINISTRATION DE VICIDIAL: Statistiques du groupe par heures -<? +<title>ADMINISTRATION: Statistiques du groupe par heures +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -133,12 +154,12 @@ require("admin_header.php"); <CENTER> -<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Statistiques du groupe par heures <? echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Statistiques du groupe par heures <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> -<? +<?php if ( ($group) and ($status) and ($date_with_hour) ) { @@ -223,7 +244,7 @@ echo "<br><br>\n"; echo "<input type=hidden name=DB value=$DB>\n"; echo "group: <select size=1 name=group>\n"; - $stmt="SELECT * from vicidial_user_groups order by user_group"; + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; $rslt=mysql_query($stmt, $link); $groups_to_print = mysql_num_rows($rslt); $o=0; @@ -260,7 +281,7 @@ echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime se </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_fr/list_download.php b/LANG_www/vicidial_fr/list_download.php index 794b783d..572bf79d 100644 --- a/LANG_www/vicidial_fr/list_download.php +++ b/LANG_www/vicidial_fr/list_download.php @@ -1,4 +1,4 @@ -<? +<?php # list_download.php # # downloads the entire contents of a vicidial list ID to a flat text file @@ -9,6 +9,8 @@ # CHANGES # # 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields # require("dbconnect.php"); @@ -111,7 +113,7 @@ header('Pragma: public'); ob_clean(); flush(); -$stmt="select * from vicidial_list where list_id='$list_id';"; +$stmt="select lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $leads_to_print = mysql_num_rows($rslt); @@ -120,7 +122,7 @@ while ($i < $leads_to_print) { $row=mysql_fetch_row($rslt); - echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\r\n"; + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; $i++; } diff --git a/LANG_www/vicidial_fr/listloader.pl b/LANG_www/vicidial_fr/listloader.pl index b8f9e064..052d93e0 100644 --- a/LANG_www/vicidial_fr/listloader.pl +++ b/LANG_www/vicidial_fr/listloader.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader.pl version 2.0.5 +# listloader.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -19,65 +19,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][22]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } if (length($forcelistid) > 0) { @@ -369,10 +380,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -380,7 +438,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -406,7 +464,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -426,7 +484,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -446,7 +504,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -466,7 +524,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -565,14 +623,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -591,7 +649,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_fr/listloaderMAIN.php b/LANG_www/vicidial_fr/listloaderMAIN.php index 6a1faa20..e4f74657 100644 --- a/LANG_www/vicidial_fr/listloaderMAIN.php +++ b/LANG_www/vicidial_fr/listloaderMAIN.php @@ -1,7 +1,7 @@ -<? +<?php # listloaderMAIN.php # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # this is the main frame page for the lead loading section. This is where you # would upload a file and have it inserted into vicidial_list @@ -9,6 +9,7 @@ # changes: # 60620-1149 - Added variable filtering to eliminate SQL injection attack threat # 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); diff --git a/LANG_www/vicidial_fr/listloader_rowdisplay.pl b/LANG_www/vicidial_fr/listloader_rowdisplay.pl index bbfc8170..9caaeab2 100644 --- a/LANG_www/vicidial_fr/listloader_rowdisplay.pl +++ b/LANG_www/vicidial_fr/listloader_rowdisplay.pl @@ -1,14 +1,15 @@ #!/usr/bin/perl # -# listloader_rowdisplay.pl version 2.0.5 +# listloader_rowdisplay.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES # # 60811-1232 - Changed to DBI # 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields # ### begin parsing run-time options ### @@ -116,7 +117,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { @xls_row=split(/\|/, $var_str); -$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1;"; +$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; diff --git a/LANG_www/vicidial_fr/listloader_super.pl b/LANG_www/vicidial_fr/listloader_super.pl index 3af97f37..9b09bba7 100644 --- a/LANG_www/vicidial_fr/listloader_super.pl +++ b/LANG_www/vicidial_fr/listloader_super.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader_super.pl version 2.0.5 +# listloader_super.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -18,65 +18,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### use Spreadsheet::ParseExcel; @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } @@ -371,10 +382,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -382,7 +440,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -408,7 +466,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -428,7 +486,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -448,7 +506,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -468,7 +526,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -567,14 +625,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -593,7 +651,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_fr/new_listloader_superL.php b/LANG_www/vicidial_fr/new_listloader_superL.php index 81dbd790..2b735e85 100644 --- a/LANG_www/vicidial_fr/new_listloader_superL.php +++ b/LANG_www/vicidial_fr/new_listloader_superL.php @@ -1,4 +1,4 @@ -<? +<?php # new_listloader_superL.php # # Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 @@ -25,11 +25,15 @@ # 81011-2009 - a few bug fixes # 90309-1831 - Added admin_log logging # 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. -$version = '2.0.5-29'; -$build = '90310-2128'; +$version = '2.2.0-33'; +$build = '91112-0616'; require("dbconnect.php"); @@ -39,50 +43,52 @@ require("dbconnect.php"); #mysql_select_db("asterisk"); #$WeBServeRRooT = '/home/www/htdocs'; +$US='_'; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $leadfile=$_FILES["leadfile"]; $LF_orig = $_FILES['leadfile']['name']; $LF_path = $_FILES['leadfile']['tmp_name']; -if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} - elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} - elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} - elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} -if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} - elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} - elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} -if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} - elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} -if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} - elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} - elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} -if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} - elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} -if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} - elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} -if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} - elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} - elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} - elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} - elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} -if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} @@ -91,21 +97,25 @@ if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"]; if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} - elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} -if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} - elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} -if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} - elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} -if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} - elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} - elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} -if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} - elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} $list_id_override = (preg_replace("/\D/","",$list_id_override)); if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} @@ -137,11 +147,16 @@ while ($i < $qm_conf_ct) ########################################### if ($non_latin < 1) -{ -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$list_id_override = ereg_replace("[^0-9]","",$list_id_override); -} + { + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + $list_id_override = ereg_replace("[^0-9]","",$list_id_override); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } $STARTtime = date("U"); $TODAY = date("Y-m-d"); @@ -317,11 +332,11 @@ function ParseFileName() { } } </script> -<title>ADMINISTRATION DE VICIDIAL: Lead Loader +ADMINISTRATION: Lead Loader -
"; ?> - method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> - - + method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + - + - + - + - + @@ -357,6 +372,8 @@ echo "
Charger les fiches depuis ce fichier:
ID de la liste Override: (nombres seulement or leave blank for values in the file) (nombres seulement or leave blank for values in the file)
Téléphone Code Override: (nombres seulement or leave blank for values in the file) (nombres seulement or leave blank for values in the file)
Disposition du fichier à utiliser:VICIDIAL standard    Disposition personnaliséeStandard Format    Disposition personnalisée
Vérification des doublons dans les fiches:
@@ -366,11 +383,11 @@ echo "
"; + +
- +
";
        
        RETOUR A L'ADMINISTRATIONLIST LOADER-     VERSION:     CONSTRUCTION:    
        RETOUR A L'ADMINISTRATIONLIST LOADER-     VERSION:     CONSTRUCTION:    
- + -document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; @@ -446,6 +463,8 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; if (strlen($list_id_override)>0) { @@ -542,18 +561,61 @@ echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -561,7 +623,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -579,7 +641,7 @@ echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -603,13 +665,15 @@ echo "
"; { print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

\n"; } - # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; $dupcheckCLI=''; $postalgmtCLI=''; if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} - passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } else { # copy($leadfile, "./vicidial_temp_file.csv"); $file=fopen("$lead_file", "r"); @@ -662,6 +726,10 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} if (strlen($list_id_override)>0) { @@ -756,19 +824,62 @@ echo "\n"; echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -776,7 +887,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -793,7 +904,7 @@ echo "\r\n"; print " \r\n"; - $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1", $link); + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1", $link); if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) @@ -1349,6 +1551,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } @@ -1425,7 +1629,7 @@ if ($leadfile) { -4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1461,7 +1665,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1476,7 +1680,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1491,7 +1695,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1507,7 +1711,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) diff --git a/LANG_www/vicidial_fr/non_agent_api.php b/LANG_www/vicidial_fr/non_agent_api.php index 2d525f39..b64ab4c0 100644 --- a/LANG_www/vicidial_fr/non_agent_api.php +++ b/LANG_www/vicidial_fr/non_agent_api.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -19,10 +19,21 @@ # 80909-2012 - Added support for campaign-specific DNC lists # 80910-0020 - Added support for multi-alt-phones, added version function # 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function # -$version = '2.0.5-5'; -$build = '90118-1056'; +$version = '2.2.0-16'; +$build = '91216-0331'; require("dbconnect.php"); @@ -99,7 +110,24 @@ if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phon elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} if (isset($_GET["source"])) {$source=$_GET["source"];} elseif (isset($_POST["source"])) {$source=$_POST["source"];} - +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -109,20 +137,18 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) { + $DB=ereg_replace("[^0-9]","",$DB); $user=ereg_replace("[^0-9a-zA-Z]","",$user); $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); @@ -174,6 +200,19 @@ if ($non_latin < 1) $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); } if (strlen($list_id)<1) {$list_id='999';} @@ -181,6 +220,7 @@ if (strlen($phone_code)<1) {$phone_code='1';} $USarea = substr($phone_number, 0, 3); if (strlen($hopper_priority)<1) {$hopper_priority=0;} if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} $StarTtime = date("U"); $NOW_DATE = date("Y-m-d"); @@ -249,6 +289,847 @@ if ($function == 'version') api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); exit; } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -892,6 +1003,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -986,19 +1099,62 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} - $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1006,7 +1162,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1024,7 +1180,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1054,6 +1210,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); @@ -1118,6 +1276,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -1212,19 +1372,61 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1232,7 +1434,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1249,7 +1451,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1269,7 +1471,7 @@ if ($leadfile) { print " Données du fichier
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + @@ -269,8 +1150,7 @@ if ($function == 'add_lead') } else { - $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $modify_leads=$row[0]; @@ -297,10 +1177,19 @@ if ($function == 'add_lead') } else { - if ($dnc_check == 'Y') + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -315,10 +1204,18 @@ if ($function == 'add_lead') exit; } } - if ($campaign_dnc_check == 'Y') + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -333,14 +1230,196 @@ if ($function == 'add_lead') exit; } } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + ### get current gmt_offset of the phone_number $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); ### insert a new lead in the system with this phone number - $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; - if ($DB) {echo "$stmt\n";} + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $affected_rows = mysql_affected_rows($link); if ($affected_rows > 0) @@ -358,7 +1437,7 @@ if ($function == 'add_lead') $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; $map = explode('!', $multi_alt_phones); $map_count = count($map); - if ($DB) {echo "multi-al-entry: $a|$map_count|$multi_alt_phones\n";} + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} $g++; $r=0; $s=0; $inserted_alt_phones=0; while ($r < $map_count) @@ -377,7 +1456,7 @@ if ($function == 'add_lead') $ALTm_phone_number[$r] = $ncn[0]; $ALTm_phone_note[$r] = $ncn[2]; $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Zaffected_rows = mysql_affected_rows($link); $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); @@ -395,7 +1474,6 @@ if ($function == 'add_lead') $dialable=1; $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; - if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $local_call_time=$row[0]; @@ -420,7 +1498,7 @@ if ($function == 'add_lead') ### insert record into vicidial_hopper for alt_phone call attempt $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Haffected_rows = mysql_affected_rows($link); if ($Haffected_rows > 0) @@ -457,6 +1535,9 @@ if ($function == 'add_lead') exit; } } +################################################################################ +### END add_lead +################################################################################ @@ -474,13 +1555,13 @@ api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$resul if ($format=='debug') -{ -$ENDtime = date("U"); -$RUNtime = ($ENDtime - $StarTtime); -echo "\n"; -echo "\n\n\n"; -} - + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + exit; @@ -502,7 +1583,7 @@ if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -523,7 +1604,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -538,7 +1619,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -553,7 +1634,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -569,7 +1650,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1118,134 +2199,134 @@ return $gmt_offset; ##### DETERMINE IF LEAD IS DIALABLE ##### function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) -{ -$dialable=0; + { + $dialable=0; -$pzone=3600 * $gmt_offset; -$pmin=(gmdate("i", time() + $pzone)); -$phour=( (gmdate("G", time() + $pzone)) * 100); -$pday=gmdate("w", time() + $pzone); -$tz = sprintf("%.2f", $p); -$GMT_gmt = "$tz"; -$GMT_day = "$pday"; -$GMT_hour = ($phour + $pmin); + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); -$stmt="SELECT * FROM vicidial_call_times where call_time_id='$local_call_time';"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); -$rowx=mysql_fetch_row($rslt); -$Gct_default_start = "$rowx[3]"; -$Gct_default_stop = "$rowx[4]"; -$Gct_sunday_start = "$rowx[5]"; -$Gct_sunday_stop = "$rowx[6]"; -$Gct_monday_start = "$rowx[7]"; -$Gct_monday_stop = "$rowx[8]"; -$Gct_tuesday_start = "$rowx[9]"; -$Gct_tuesday_stop = "$rowx[10]"; -$Gct_wednesday_start = "$rowx[11]"; -$Gct_wednesday_stop = "$rowx[12]"; -$Gct_thursday_start = "$rowx[13]"; -$Gct_thursday_stop = "$rowx[14]"; -$Gct_friday_start = "$rowx[15]"; -$Gct_friday_stop = "$rowx[16]"; -$Gct_saturday_start = "$rowx[17]"; -$Gct_saturday_stop = "$rowx[18]"; -$Gct_state_call_times = "$rowx[19]"; + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; -if ($GMT_day==0) #### Sunday local time - { - if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + if ($GMT_day==0) #### Sunday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==1) #### Monday local time { - if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) - {$dialable=1;} + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==1) #### Monday local time - { - if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + if ($GMT_day==2) #### Tuesday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==3) #### Wednesday local time { - if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) - {$dialable=1;} + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==2) #### Tuesday local time - { - if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + if ($GMT_day==4) #### Thursday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==5) #### Friday local time { - if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) - {$dialable=1;} + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==3) #### Wednesday local time - { - if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + if ($GMT_day==6) #### Saturday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } } - else - { - if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==4) #### Thursday local time - { - if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==5) #### Friday local time - { - if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==6) #### Saturday local time - { - if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) - {$dialable=1;} - } - } -return $dialable; -} + return $dialable; + } /* $ct_states = ''; @@ -1261,7 +2342,7 @@ return $dialable; { if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) { - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $Gstate_call_time_id = "$row[0]"; @@ -1405,15 +2486,15 @@ return $dialable; ##### Logging ##### function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) -{ -if ($api_logging > 0) { - $NOW_TIME = date("Y-m-d H:i:s"); -# api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); - $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; - $rslt=mysql_query($stmt, $link); + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; } -return 1; -} ?> diff --git a/LANG_www/vicidial_fr/remote_dispo.php b/LANG_www/vicidial_fr/remote_dispo.php index 3f35a5f3..e0ab9c21 100644 --- a/LANG_www/vicidial_fr/remote_dispo.php +++ b/LANG_www/vicidial_fr/remote_dispo.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # this is the remote agent disposition screen for calls sent to remote agents. # This allows the remote agent to modify customer information and disposition @@ -10,6 +10,7 @@ # CHANGES # # 60619-1626 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags # @@ -160,14 +161,14 @@ $browser = getenv("HTTP_USER_AGENT"); VICIDIAL DISTANT: Disposition des appels -\n"; ?>
-"; @@ -202,7 +203,7 @@ else if ($lead_count > 0) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); @@ -265,7 +266,7 @@ else echo "
Commentaires :
Disposition: +
Horloge en temps Record Edit for  
-
Horloge en temps Record Edit for  
  \n"; @@ -436,7 +439,7 @@ if ($modify_timeclock_log > 0) } -echo "VICIDIAL Feuille de temps\n"; +echo "Agent Feuille de temps\n"; echo " - Statistiques utilisateur\n"; echo " - Modifier un utilisateur\n"; @@ -468,7 +471,7 @@ echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; - LICENSE: AGPLv2 @@ -9,6 +9,7 @@ # 80617-1416 - Fixed totals tally bug # 80707-0754 - Fixed groups bug, changed formatting # 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -41,7 +42,7 @@ if (strlen($order)<2) {$order='hours_down';} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -49,8 +50,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -134,9 +136,9 @@ while ($i < $user_groups_to_print) -VICIDIAL: UtilisateurHorloge en temps Report +<TITLE>UtilisateurHorloge en temps Report -<? +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -240,7 +242,7 @@ echo "</FORM>\n\n"; echo "<PRE><FONT SIZE=3>\n"; -echo "VICIDIAL: UtilisateurHorloge en temps Report $NOW_TIME\n"; +echo "UtilisateurHorloge en temps Report $NOW_TIME\n"; echo "Time range: $query_date to $end_date\n\n"; echo "---------- USER TIMECLOCK DETAILS -------------\n"; diff --git a/LANG_www/vicidial_fr/timeclock_status.php b/LANG_www/vicidial_fr/timeclock_status.php index 3dfd959b..fd7b798e 100644 --- a/LANG_www/vicidial_fr/timeclock_status.php +++ b/LANG_www/vicidial_fr/timeclock_status.php @@ -1,4 +1,4 @@ -<? +<?php # timeclock_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 80602-0201 - First Build # 80603-1500 - formatting changes # 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -35,7 +36,7 @@ if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -43,9 +44,11 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $timeclock_end_of_day = $row[2]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $i++; } ##### END SETTINGS LOOKUP ##### @@ -141,8 +144,8 @@ if (strlen($user_group) > 0) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ADMINISTRATION DE VICIDIAL:Horloge en temps Status -<? +<title>ADMINISTRATION:Horloge en temps Status +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -169,8 +172,8 @@ require("admin_header.php"); ?> <CENTER> <TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> -<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Horloge en temps Status for <? echo $user_group ?></TD><TD ALIGN=RIGHT>             -<? +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Horloge en temps Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>GROUPE D'UTILISATEURS</a>\n"; ?> @@ -179,7 +182,7 @@ echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARI -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -352,6 +355,7 @@ while ($users_to_print > $o) {$bgcolor[$o]='bgcolor="#66CC66"';} # green } + $s++; echo "<tr $bgcolor[$o]>"; echo "<td><font size=1>$s</td>"; echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; @@ -365,8 +369,6 @@ while ($users_to_print > $o) if (strlen($Tstatus[$o])>0) {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} - - $s++; } $o++; } @@ -410,7 +412,7 @@ echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime se </body> </html> -<? +<?php exit; @@ -534,7 +536,7 @@ echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime se </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_fr/user_group_bulk_change.php b/LANG_www/vicidial_fr/user_group_bulk_change.php index bdd5fa48..b079b0e1 100644 --- a/LANG_www/vicidial_fr/user_group_bulk_change.php +++ b/LANG_www/vicidial_fr/user_group_bulk_change.php @@ -1,4 +1,4 @@ -<? +<?php # user_group_bulk_change.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # 81119-0918 - First build # 90309-1830 - Added admin_log logging # 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -31,7 +32,7 @@ if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -39,8 +40,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -102,7 +104,7 @@ $browser = getenv("HTTP_USER_AGENT"); } } -$stmt="select * from vicidial_user_groups order by user_group desc;"; +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -121,8 +123,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ADMINISTRATION DE VICIDIAL: Changement de groupe d'utilisateur en vrac -<? +<title>ADMINISTRATION: Changement de groupe d'utilisateur en vrac +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -155,7 +157,7 @@ require("admin_header.php"); -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -259,7 +261,7 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_fr/user_stats.php b/LANG_www/vicidial_fr/user_stats.php index be7c760d..01e28ae7 100644 --- a/LANG_www/vicidial_fr/user_stats.php +++ b/LANG_www/vicidial_fr/user_stats.php @@ -1,4 +1,4 @@ -<? +<?php # user_stats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -17,11 +17,31 @@ # 90208-0504 - Added link to multi-day report and fixed call status summary section # 90305-1226 - Added user_call_log manual dial logs # 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -50,32 +70,33 @@ $TODAY = date("Y-m-d"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { if($auth>0) { - $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname=$row[0]; + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); fclose($fp); @@ -92,7 +113,6 @@ $browser = getenv("HTTP_USER_AGENT"); $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $full_name = $row[0]; - } @@ -102,8 +122,8 @@ $browser = getenv("HTTP_USER_AGENT"); <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ADMINISTRATION DE VICIDIAL: Statistiques utilisateur -<? +<title>ADMINISTRATION: Statistiques utilisateur +<?php ##### BEGIN Set variables to make header show properly ##### @@ -129,12 +149,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Statistiques utilisateur for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Statistiques utilisateur for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -152,7 +172,7 @@ echo "<input type=submit name=submit value=submit>\n"; echo "           $user - $full_name<BR><BR>\n"; echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Feuille de temps</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Feuille de temps</a>\n"; echo " | <a href=\"./user_status.php?user=$user\">Utilisateur Status</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifier un utilisateur</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Utilisateur multiple day status detail report</a>"; @@ -166,10 +186,10 @@ echo "<br><center>\n"; ##### vicidial agent talk time and status ##### -echo "<B>VICIDIAL TEMPS DE CONVERSATION ET ETAT:</B>\n"; +echo "<B>AGENT TEMPS DE CONVERSATION ET ETAT:</B>\n"; echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ETAT</td><td align=right><font size=2>NOMBRE</td><td align=right><font size=2>HEURES:MINUTES</td></tr>\n"; +echo "<tr><td><font size=2>ETAT</td><td align=right><font size=2>NOMBRE</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by status order by status"; $rslt=mysql_query($stmt, $link); @@ -225,34 +245,20 @@ while ($o < $p) else {$bgcolor='bgcolor="#9BB9FB"';} - $call_seconds = $call_sec[$o]; - $call_hours = ($call_seconds / 3600); - $call_hours_int = round($call_hours, 2); - $call_hours_int = intval("$call_hours_int"); - $call_minutes = ($call_hours - $call_hours_int); - $call_minutes = ($call_minutes * 60); - $call_minutes_int = round($call_minutes, 0); - if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} + $call_hours_minutes = sec_convert($call_sec[$o],'H'); echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; echo "<td align=right><font size=2> $counts[$o]</td>\n"; - echo "<td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; $total_calls = ($total_calls + $counts[$o]); $total_sec = ($total_sec + $call_sec[$o]); $call_seconds=0; $o++; } -$call_seconds = $total_sec; -$call_hours = ($call_seconds / 3600); -$call_hours_int = round($call_hours, 2); -$call_hours_int = intval("$call_hours_int"); -$call_minutes = ($call_hours - $call_hours_int); -$call_minutes = ($call_minutes * 60); -$call_minutes_int = round($call_minutes, 0); -if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} +$call_hours_minutes = sec_convert($total_sec,'H'); -echo "<tr><td><font size=2>TOTAL DES APPELS</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; +echo "<tr><td><font size=2>TOTAL DES APPELS</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -262,9 +268,9 @@ echo "<br><br>\n"; echo "<center>\n"; -echo "<B>VICIDIAL AGENT HEURE DE CONNECTION/DECONNECTION:</B>\n"; +echo "<B>AGENT HEURE DE CONNECTION/DECONNECTION:</B>\n"; echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> CAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HEURES:MINUTES</td></tr>\n"; +echo "<tr><td><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> CAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group from vicidial_user_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59'"; $rslt=mysql_query($stmt, $link); @@ -294,21 +300,17 @@ echo "<tr><td><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td> { if ($event_start_seconds) { + $event_stop_seconds = $row[1]; $event_seconds = ($event_stop_seconds - $event_start_seconds); $total_login_time = ($total_login_time + $event_seconds); - $event_hours = ($event_seconds / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($event_seconds,'H'); + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $row[2]</td>\n"; echo "<td align=right><font size=2> $row[3]</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; $event_start_seconds=''; $event_stop_seconds=''; } @@ -327,19 +329,13 @@ echo "<tr><td><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td> $o++; } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); echo "<tr><td><font size=2>TOTAL</td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int</td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -361,7 +357,7 @@ echo "<center>\n"; echo "<B>TIMECLOCK HEURE DE CONNECTION/DECONNECTION:</B>\n"; echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HEURES:MINUTES</td></tr>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; if ($DB>0) {echo "|$stmt|";} @@ -397,20 +393,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f { $login_sec = $row[3]; $total_login_time = ($total_login_time + $login_sec); - $event_hours = ($login_sec / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($login_sec,'H'); + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; echo "<td align=right><font size=2>$manager_edit</td>"; echo "<td align=right><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $TC_log_date</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int"; + echo "<td align=right><font size=2> $event_hours_minutes"; if ($DB) {echo " - $total_login_time - $login_sec";} echo "</td></tr>\n"; } @@ -422,26 +413,21 @@ if (strlen($login_sec)<1) $total_login_time = ($total_login_time + $login_sec); if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); - if ($DB) {echo " - $total_login_time - $login_sec";} +if ($DB) {echo " - $total_login_time - $login_sec";} echo "<tr><td align=right><font size=2> </td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; echo "</TABLE></center>\n"; + ##### closer in-group selection logs ##### echo "<br><br>\n"; @@ -450,29 +436,30 @@ echo "<center>\n"; echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAGNE</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td></tr>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAGNE</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; - $stmt="select * from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[2]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[3]</td>\n"; - echo "<td align=left><font size=2> $row[4] </td>\n"; - echo "</tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; } @@ -485,31 +472,31 @@ echo "<B>SORTANT CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[4]</td>"; - echo "<td align=left><font size=2> $row[7]</td>\n"; - echo "<td align=left><font size=2> $row[8]</td>\n"; - echo "<td align=left><font size=2> $row[10] </td>\n"; - echo "<td align=right><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[14] </td>\n"; - echo "<td align=right><font size=2> $row[2] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; - echo "<td align=right><font size=2> $row[15] </td></tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; } @@ -522,7 +509,7 @@ echo "<B>ENTRANT/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAGNE</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -559,7 +546,7 @@ echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; - $stmt="select * from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -676,7 +663,7 @@ echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime se </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_fr/user_status.php b/LANG_www/vicidial_fr/user_status.php index 6115d6de..e658f0ec 100644 --- a/LANG_www/vicidial_fr/user_status.php +++ b/LANG_www/vicidial_fr/user_status.php @@ -1,4 +1,4 @@ -<? +<?php # user_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -10,6 +10,10 @@ # 81118-1034 - Disabled change campaign because it does not work # 90208-0511 - Added link to user multi-day status report # 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process # header ("Content-type: text/html; charset=utf-8"); @@ -38,17 +42,17 @@ if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $i++; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -64,35 +68,34 @@ $ip = getenv("REMOTE_ADDR"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { - $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname = $row[0]; - $change_agent_campaign = $row[1]; - $modify_timeclock_log = $row[2]; + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; if ($webroot_writable > 0) { fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); @@ -116,7 +119,7 @@ $browser = getenv("HTTP_USER_AGENT"); $full_name = $row[0]; $user_group = $row[1]; - $stmt="SELECT * from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $agents_to_print = mysql_num_rows($rslt); @@ -124,13 +127,17 @@ $browser = getenv("HTTP_USER_AGENT"); while ($i < $agents_to_print) { $row=mysql_fetch_row($rslt); - $Aserver_ip = $row[2]; - $Asession_id = $row[3]; - $Aextension = $row[4]; - $Astatus = $row[5]; - $Acampaign = $row[7]; - $Alast_call = $row[14]; - $Acl_campaigns = $row[15]; + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; $i++; } @@ -149,7 +156,7 @@ $browser = getenv("HTTP_USER_AGENT"); } -$stmt="select * from vicidial_campaigns;"; +$stmt="select campaign_id from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -167,8 +174,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>ADMINISTRATION DE VICIDIAL: Utilisateur Status -<? +<title>ADMINISTRATION: Utilisateur Status +<?php ##### BEGIN Set variables to make header show properly ##### @@ -194,12 +201,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=<? echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Utilisateur Status for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Utilisateur Status for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -217,10 +224,170 @@ if ($stage == "live_campaign_change") ##### EMERGENCY LOGOUT OF AN AGENT ##### if ($stage == "log_agent_out") { - $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; - echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } exit; } @@ -283,8 +450,8 @@ if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($mod $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - $status='START'; - $totTIME_HMS='0:00:00'; + $status='START'; + $totTIME_HMS='0:00:00'; $affected_rows = mysql_affected_rows($link); print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; } @@ -406,9 +573,14 @@ if ($agents_to_print > 0) echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} echo "</TABLE>\n<BR>\n"; - if ($change_agent_campaign > 0) { echo "<form action=$PHP_SELF method=POST>\n"; @@ -416,17 +588,16 @@ if ($agents_to_print > 0) echo "<input type=hidden name=user value=\"$user\">\n"; echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; echo "Current Campagne: <SELECT SIZE=1 NAME=group>\n"; - $o=0; - while ($groups_to_print > $o) + $o=0; + while ($groups_to_print > $o) { - if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} - else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} - $o++; + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; } echo "</SELECT>\n"; echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; - echo "<form action=$PHP_SELF method=POST>\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<input type=hidden name=user value=\"$user\">\n"; @@ -437,7 +608,7 @@ if ($agents_to_print > 0) else { - echo "Agent is not logged in to VICIDIAL\n<BR>"; + echo "Agent is not logged in\n<BR>"; } echo "\n<BR>"; @@ -469,7 +640,7 @@ if ($modify_timeclock_log > 0) $REPORTdate = date("Y-m-d"); echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Feuille de temps</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Feuille de temps</a>\n"; echo " | <a href=\"./user_stats.php?user=$user\">Statistiques utilisateur</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifier un utilisateur</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Utilisateur multiple day status detail report</a>"; @@ -497,11 +668,10 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; ?> - diff --git a/LANG_www/vicidial_fr/user_territories.php b/LANG_www/vicidial_fr/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/LANG_www/vicidial_fr/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/LANG_www/vicidial_fr/vdremote.php b/LANG_www/vicidial_fr/vdremote.php index a01dd36c..1c9aa459 100644 --- a/LANG_www/vicidial_fr/vdremote.php +++ b/LANG_www/vicidial_fr/vdremote.php @@ -1,20 +1,22 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # Changes # 50307-1721 - First version # 51123-1502 - removed requirement of PHP Globals=on # 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1603 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes # -$version = '1.1.12'; -$build = '60619-1603'; +$version = '2.2.0'; +$build = '91129-2249'; require("dbconnect.php"); @@ -55,15 +57,15 @@ if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} if (!isset($force_logout)) {$force_logout = 0;} if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Vous êtes maintenant déconnecté. Merci.\n"; exit; -} + } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -75,25 +77,25 @@ $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); if (!isset($query_date)) {$query_date = $NOW_DATE;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { header ("Content-type: text/html; charset=utf-8"); @@ -159,8 +161,8 @@ echo "\n"; .orange {color: black; background-color: orange} --> -AGENTS DISTANTS VICIDIAL: $LOGfullname - $PHP_AUTH_USER "; +AGENTS DISTANTS: $LOGfullname - $PHP_AUTH_USER "; if (!$ADD) {$ADD="31111";} if ($ADD==31111) {echo "Modifier les agents distants";} @@ -201,14 +203,14 @@ if (strlen($ADD)>4) ##### get inbound groups listing for checkboxes if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; $rslt=mysql_query($stmt, $link); @@ -244,12 +246,12 @@ if (strlen($ADD)>4)
- - +
  AGENTS DISTANTS VICIDIAL:   Déconnection  
  MODIFIER | ">ETAT | ">SATISTIQUES EN ENTREE
+
  AGENTS DISTANTS:   Déconnection  
  MODIFIER | ">ETAT | ">SATISTIQUES EN ENTREE
-4) ###################### if ($ADD==31111) -{ + { echo ""; - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -272,25 +274,23 @@ if ($ADD==31111) $status = $row[5]; $campaign_id = $row[6]; -echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]
\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Début des ID utilisateurs: $user_start
Nombre de lignes: (nombres seulement)
IP du serveur: $row[3]
Extension externe: (number dialed to reach agents [i.e. 913125551212])
Etat:
Campagne: $campaign_id
Groupes entrants: \n"; -echo "$groups_list"; -echo "
\n"; -echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; - -} - + echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Début des ID utilisateurs: $user_start
Nombre de lignes: (nombres seulement)
IP du serveur: $row[3]
Extension externe: (number dialed to reach agents [i.e. 913125551212])
Etat:
Campagne: $campaign_id
Groupes entrants: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; + } @@ -299,12 +299,12 @@ echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis ###################### if ($ADD==41111) -{ + { echo ""; - if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) {echo "
AGENT DISTANT NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} - else + else { $stmt="UPDATE vicidial_remote_agents set number_of_lines='" . mysql_real_escape_string($number_of_lines) . "', conf_exten='" . mysql_real_escape_string($conf_exten) . "', status='" . mysql_real_escape_string($status) . "', closer_campaigns='" . mysql_real_escape_string($groups_value) . "' where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); @@ -316,10 +316,9 @@ if ($ADD==41111) $fp = fopen ("./admin_changes_log.txt", "a"); fwrite ($fp, "$date|MODIFY AGENTS DISTANTS ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); fclose($fp); - } - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -330,25 +329,23 @@ if ($ADD==41111) $status = $row[5]; $campaign_id = $row[6]; -echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Début des ID utilisateurs: $user_start
Nombre de lignes: (nombres seulement)
IP du serveur: $row[3]
Extension externe: (number dialed to reach agents [i.e. 913125551212])
Etat:
Campagne: $campaign_id
Groupes entrants: \n"; -echo "$groups_list"; -echo "
\n"; -echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; - -} - + echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Début des ID utilisateurs: $user_start
Nombre de lignes: (nombres seulement)
IP du serveur: $row[3]
Extension externe: (number dialed to reach agents [i.e. 913125551212])
Etat:
Campagne: $campaign_id
Groupes entrants: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; + } @@ -357,14 +354,13 @@ echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis ###################### if ($ADD==61111) -{ + { echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ERREUR AGENTS DISTANT - Veuillez revenir en arrière et verifier les données que vous avez saisies\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -375,7 +371,7 @@ if ($ADD==61111) } $users_list = preg_replace("/.$/","",$users_list); - echo "VICIDIAL: Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; @@ -385,14 +381,14 @@ if ($ADD==61111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) { $leadlink=0; $row=mysql_fetch_row($rslt); - if (eregi("READY|PAUSED",$row[4])) + if (eregi("READY|PAUSED",$row[4])) { $row[3]=''; $row[5]=' - PATIENTEZ -'; @@ -409,7 +405,7 @@ if ($ADD==61111) $leadid = "$leadid"; } $channel = sprintf("%-10s", $row[3]); - $cc=0; + $cc=0; while ( (strlen($channel) > 10) and ($cc < 100) ) { $channel = eregi_replace(".$","",$channel); @@ -438,14 +434,13 @@ if ($ADD==61111) $i++; } - echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; - echo " $i agents connectés sur ce serveur $server_ip\n\n"; - - echo " - En appel depuis 5 minutes ou plus\n"; - echo " - En appel depuis plus de 10 minutes\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i agents connectés sur ce serveur $server_ip\n\n"; + echo " - En appel depuis 5 minutes ou plus\n"; + echo " - En appel depuis plus de 10 minutes\n"; } - else + else { echo "**************************************************************************************\n"; echo "********************************* AUCUN AGENT EN APPEL*********************************\n"; @@ -453,9 +448,8 @@ if ($ADD==61111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } ###################### @@ -463,7 +457,7 @@ echo "\n\n"; ###################### if ($ADD==71111) -{ + { echo "\n"; echo "\n"; echo "\n"; @@ -472,11 +466,10 @@ if ($ADD==71111) echo "\n\n"; echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ERREUR AGENTS DISTANT - Veuillez revenir en arrière et verifier les données que vous avez saisies\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -492,17 +485,17 @@ if ($ADD==71111) $row=mysql_fetch_row($rslt); $in_calls = $row[0]; $in_time = $row[1]; - $in_time_M = ($in_time / 60); - $in_time_M = round($in_time_M, 2); - $in_time_M_int = intval("$in_time_M"); - $in_time_SEC = ($in_time_M - $in_time_M_int); - $in_time_SEC = ($in_time_SEC * 60); - $in_time_SEC = round($in_time_SEC, 0); - if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} - $in_time_MS = "$in_time_M_int:$in_time_SEC"; - $in_time_MS = sprintf("%7s", $in_time_MS); + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); - echo "VICIDIAL: Statistiques des agents distants en entrée $NOW_TIME\n\n"; + echo "Statistiques des agents distants en entrée $NOW_TIME\n\n"; echo "\n"; echo "Total des appels pris $query_date: $in_calls\n"; echo "Temps total de conversation$query_date: $in_time_MS (minutes:seconds)\n"; @@ -518,7 +511,7 @@ if ($ADD==71111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) @@ -550,14 +543,13 @@ if ($ADD==71111) $i++; } - echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; - # echo " $i agents connectés sur ce serveur $server_ip\n\n"; - - # echo " - En appel depuis 5 minutes ou plus\n"; - # echo " - En appel depuis plus de 10 minutes\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; } - else + else { echo "**************************************************************************************\n"; echo "********************************* PAS D'APPELS CE JOUR*******************************\n"; @@ -565,9 +557,8 @@ if ($ADD==71111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } @@ -590,7 +581,7 @@ echo "\n\n\n


\ntemps d'exécution du script: $RUNtime se - - - - - diff --git a/LANG_www/vicidial_fr/vicidial_sales_viewer.php b/LANG_www/vicidial_fr/vicidial_sales_viewer.php index 6845d08e..607b4d09 100644 --- a/LANG_www/vicidial_fr/vicidial_sales_viewer.php +++ b/LANG_www/vicidial_fr/vicidial_sales_viewer.php @@ -1,4 +1,4 @@ - 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { +# Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); +# Header("HTTP/1.0 401 Unauthorized"); + echo "Login ou mot de passe invalide or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + ?> -VICIDIAL recent sales lookup +Recent Sales Lookup - @@ -54,7 +76,7 @@ function GatherListIDs() { -
"; ?> -
+ @@ -72,9 +94,9 @@ echo "
";
- + - -
Select a VICIDIAL campaign:Select a campaign:
"; } ?> -
"; ?>
Select list ID(s) # (optional):
"; ?>
@@ -140,7 +162,7 @@ echo "
";
** - sorted by call date
- LICENSE: AGPLv2 @@ -6,7 +6,7 @@ # This page does a search against a standard vtiger CRM system. If the record # is not present, it will create a new one and send the agent's screen to that new page. # -# This code is tested against vtiger 5.0.4 +# This code is tested against vtiger 5.0.4 and 5.1.0 # # CHANGES # 60719-1615 - First version @@ -18,6 +18,8 @@ # 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD # 90111-1451 - Added logging of call as activity for account/lead # 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option # header ("Content-type: text/html; charset=utf-8"); @@ -152,7 +154,7 @@ if ($enable_vtiger_integration < 1) exit; } -$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record FROM vicidial_campaigns where campaign_id='$campaign';"; +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $vtc_conf_ct = mysql_num_rows($rslt); @@ -162,6 +164,7 @@ if ($vtc_conf_ct > 0) $vtiger_search_category = $row[0]; $vtiger_create_call_record = $row[1]; $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; } if (strlen($vtiger_search_category)<1) {$vtiger_search_category = 'LEAD';} @@ -188,15 +191,38 @@ mysql_select_db("$vtiger_dbname", $linkV); # LEAD: # $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; -$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; -if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} -if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} -if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} -if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + ########################################################################## @@ -219,78 +245,102 @@ if ($acctid_search > 0) } else { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "account found! ACCTID\n";
-		echo "accountid:   $vendor_id\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -380,79 +430,102 @@ if ($account_search > 0) } if (strlen($accountid) > 0) { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger - echo "
";
-		echo "account found! ACCOUNT\n";
-		echo "accountid:   $accountid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -675,80 +748,104 @@ if ($lead_search > 0) $row=mysql_fetch_row($rslt); $leadid = $row[0]; - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "lead found! LEAD\n";
-		echo "leadid:   $leadid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -774,7 +871,7 @@ echo "Click here to go to the Vtiger home page\n"; - LICENSE: AGPLv2 # -echo "VICIDIAL Bienvenue\n"; +echo "ViciDial Bienvenue\n"; echo "\n"; echo "\n"; echo "




"; diff --git a/LANG_www/vicidial_fr/welcome_demo.php b/LANG_www/vicidial_fr/welcome_demo.php index 65997b08..238cf5cf 100644 --- a/LANG_www/vicidial_fr/welcome_demo.php +++ b/LANG_www/vicidial_fr/welcome_demo.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_fr/welcome_languages.php b/LANG_www/vicidial_fr/welcome_languages.php index 1218c652..d53707a9 100644 --- a/LANG_www/vicidial_fr/welcome_languages.php +++ b/LANG_www/vicidial_fr/welcome_languages.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_it/AST_CLOSER_service_level.php b/LANG_www/vicidial_it/AST_CLOSER_service_level.php index d78a2e5c..ba3aeda0 100644 --- a/LANG_www/vicidial_it/AST_CLOSER_service_level.php +++ b/LANG_www/vicidial_it/AST_CLOSER_service_level.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -10,6 +10,8 @@ # 80519-0413 - rewrote time intervals code and stats gathering code # 80528-2320 - fixed small calculation bugs and display bugs, added more shifts # 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown # require("dbconnect.php"); @@ -59,7 +61,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -74,7 +76,7 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -82,7 +84,8 @@ $i=0; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; $i++; } ?> @@ -97,13 +100,13 @@ while ($i < $groups_to_print) --> -\n"; -echo "VICIDIAL: VDAD Closer Service Level Stats\n"; +echo "Inbound Service Level Report\n"; - $short_header=1; +$short_header=1; - require("admin_header.php"); +require("admin_header.php"); echo "
"; @@ -112,11 +115,11 @@ echo "\n"; echo "\n"; echo "\n"; echo "Gruppi Inbound: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -265,7 +272,7 @@ $query_date_END = "$end_date $time_END"; -echo "VICIDIAL: Estadísticas de Auto-dial en CLOSER: $group_string $NOW_TIME\n"; +echo "Inbound Call Stats: $group_string $NOW_TIME\n"; @@ -951,33 +958,9 @@ while ($i < $statuses_to_print) {$STATUSrate = ($STATUScount / ($TOTALsec / 3600) );} $STATUSrate = sprintf("%.2f", $STATUSrate); - $STATUShours_H = ($row[2] / 3600); - $STATUShours_H_int = round($STATUShours_H, 2); - $STATUShours_H_int = intval("$STATUShours_H_int"); - $STATUShours_M = ($STATUShours_H - $STATUShours_H_int); - $STATUShours_M = ($STATUShours_M * 60); - $STATUShours_M_int = round($STATUShours_M, 2); - $STATUShours_M_int = intval("$STATUShours_M_int"); - $STATUShours_S = ($STATUShours_M - $STATUShours_M_int); - $STATUShours_S = ($STATUShours_S * 60); - $STATUShours_S = round($STATUShours_S, 0); - if ($STATUShours_S < 10) {$STATUShours_S = "0$STATUShours_S";} - if ($STATUShours_M_int < 10) {$STATUShours_M_int = "0$STATUShours_M_int";} - $STATUShours = "$STATUShours_H_int:$STATUShours_M_int:$STATUShours_S"; - - $STATUSavg_H = (($row[2] / 3600) / $STATUScount); - $STATUSavg_H_int = round($STATUSavg_H, 2); - $STATUSavg_H_int = intval("$STATUSavg_H_int"); - $STATUSavg_M = ($STATUSavg_H - $STATUSavg_H_int); - $STATUSavg_M = ($STATUSavg_M * 60); - $STATUSavg_M_int = round($STATUSavg_M, 2); - $STATUSavg_M_int = intval("$STATUSavg_M_int"); - $STATUSavg_S = ($STATUSavg_M - $STATUSavg_M_int); - $STATUSavg_S = ($STATUSavg_S * 60); - $STATUSavg_S = round($STATUSavg_S, 0); - if ($STATUSavg_S < 10) {$STATUSavg_S = "0$STATUSavg_S";} - if ($STATUSavg_M_int < 10) {$STATUSavg_M_int = "0$STATUSavg_M_int";} - $STATUSavg = "$STATUSavg_H_int:$STATUSavg_M_int:$STATUSavg_S"; + $STATUShours = sec_convert($row[2],'H'); + $STATUSavg_sec = ($row[2] / $STATUScount); + $STATUSavg = sec_convert($STATUSavg_sec,'H'); $STATUScount = sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);} $status = sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);} @@ -1020,33 +1003,9 @@ else {$TOTALrate = ($TOTALcalls / ($TOTALsec / 3600) );} $TOTALrate = sprintf("%.2f", $TOTALrate); - $TOTALhours_H = ($TOTALsec / 3600); - $TOTALhours_H_int = round($TOTALhours_H, 2); - $TOTALhours_H_int = intval("$TOTALhours_H_int"); - $TOTALhours_M = ($TOTALhours_H - $TOTALhours_H_int); - $TOTALhours_M = ($TOTALhours_M * 60); - $TOTALhours_M_int = round($TOTALhours_M, 2); - $TOTALhours_M_int = intval("$TOTALhours_M_int"); - $TOTALhours_S = ($TOTALhours_M - $TOTALhours_M_int); - $TOTALhours_S = ($TOTALhours_S * 60); - $TOTALhours_S = round($TOTALhours_S, 0); - if ($TOTALhours_S < 10) {$TOTALhours_S = "0$TOTALhours_S";} - if ($TOTALhours_M_int < 10) {$TOTALhours_M_int = "0$TOTALhours_M_int";} - $TOTALhours = "$TOTALhours_H_int:$TOTALhours_M_int:$TOTALhours_S"; - - $TOTALavg_H = (($TOTALsec / 3600) / $TOTALcalls); - $TOTALavg_H_int = round($TOTALavg_H, 2); - $TOTALavg_H_int = intval("$TOTALavg_H_int"); - $TOTALavg_M = ($TOTALavg_H - $TOTALavg_H_int); - $TOTALavg_M = ($TOTALavg_M * 60); - $TOTALavg_M_int = round($TOTALavg_M, 2); - $TOTALavg_M_int = intval("$TOTALavg_M_int"); - $TOTALavg_S = ($TOTALavg_M - $TOTALavg_M_int); - $TOTALavg_S = ($TOTALavg_S * 60); - $TOTALavg_S = round($TOTALavg_S, 0); - if ($TOTALavg_S < 10) {$TOTALavg_S = "0$TOTALavg_S";} - if ($TOTALavg_M_int < 10) {$TOTALavg_M_int = "0$TOTALavg_M_int";} - $TOTALavg = "$TOTALavg_H_int:$TOTALavg_M_int:$TOTALavg_S"; + $TOTALhours = sec_convert($TOTALsec,'H'); + $TOTALavg_sec = ($TOTALsec / $TOTALcalls); + $TOTALavg = sec_convert($TOTALavg_sec,'H'); } $TOTALcalls = sprintf("%10s", $TOTALcalls); $TOTALhours = sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);} @@ -1091,6 +1050,67 @@ echo "| TOTAL | $TOTCATcalls |\n"; echo "+----------------------+------------+\n"; +############################## +######### CALL INITIAL QUEUE POSITION BREAKDOWN + +$TOTALcalls = 0; + +echo "\n"; +echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; +echo "| 1 2 3 4 5 6 7 8 9 10 15 20 25 +25 | TOTAL |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + +$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) group by queue_position;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$positions_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $positions_to_print) + { + $row=mysql_fetch_row($rslt); + + $TOTALcalls = ($TOTALcalls + $row[0]); + + if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);} + if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);} + if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);} + if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);} + if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);} + if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);} + if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);} + if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);} + if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);} + if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);} + if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);} + if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);} + if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);} + if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);} + $i++; + } + +$qp_1 = sprintf("%5s", $qp_1); +$qp_2 = sprintf("%5s", $qp_2); +$qp_3= sprintf("%5s", $qp_3); +$qp_4 = sprintf("%5s", $qp_4); +$qp_5 = sprintf("%5s", $qp_5); +$qp_6 = sprintf("%5s", $qp_6); +$qp_7 = sprintf("%5s", $qp_7); +$qp_8 = sprintf("%5s", $qp_8); +$qp_9 = sprintf("%5s", $qp_9); +$qp10 = sprintf("%5s", $qp10); +$qp15 = sprintf("%5s", $qp15); +$qp20 = sprintf("%5s", $qp20); +$qp25 = sprintf("%5s", $qp25); +$qp99 = sprintf("%5s", $qp99); + +$TOTALcalls = sprintf("%10s", $TOTALcalls); + +echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n"; +echo "+-------------------------------------------------------------------------------------+------------+\n"; + + + ############################## ######### USER STATS @@ -1101,9 +1121,9 @@ $TOTavg=0; echo "\n"; echo "---------- STATISTICHE OPERATORE\n"; -echo "+--------------------------+------------+----------+--------+\n"; -echo "| AGENT | CALLS | TEMPO M | MEDIA M |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; +echo "| AGENT | CALLS | TIME H:M:S |AVERAGE |\n"; +echo "+--------------------------+------------+------------+--------+\n"; $stmt="select vicidial_closer_log.user,full_name,count(*),sum(length_in_sec),avg(length_in_sec) from vicidial_closer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;"; $rslt=mysql_query($stmt, $link); @@ -1118,34 +1138,25 @@ while ($i < $users_to_print) $TOTtime = ($TOTtime + $row[3]); $user = sprintf("%-6s", $row[0]); - $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + if ($non_latin < 1) + { + $full_name = sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);} + } + else + { + $full_name = sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');} + } $USERcalls = sprintf("%10s", $row[2]); $USERtotTALK = $row[3]; $USERavgTALK = $row[4]; - $USERtotTALK_M = ($USERtotTALK / 60); - $USERtotTALK_M_int = round($USERtotTALK_M, 2); - $USERtotTALK_M_int = intval("$USERtotTALK_M_int"); - $USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int); - $USERtotTALK_S = ($USERtotTALK_S * 60); - $USERtotTALK_S = round($USERtotTALK_S, 0); - if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";} - $USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S"; - $USERtotTALK_MS = eregi_replace('-','',$USERtotTALK_MS); - $USERtotTALK_MS = sprintf("%8s", $USERtotTALK_MS); + $USERtotTALK_MS = sec_convert($USERtotTALK,'H'); + $USERavgTALK_MS = sec_convert($USERavgTALK,'H'); - $USERavgTALK_M = ($USERavgTALK / 60); - $USERavgTALK_M_int = round($USERavgTALK_M, 2); - $USERavgTALK_M_int = intval("$USERavgTALK_M_int"); - $USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int); - $USERavgTALK_S = ($USERavgTALK_S * 60); - $USERavgTALK_S = round($USERavgTALK_S, 0); - if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";} - $USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S"; - $USERavgTALK_MS = eregi_replace('-','',$USERavgTALK_MS); - $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); + $USERtotTALK_MS = sprintf("%9s", $USERtotTALK_MS); + $USERavgTALK_MS = sprintf("%6s", $USERavgTALK_MS); - echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; + echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n"; $i++; } @@ -1154,36 +1165,21 @@ if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;} else { $TOTavg = ($TOTtime / $TOTcalls); - $TOTavg = round($TOTavg, 0); - $TOTavg_M = ($TOTavg / 60); - $TOTavg_M_int = round($TOTavg_M, 2); - $TOTavg_M_int = intval("$TOTavg_M_int"); - $TOTavg_S = ($TOTavg_M - $TOTavg_M_int); - $TOTavg_S = ($TOTavg_S * 60); - $TOTavg_S = round($TOTavg_S, 0); - if ($TOTavg_S < 10) {$TOTavg_S = "0$TOTavg_S";} - $TOTavg_MS = "$TOTavg_M_int:$TOTavg_S"; + $TOTavg_MS = sec_convert($TOTavg,'H'); $TOTavg = sprintf("%6s", $TOTavg_MS); } -$TOTtime_M = ($TOTtime / 60); -$TOTtime_M_int = round($TOTtime_M, 2); -$TOTtime_M_int = intval("$TOTtime_M_int"); -$TOTtime_S = ($TOTtime_M - $TOTtime_M_int); -$TOTtime_S = ($TOTtime_S * 60); -$TOTtime_S = round($TOTtime_S, 0); -if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";} -$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S"; -$TOTtime = sprintf("%6s", $TOTtime_MS); +$TOTtime_MS = sec_convert($TOTtime,'H'); +$TOTtime = sprintf("%10s", $TOTtime_MS); $TOTagents = sprintf("%10s", $i); $TOTcalls = sprintf("%10s", $TOTcalls); $TOTtime = sprintf("%8s", $TOTtime); $TOTavg = sprintf("%6s", $TOTavg); -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; echo "| TOTALE Operatori: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n"; -echo "+--------------------------+------------+----------+--------+\n"; +echo "+--------------------------+------------+------------+--------+\n"; ############################## diff --git a/LANG_www/vicidial_it/AST_CLOSERsummary_hourly.php b/LANG_www/vicidial_it/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/LANG_www/vicidial_it/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_it/AST_IVRfilter.php b/LANG_www/vicidial_it/AST_IVRfilter.php index 6dbc3474..62d2dc2e 100644 --- a/LANG_www/vicidial_it/AST_IVRfilter.php +++ b/LANG_www/vicidial_it/AST_IVRfilter.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # # 81030-0432 - First build # 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -81,7 +82,7 @@ $i=0; --> -\n"; echo "VICIDIAL: VDL IVR Filter Stats\n"; diff --git a/LANG_www/vicidial_it/AST_IVRstats.php b/LANG_www/vicidial_it/AST_IVRstats.php index 81f71938..87899322 100644 --- a/LANG_www/vicidial_it/AST_IVRstats.php +++ b/LANG_www/vicidial_it/AST_IVRstats.php @@ -1,15 +1,16 @@ - LICENSE: AGPLv2 # # CHANGES -# # 81026-2026 - First build # 81107-0341 - Added time range and option and 15-minute increment graph # 81107-1148 - Added average times and totals # 81108-0922 - Added no-callerID and unique caller counts # 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list # require("dbconnect.php"); @@ -61,7 +62,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -76,18 +77,23 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; - $LISTgroups[$i]='---NONE---'; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; $i++; $groups_to_print++; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $LISTgroups[$i] =$row[0]; + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; $i++; } @@ -139,7 +145,7 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: IVR Stats\n"; +echo "IVR Stats Report\n"; $short_header=1; @@ -203,14 +209,14 @@ echo "
\n"; echo "Gruppi Inbound: \n"; echo "\n"; echo "\n"; echo "\n"; @@ -248,434 +254,427 @@ echo "
\n\n";
 
 
 if ($groups_to_print < 1)
-{
-echo "\n\n";
-echo "SELEZIONA UN GRUPPO IN-E DATE SOPRA e fare clic su Invia\n";
-}
+	{
+	echo "\n\n";
+	echo "SELEZIONA UN GRUPPO IN-E DATE SOPRA e fare clic su Invia\n";
+	}
 
 else
-{
-
-
-echo "VICIDIAL: IVR Stats: $group_string          $NOW_TIME\n";
-
-
-
-
-
-
-$TOTALcalls=0;
-$NOCALLERIDcalls=0;
-$UNIQUEcallers=0;
-$totFLOWivr_time=0;
-$totFLOWtotal_time=0;
-
-##### Grab all records for the IVR for the specified time period
-$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$logs_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $logs_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-	$uniqueid[$p] =		$row[0];
-	$extension[$p] =	$row[1];
-	$start_time[$p] =	$row[2];
-	$comment_a[$p] =	$row[3];
-	$comment_b[$p] =	$row[4];
-	$comment_d[$p] =	$row[5];
-	$epoch[$p] =		$row[6];
-	$phone_ext[$p] =	$row[7];
-	$p++;
-	}
-
-### create the call flow of all calls by uniqueid
-$last_uniqueid='';
-$first_epoch='';
-$last_epoch='';
-$p=0;
-$r=-1;
-while ($p < $logs_to_print)
-	{
-	if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
-	if ($last_uniqueid === "$uniqueid[$p]")
-		{
-		$unique_calls[$r] .= "----------$comment_b[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		$last_epoch[$r]=$epoch[$p];
-		}
-	else
-		{
-		$r++;
-		$caller_id[$r]=$phone_ext[$p];
-		if (strlen($phone_ext[$p])<2)
-			{$NOCALLERIDcalls++;}
-		else
-			{
-			if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
-				{
-				$unique_callerIDs .= "_$phone_ext[$p]_";
-				$UNIQUEcallers++;
-				}
-			}
-		$first_epoch[$r]=$epoch[$p];
-		$last_epoch[$r]=$epoch[$p];
-		$unique_calls[$r] = $comment_b[$p];
-		$FLOWuniqueid[$r] = "$uniqueid[$p]";
-		$last_uniqueid = "$uniqueid[$p]";
-		if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
-		}
-	$p++;
-	}
-
-### sort call flows for counting
-$RAWunique_calls = $unique_calls;
-if ($logs_to_print > 0)
-	{sort($unique_calls);}
-
-
-### count each unique call flow
-$last_Suniqueid='';
-$p=-1;
-$s=0;
-while ($s <= $r)
-	{
-	if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
-	if ($last_Suniqueid === "$unique_calls[$s]")
-		{
-		$STunique_calls_count[$p]++;
-		}
-	else
-		{
-		$p++;
-		$STunique_calls[$p] = $unique_calls[$s];
-		$last_Suniqueid = "$unique_calls[$s]";
-		$STunique_calls_count[$p]=1;
-		}
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$TOTALcalls=0;
-$s=0;
-while ($s <= $p)
-	{
-	$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
-	$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
-	$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
-	$s++;
-	}
-
-#### PRINT TOTAL CALLS INTO THIS IVR
-echo "\n";
-echo "Calls taken into this IVR:   $TOTALcalls\n";
-echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
-echo "Unique Callers:              $UNIQUEcallers\n";
-echo "\n";
-
-### sort call flows for counting
-if ($p > 0)
-	{rsort($FLOWunique_calls);}
-
-
-### put call flows and counts together for sorting again
-$RUC_ct = count($RAWunique_calls);
-$s=0;
-while ($s <= $p)
-	{
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$t=0;
-	while ($t < $RUC_ct)
-		{
-		if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
-			{
-			$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
-			if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
-			else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
-			$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
-			}
-		$t++;
-		}
-
-	$s++;
-	}
-
-
-### put call flows and counts together for sorting again
-$s=0;
-
-echo "+--------+--------+--------+--------+------+------+\n";
-echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
-echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
-echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
-echo "+--------+--------+--------+--------+------+------+------------\n";
-
-while ($s <= $p)
-	{
-	$vcl_statuses = $MT;
-	$FLOWdrop[$s]=0;
-	$FLOWtotal[$s]=0;
-	$FLOWdropPCT[$s]=0;
-	$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
-	$FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
-	$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
 
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
 
 	##### Grab all records for the IVR for the specified time period
-	$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
 	$rslt=mysql_query($stmt, $link);
 	if ($DB) {echo "$stmt\n";}
-	$vcl_statuses_to_print = mysql_num_rows($rslt);
-	$w=0;
-	while ($w < $vcl_statuses_to_print)
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
 		{
 		$row=mysql_fetch_row($rslt);
-		$vcl_statuses[$w] =		$row[0];
-		if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
-			{$FLOWdrop[$s]++;}
-		$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
-		$FLOWtotal[$s]++;
-		$w++;
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
 		}
-	if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
 		{
-		$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
-		$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
-		}
-	$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
-	$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
-	$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
-	$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
-	$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
-	$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
-
-	$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
-	$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
-	$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
-	$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
-	$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
-	$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
-
-	$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
-	$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
-	$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
-	$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
-
-	echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
-
-	$s++;
-	}
-$TOTALcalls = sprintf("%6s", $TOTALcalls);
-$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
-$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
-if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
-$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
-$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
-if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
-	{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
-$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
-$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
-if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
-	{$totFLOWdropPCT = '0';}
-else
-	{
-	$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
-	$totFLOWdropPCT = round($totFLOWdropPCT, 0);
-	}
-$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
-
-echo "+--------+--------+--------+--------+------+------+------------\n";
-echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
-echo "+--------+--------+--------+--------+------+------+\n";
-
-
-
-
-
-
-
-
-
-
-
-
-
-##############################
-#########  TIME STATS
-
-echo "\n";
-echo "---------- STATISTICHE TEMPO\n";
-
-echo "\n";
-
-$hi_hour_count=0;
-$last_full_record=0;
-$i=0;
-$h=0;
-while ($i <= 96)
-	{
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-
-	$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
-	$rslt=mysql_query($stmt, $link);
-	if ($DB) {echo "$stmt\n";}
-	$row=mysql_fetch_row($rslt);
-	$hour_count[$i] = $row[0];
-	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
-	if ($hour_count[$i] > 0) {$last_full_record = $i;}
-	$i++;
-	$h++;
-	}
-
-if ($hi_hour_count < 1)
-	{$hour_multiplier = 0;}
-else
-	{
-	$hour_multiplier = (100 / $hi_hour_count);
-	#$hour_multiplier = round($hour_multiplier, 0);
-	}
-
-echo "\n";
-echo "GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE TAKEN INTO THIS IVR\n";
-
-$k=1;
-$Mk=0;
-$call_scale = '0';
-while ($k <= 102) 
-	{
-	if ($Mk >= 5) 
-		{
-		$Mk=0;
-		if ( ($k < 1) or ($hour_multiplier <= 0) )
-			{$scale_num = 100;}
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
 		else
 			{
-			$scale_num=($k / $hour_multiplier);
-			$scale_num = round($scale_num, 0);
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
 			}
-		$LENscale_num = (strlen($scale_num));
-		$k = ($k + $LENscale_num);
-		$call_scale .= "$scale_num";
+		$p++;
 		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT TOTALE CHIAMATE INTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
 	else
 		{
-		$call_scale .= " ";
-		$k++;   $Mk++;
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
 		}
-	}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
-echo "| HOUR |$call_scale| TOTAL |\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
 
-$ZZ = '00';
-$i=0;
-$h=4;
-$hour= -1;
-$no_lines_yet=1;
 
-while ($i <= 96)
-	{
-	$char_counter=0;
-	$time = '      ';
-	if ($h >= 4) 
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- STATISTICHE TEMPO\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
 		{
-		$hour++;
-		$h=0;
-		if ($hour < 10) {$hour = "0$hour";}
-		$time = "+$hour$ZZ+";
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
 		}
-	if ($h == 1) {$time = "   15 ";}
-	if ($h == 2) {$time = "   30 ";}
-	if ($h == 3) {$time = "   45 ";}
-	$Ghour_count = $hour_count[$i];
-	if ($Ghour_count < 1) 
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
 		{
-		if ( ($no_lines_yet) or ($i > $last_full_record) )
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
 			{
-			$do_nothing=1;
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
 			}
 		else
 			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
 			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
-			echo "|$time|";
-			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
 			echo "| $hour_count[$i] |\n";
 			}
+		
+		
+		$i++;
+		$h++;
 		}
-	else
-		{
-		$no_lines_yet=0;
-		$Xhour_count = ($Ghour_count * $hour_multiplier);
-		$Yhour_count = (99 - $Xhour_count);
 
-		$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
 
-		echo "|$time|";
-		$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
-		echo "*X";   $char_counter++;
-		$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
-			while ($char_counter <= 101) {echo " ";   $char_counter++;}
-		echo "| $hour_count[$i] |\n";
-		}
-	
-	
-	$i++;
-	$h++;
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
 	}
 
 
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
-
-
-
-
-
-
-
-
-
-
-$ENDtime = date("U");
-$RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds\n";
-}
-
-
 
 ?>
 
diff --git a/LANG_www/vicidial_it/AST_OUTBOUNDsummary_interval.php b/LANG_www/vicidial_it/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/LANG_www/vicidial_it/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/LANG_www/vicidial_it/AST_VDADstats.php b/LANG_www/vicidial_it/AST_VDADstats.php index ac06fcd5..ec07840c 100644 --- a/LANG_www/vicidial_it/AST_VDADstats.php +++ b/LANG_www/vicidial_it/AST_VDADstats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -17,17 +17,36 @@ # 81109-2341 - Added Productivity Rating # 90225-1140 - Changed to multi-campaign capability # 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; -if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} - elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} @@ -47,6 +66,10 @@ $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -54,16 +77,25 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; } ##### END SETTINGS LOOKUP ##### ########################################### +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} @@ -71,8 +103,7 @@ $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $auth=$row[0]; - - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -87,7 +118,16 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($end_date)) {$end_date = $NOW_DATE;} -$stmt="select campaign_id from vicidial_campaigns;"; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $campaigns_to_print = mysql_num_rows($rslt); @@ -95,10 +135,14 @@ $i=0; while ($i < $campaigns_to_print) { $row=mysql_fetch_row($rslt); - $groups[$i] =$row[0]; + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} $i++; } +$rollover_groups_count=0; $i=0; $group_string='|'; $group_ct = count($group); @@ -107,15 +151,41 @@ while($i < $group_ct) $group_string .= "$group[$i]|"; $group_SQL .= "'$group[$i]',"; $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + $i++; } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) - {$group_SQL = "";} + { + $group_SQL = ""; + $group_drop_SQL = ""; + } else { $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; $group_SQLand = "and campaign_id IN($group_SQL)"; $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; } $stmt="select vsc_id,vsc_name from vicidial_status_categories;"; @@ -131,6 +201,35 @@ while ($i < $statcats_to_print) $vsc_count[$i] = 0; $i++; } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + ?> @@ -144,9 +243,9 @@ while ($i < $statcats_to_print) --> -\n"; -echo "VICIDIAL: VDAD Stats\n"; +echo "Outbound Stats\n"; $short_header=1; @@ -158,6 +257,9 @@ echo "
\n"; echo "
Date:
"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "
to
\n"; echo "
Campagnas:
"; @@ -168,13 +270,35 @@ else {echo "\n";} $o=0; while ($campaigns_to_print > $o) -{ - if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} - else {echo "\n";} + { + if (eregi("$groups[$o]\|",$group_string)) {echo "\n";} + else {echo "\n";} $o++; -} + } echo "\n"; -echo "
Shift:
"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; echo "
- \ No newline at end of file + diff --git a/LANG_www/vicidial_it/AST_VICIDIAL_hopperlist.php b/LANG_www/vicidial_it/AST_VICIDIAL_hopperlist.php index ca5bf158..6260d97e 100644 --- a/LANG_www/vicidial_it/AST_VICIDIAL_hopperlist.php +++ b/LANG_www/vicidial_it/AST_VICIDIAL_hopperlist.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # @@ -10,6 +10,8 @@ # 70115-1614 - Added ALT field for vicidial_hopper alt_dial column # 71029-0852 - Added list_id to the output # 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY # require("dbconnect.php"); @@ -73,19 +75,19 @@ while ($i < $campaigns_to_print) --> -\n"; -echo "VICIDIAL: Coda Chiamate\n"; +echo "Coda Chiamate Report\n"; echo "\n"; #echo "\n"; #echo "\n"; echo "\n"; echo "\n"; @@ -96,74 +98,70 @@ echo "
\n\n";
 
 
 if (!$group)
-{
-echo "\n\n";
-echo "PER FAVORE SELEZIONA UNA CAMPAGNA E PREMI INVIA\n";
-}
-
-else
-{
-
-
-echo "VICIDIAL: Coda Contatti Da Chiamare In Tempo Reale                      $NOW_TIME\n";
-
-echo "\n";
-echo "---------- TOTALI\n";
-
-$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$row=mysql_fetch_row($rslt);
-
-$TOTALcalls =	sprintf("%10s", $row[0]);
-
-echo "Totale Contatti Nella Coda Chiamate In Questo Istante:       $TOTALcalls\n";
-
-
-##############################
-#########  LEAD STATS
-
-echo "\n";
-echo "---------- LEADS IN HOPPER\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-echo "|ORDER |PRIORITY| LEAD ID   | ID LISTA    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
-
-$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$users_to_print = mysql_num_rows($rslt);
-$i=0;
-while ($i < $users_to_print)
 	{
-	$row=mysql_fetch_row($rslt);
-
-	$FMT_i =		sprintf("%-4s", $i);
-	$lead_id =		sprintf("%-9s", $row[0]);
-	$phone_number =	sprintf("%-10s", $row[1]);
-	$state =		sprintf("%-5s", $row[2]);
-	$status =		sprintf("%-6s", $row[3]);
-	$count =		sprintf("%-5s", $row[4]);
-	$gmt =			sprintf("%-6s", $row[5]);
-	$hopper_id =	sprintf("%-6s", $row[6]);
-	$alt_dial =		sprintf("%-5s", $row[7]);
-	$list_id =		sprintf("%-10s", $row[8]);
-	$priority =		sprintf("%-6s", $row[9]);
-
-if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
-else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
-
-	$i++;
+	echo "\n\n";
+	echo "PER FAVORE SELEZIONA UNA CAMPAGNA E PREMI INVIA\n";
 	}
 
-echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+else
+	{
+	echo "Coda Contatti Da Chiamare In Tempo Reale                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALI\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Totale Contatti Nella Coda Chiamate In Questo Istante:       $TOTALcalls\n";
 
 
-}
+	##############################
+	#########  LEAD STATS
 
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORITY| LEAD ID   | ID LISTA    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
 
 
 ?>
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_it/AST_agent_days_detail.php b/LANG_www/vicidial_it/AST_agent_days_detail.php index 2d1321cb..1266cccd 100644 --- a/LANG_www/vicidial_it/AST_agent_days_detail.php +++ b/LANG_www/vicidial_it/AST_agent_days_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-2202 - First build # 90225-1051 - Added CSV download option # 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags # @@ -157,10 +158,10 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Giorni di stato\n"; + echo "Agent Giorni di stato Report\n"; echo ""; $short_header=1; @@ -208,14 +209,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Days Dettagliata: $user $NOW_TIME\n"; + echo "Agent Giorni di stato Report: $user $NOW_TIME\n"; echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- AGENT Dettagliatas -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Days Dettagliata: $user $NOW_TIME\n"; + $file_output .= "Agent Giorni di stato Report: $user $NOW_TIME\n"; $file_output .= "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n"; } diff --git a/LANG_www/vicidial_it/AST_agent_performance.php b/LANG_www/vicidial_it/AST_agent_performance.php index 578dc978..f24286e0 100644 --- a/LANG_www/vicidial_it/AST_agent_performance.php +++ b/LANG_www/vicidial_it/AST_agent_performance.php @@ -1,13 +1,14 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # # 60619-1711 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $campaigns_to_print) --> -\n"; echo "VICIDIAL: Agent Performance\n"; echo "\n"; diff --git a/LANG_www/vicidial_it/AST_agent_performance_detail.php b/LANG_www/vicidial_it/AST_agent_performance_detail.php index 03ce999b..ea8b18f9 100644 --- a/LANG_www/vicidial_it/AST_agent_performance_detail.php +++ b/LANG_www/vicidial_it/AST_agent_performance_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -16,9 +16,14 @@ # 81108-0716 - fixed user same-name bug # 81110-0056 - fixed pause code display bug # 90310-2039 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90523-0935 - Rewrite of seconds to minutes and hours conversion +# 90717-1500 - Changed to be multi-campaign, multi-user-group select +# 90908-1058 - Added DEAD time statistics # require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -111,6 +116,44 @@ while ($i < $user_groups_to_print) $user_groups[$i] =$row[0]; $i++; } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} ?> @@ -124,9 +167,9 @@ while ($i < $user_groups_to_print) --> -\n"; -echo "VICIDIAL: Agent Performance\n"; +echo "Agent Performance Dettagliata\n"; $short_header=1; @@ -135,39 +178,58 @@ echo "VICIDIAL: Agent Performance
"; echo "\n"; +echo "
Date:
"; echo "\n"; echo "\n"; -echo " to \n"; -echo "\n"; +echo "
Campagnas:
"; +echo "\n"; +echo "
Gruppi Utenti:
"; +echo "\n"; -echo "\n"; +echo "
Shift:
"; echo "\n"; +echo "

\n"; echo "\n"; -echo "           MODIFICA | REPORT \n"; +echo "
        "; + +echo "          \n"; +echo " REPORT \n"; +echo "\n"; +echo "
"; + echo "\n\n"; + echo "
\n";
 
 
@@ -205,7 +267,7 @@ $query_date_END = "$end_date $time_END";
 if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
 else {$ugSQL='';}
 
-echo "VICIDIAL: Agent Performance Dettagliata                        $NOW_TIME\n";
+echo "Agent Performance Dettagliata                        $NOW_TIME\n";
 
 echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENTS Dettagliatas -------------\n\n";
@@ -225,7 +287,7 @@ $usersARY[0]='';
 $user_namesARY[0]='';
 $k=0;
 
-$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000 $ugSQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $rows_to_print = mysql_num_rows($rslt);
@@ -243,6 +305,7 @@ while ($i < $rows_to_print)
 	$wait_sec[$i] =		$row[5];
 	$dispo_sec[$i] =	$row[6];
 	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
 	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
 		{
 		$statusesTXT = sprintf("%8s", $status[$i]);
@@ -264,9 +327,9 @@ while ($i < $rows_to_print)
 	}
 
 echo "CALL STATS BREAKDOWN:\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "| USER NAME       | ID       | CALLS  | TIME    | PAUSE  | PAUSAVG| WAIT   | WAITAVG| TALK   | TALKAVG| DISPO  | DISPAVG|$statusesHTML\n";
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -281,6 +344,7 @@ while ($m < $k)
 	$Spause_sec=0;
 	$Swait_sec=0;
 	$Sdispo_sec=0;
+	$Sdead_sec=0;
 	$SstatusesHTML='';
 
 	### BEGIN loop through each status ###
@@ -300,6 +364,7 @@ while ($m < $k)
 				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
 				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
 				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
 				$SstatusTXT = sprintf("%8s", $calls[$i]);
 				$SstatusesHTML .= " $SstatusTXT |";
 				$status_found++;
@@ -321,6 +386,7 @@ while ($m < $k)
 	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
 	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
 	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
 	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
 	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
 		else {$Stalk_avg=0;}
@@ -330,6 +396,8 @@ while ($m < $k)
 		else {$Swait_avg=0;}
 	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
 		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
 
 	$RAWuser = $Suser;
 	$RAWcalls = $Scalls;
@@ -337,112 +405,45 @@ while ($m < $k)
 
 	if ($non_latin < 1)
 		{
-		 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
-			while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
-		 $Suser =		sprintf("%-8s", $Suser);
-			while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
 		}
 	else
 		{	
-			$Sfull_name=	sprintf("%-45s", $Sfull_name); 
-		 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
-			$Suser =	sprintf("%-24s", $Suser);
-		 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
 
-	$USERtime_M = ($Stime / 60);
-	$USERtime_M_int = round($USERtime_M, 2);
-	$USERtime_M_int = intval("$USERtime_M_int");
-	$USERtime_S = ($USERtime_M - $USERtime_M_int);
-	$USERtime_S = ($USERtime_S * 60);
-	$USERtime_S = round($USERtime_S, 0);
-	if ($USERtime_S < 10) {$USERtime_S = "0$USERtime_S";}
-	$USERtime_MS = "$USERtime_M_int:$USERtime_S";
-	$pfUSERtime_MS =		sprintf("%7s", $USERtime_MS);
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
 
-	$USERtotTALK_M = ($Stalk_sec / 60);
-	$USERtotTALK_M_int = round($USERtotTALK_M, 2);
-	$USERtotTALK_M_int = intval("$USERtotTALK_M_int");
-	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
-	$USERtotTALK_S = ($USERtotTALK_S * 60);
-	$USERtotTALK_S = round($USERtotTALK_S, 0);
-	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
-	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
-	$pfUSERtotTALK_MS =		sprintf("%6s", $USERtotTALK_MS);
-
-	$USERavgTALK_M = ($Stalk_avg / 60);
-	$USERavgTALK_M_int = round($USERavgTALK_M, 2);
-	$USERavgTALK_M_int = intval("$USERavgTALK_M_int");
-	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
-	$USERavgTALK_S = ($USERavgTALK_S * 60);
-	$USERavgTALK_S = round($USERavgTALK_S, 0);
-	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
-	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
-	$pfUSERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
-
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
 	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
 
-	$USERavgPAUSE_M = ($Spause_avg / 60);
-	$USERavgPAUSE_M_int = round($USERavgPAUSE_M, 2);
-	$USERavgPAUSE_M_int = intval("$USERavgPAUSE_M_int");
-	$USERavgPAUSE_S = ($USERavgPAUSE_M - $USERavgPAUSE_M_int);
-	$USERavgPAUSE_S = ($USERavgPAUSE_S * 60);
-	$USERavgPAUSE_S = round($USERavgPAUSE_S, 0);
-	if ($USERavgPAUSE_S < 10) {$USERavgPAUSE_S = "0$USERavgPAUSE_S";}
-	$USERavgPAUSE_MS = "$USERavgPAUSE_M_int:$USERavgPAUSE_S";
-	$pfUSERavgPAUSE_MS =		sprintf("%6s", $USERavgPAUSE_MS);
-
-	$USERtotWAIT_M = ($Swait_sec / 60);
-	$USERtotWAIT_M_int = round($USERtotWAIT_M, 2);
-	$USERtotWAIT_M_int = intval("$USERtotWAIT_M_int");
-	$USERtotWAIT_S = ($USERtotWAIT_M - $USERtotWAIT_M_int);
-	$USERtotWAIT_S = ($USERtotWAIT_S * 60);
-	$USERtotWAIT_S = round($USERtotWAIT_S, 0);
-	if ($USERtotWAIT_S < 10) {$USERtotWAIT_S = "0$USERtotWAIT_S";}
-	$USERtotWAIT_MS = "$USERtotWAIT_M_int:$USERtotWAIT_S";
-	$pfUSERtotWAIT_MS =		sprintf("%6s", $USERtotWAIT_MS);
-
-	$USERavgWAIT_M = ($Swait_avg / 60);
-	$USERavgWAIT_M_int = round($USERavgWAIT_M, 2);
-	$USERavgWAIT_M_int = intval("$USERavgWAIT_M_int");
-	$USERavgWAIT_S = ($USERavgWAIT_M - $USERavgWAIT_M_int);
-	$USERavgWAIT_S = ($USERavgWAIT_S * 60);
-	$USERavgWAIT_S = round($USERavgWAIT_S, 0);
-	if ($USERavgWAIT_S < 10) {$USERavgWAIT_S = "0$USERavgWAIT_S";}
-	$USERavgWAIT_MS = "$USERavgWAIT_M_int:$USERavgWAIT_S";
-	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
-	
-	$USERtotDISPO_M = ($Sdispo_sec / 60);
-	$USERtotDISPO_M_int = round($USERtotDISPO_M, 2);
-	$USERtotDISPO_M_int = intval("$USERtotDISPO_M_int");
-	$USERtotDISPO_S = ($USERtotDISPO_M - $USERtotDISPO_M_int);
-	$USERtotDISPO_S = ($USERtotDISPO_S * 60);
-	$USERtotDISPO_S = round($USERtotDISPO_S, 0);
-	if ($USERtotDISPO_S < 10) {$USERtotDISPO_S = "0$USERtotDISPO_S";}
-	$USERtotDISPO_MS = "$USERtotDISPO_M_int:$USERtotDISPO_S";
-	$pfUSERtotDISPO_MS =		sprintf("%6s", $USERtotDISPO_MS);
-
-	$USERavgDISPO_M = ($Sdispo_avg / 60);
-	$USERavgDISPO_M_int = round($USERavgDISPO_M, 2);
-	$USERavgDISPO_M_int = intval("$USERavgDISPO_M_int");
-	$USERavgDISPO_S = ($USERavgDISPO_M - $USERavgDISPO_M_int);
-	$USERavgDISPO_S = ($USERavgDISPO_S * 60);
-	$USERavgDISPO_S = round($USERavgDISPO_S, 0);
-	if ($USERavgDISPO_S < 10) {$USERavgDISPO_S = "0$USERavgDISPO_S";}
-	$USERavgDISPO_MS = "$USERavgDISPO_M_int:$USERavgDISPO_S";
-	$pfUSERavgDISPO_MS =		sprintf("%6s", $USERavgDISPO_MS);
-
-	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS |$SstatusesHTML\n";
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
 
 	$TOPsorted_output[$m] = $Toutput;
 
@@ -517,120 +518,60 @@ while ($n < $j)
 	}
 ### END loop through each status ###
 
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTcalls =	sprintf("%7s", $TOTcalls);
-	$TOT_AGENTS = sprintf("%-4s", $m);
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
 
-	$TOTtime_M = ($TOTtime / 60);
-	$TOTtime_M_int = round($TOTtime_M, 2);
-	$TOTtime_M_int = intval("$TOTtime_M_int");
-	$TOTtime_S = ($TOTtime_M - $TOTtime_M_int);
-	$TOTtime_S = ($TOTtime_S * 60);
-	$TOTtime_S = round($TOTtime_S, 0);
-	if ($TOTtime_S < 10) {$TOTtime_S = "0$TOTtime_S";}
-	$TOTtime_MS = "$TOTtime_M_int:$TOTtime_S";
-	$TOTtime_MS =		sprintf("%8s", $TOTtime_MS);
-		while(strlen($TOTtime_MS)>8) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
 
-	$TOTtotTALK_M = ($TOTtotTALK / 60);
-	$TOTtotTALK_M_int = round($TOTtotTALK_M, 2);
-	$TOTtotTALK_M_int = intval("$TOTtotTALK_M_int");
-	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
-	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
-	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
-	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
-	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
-	$TOTtotTALK_MS =		sprintf("%8s", $TOTtotTALK_MS);
-		while(strlen($TOTtotTALK_MS)>8) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
 
-	if ($TOTtotDISPO < 1) {$TOTtotDISPO_M = '0';}
-	else {$TOTtotDISPO_M = ($TOTtotDISPO / 60);}
-	$TOTtotDISPO_M_int = round($TOTtotDISPO_M, 2);
-	$TOTtotDISPO_M_int = intval("$TOTtotDISPO_M_int");
-	$TOTtotDISPO_S = ($TOTtotDISPO_M - $TOTtotDISPO_M_int);
-	$TOTtotDISPO_S = ($TOTtotDISPO_S * 60);
-	$TOTtotDISPO_S = round($TOTtotDISPO_S, 0);
-	if ($TOTtotDISPO_S < 10) {$TOTtotDISPO_S = "0$TOTtotDISPO_S";}
-	$TOTtotDISPO_MS = "$TOTtotDISPO_M_int:$TOTtotDISPO_S";
-	$TOTtotDISPO_MS =		sprintf("%8s", $TOTtotDISPO_MS);
-		while(strlen($TOTtotDISPO_MS)>8) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTtotPAUSE_M = '0';}
-	else {$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);}
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTtotWAIT_M = '0';}
-	else {$TOTtotWAIT_M = ($TOTtotWAIT / 60);}
-	$TOTtotWAIT_M_int = round($TOTtotWAIT_M, 2);
-	$TOTtotWAIT_M_int = intval("$TOTtotWAIT_M_int");
-	$TOTtotWAIT_S = ($TOTtotWAIT_M - $TOTtotWAIT_M_int);
-	$TOTtotWAIT_S = ($TOTtotWAIT_S * 60);
-	$TOTtotWAIT_S = round($TOTtotWAIT_S, 0);
-	if ($TOTtotWAIT_S < 10) {$TOTtotWAIT_S = "0$TOTtotWAIT_S";}
-	$TOTtotWAIT_MS = "$TOTtotWAIT_M_int:$TOTtotWAIT_S";
-	$TOTtotWAIT_MS =		sprintf("%8s", $TOTtotWAIT_MS);
-		while(strlen($TOTtotWAIT_MS)>8) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
-
-	if ($TOTtotTALK < 1) {$TOTavgTALK_M = '0';}
-	else {$TOTavgTALK_M = ( ($TOTtotTALK / $TOTcalls) / 60);}
-	$TOTavgTALK_M_int = round($TOTavgTALK_M, 2);
-	$TOTavgTALK_M_int = intval("$TOTavgTALK_M_int");
-	$TOTavgTALK_S = ($TOTavgTALK_M - $TOTavgTALK_M_int);
-	$TOTavgTALK_S = ($TOTavgTALK_S * 60);
-	$TOTavgTALK_S = round($TOTavgTALK_S, 0);
-	if ($TOTavgTALK_S < 10) {$TOTavgTALK_S = "0$TOTavgTALK_S";}
-	$TOTavgTALK_MS = "$TOTavgTALK_M_int:$TOTavgTALK_S";
-	$TOTavgTALK_MS =		sprintf("%6s", $TOTavgTALK_MS);
-		while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
-
-	if ($TOTtotDISPO < 1) {$TOTavgDISPO_M = '0';}
-	else {$TOTavgDISPO_M = ( ($TOTtotDISPO / $TOTcalls) / 60);}
-	$TOTavgDISPO_M_int = round($TOTavgDISPO_M, 2);
-	$TOTavgDISPO_M_int = intval("$TOTavgDISPO_M_int");
-	$TOTavgDISPO_S = ($TOTavgDISPO_M - $TOTavgDISPO_M_int);
-	$TOTavgDISPO_S = ($TOTavgDISPO_S * 60);
-	$TOTavgDISPO_S = round($TOTavgDISPO_S, 0);
-	if ($TOTavgDISPO_S < 10) {$TOTavgDISPO_S = "0$TOTavgDISPO_S";}
-	$TOTavgDISPO_MS = "$TOTavgDISPO_M_int:$TOTavgDISPO_S";
-	$TOTavgDISPO_MS =		sprintf("%6s", $TOTavgDISPO_MS);
-		while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
-
-	if ($TOTtotPAUSE < 1) {$TOTavgPAUSE_M = '0';}
-	else {$TOTavgPAUSE_M = ( ($TOTtotPAUSE / $TOTcalls) / 60);}
-	$TOTavgPAUSE_M_int = round($TOTavgPAUSE_M, 2);
-	$TOTavgPAUSE_M_int = intval("$TOTavgPAUSE_M_int");
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_M - $TOTavgPAUSE_M_int);
-	$TOTavgPAUSE_S = ($TOTavgPAUSE_S * 60);
-	$TOTavgPAUSE_S = round($TOTavgPAUSE_S, 0);
-	if ($TOTavgPAUSE_S < 10) {$TOTavgPAUSE_S = "0$TOTavgPAUSE_S";}
-	$TOTavgPAUSE_MS = "$TOTavgPAUSE_M_int:$TOTavgPAUSE_S";
-	$TOTavgPAUSE_MS =		sprintf("%6s", $TOTavgPAUSE_MS);
-		while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
-
-	if ($TOTtotWAIT < 1) {$TOTavgWAIT_M = '0';}
-	else {$TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60);}
-	$TOTavgWAIT_M_int = round($TOTavgWAIT_M, 2);
-	$TOTavgWAIT_M_int = intval("$TOTavgWAIT_M_int");
-	$TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int);
-	$TOTavgWAIT_S = ($TOTavgWAIT_S * 60);
-	$TOTavgWAIT_S = round($TOTavgWAIT_S, 0);
-	if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";}
-	$TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S";
-	$TOTavgWAIT_MS =		sprintf("%6s", $TOTavgWAIT_MS);
-		while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
 
 
-echo "+-----------------+----------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
-echo "|  TOTALI        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+---------+--------+--------+--------+--------+--------+--------+--------+--------+$statusesHEAD\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALI        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
 
 echo "\n\n";
 
@@ -658,7 +599,7 @@ $PCusers='-';
 $PCusersARY=$MT;
 $PCuser_namesARY=$MT;
 $k=0;
-$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and campaign_id='" . mysql_real_escape_string($group) . "' and pause_sec<36000 $ugSQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + dispo_sec) from vicidial_users,vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and vicidial_users.user=vicidial_agent_log.user and pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
 $rslt=mysql_query($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $subs_to_print = mysql_num_rows($rslt);
@@ -695,9 +636,9 @@ while ($i < $subs_to_print)
 	}
 
 echo "PAUSE CODE BREAKDOWN:\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
-echo "| USER NAME       | ID       | TOTAL  |NONPAUSE| PAUSE  |  |$sub_statusesHTML\n";
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 
 ### BEGIN loop through each user ###
@@ -738,15 +679,8 @@ while ($m < $k)
 				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
 				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
 
-				$USERcodePAUSE_M = ($PCpause_sec[$i] / 60);
-				$USERcodePAUSE_M_int = round($USERcodePAUSE_M, 2);
-				$USERcodePAUSE_M_int = intval("$USERcodePAUSE_M_int");
-				$USERcodePAUSE_S = ($USERcodePAUSE_M - $USERcodePAUSE_M_int);
-				$USERcodePAUSE_S = ($USERcodePAUSE_S * 60);
-				$USERcodePAUSE_S = round($USERcodePAUSE_S, 0);
-				if ($USERcodePAUSE_S < 10) {$USERcodePAUSE_S = "0$USERcodePAUSE_S";}
-				$USERcodePAUSE_MS = "$USERcodePAUSE_M_int:$USERcodePAUSE_S";
-				$pfUSERcodePAUSE_MS =		sprintf("%6s", $USERcodePAUSE_MS);
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
 
 				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
 				$SstatusesHTML .= " $SstatusTXT |";
@@ -775,7 +709,6 @@ while ($m < $k)
 		{
 		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
 		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
-
 		$Suser =	sprintf("%-24s", $Suser);
 		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
 		}
@@ -783,44 +716,19 @@ while ($m < $k)
 	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
 	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
 
-	$USERtotPAUSE_M = ($Spause_sec / 60);
-	$USERtotPAUSE_M_int = round($USERtotPAUSE_M, 2);
-	$USERtotPAUSE_M_int = intval("$USERtotPAUSE_M_int");
-	$USERtotPAUSE_S = ($USERtotPAUSE_M - $USERtotPAUSE_M_int);
-	$USERtotPAUSE_S = ($USERtotPAUSE_S * 60);
-	$USERtotPAUSE_S = round($USERtotPAUSE_S, 0);
-	if ($USERtotPAUSE_S < 10) {$USERtotPAUSE_S = "0$USERtotPAUSE_S";}
-	$USERtotPAUSE_MS = "$USERtotPAUSE_M_int:$USERtotPAUSE_S";
-	$pfUSERtotPAUSE_MS =		sprintf("%6s", $USERtotPAUSE_MS);
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
 
-	$USERtotNONPAUSE_M = ($Snon_pause_sec / 60);
-	$USERtotNONPAUSE_M_int = round($USERtotNONPAUSE_M, 2);
-	$USERtotNONPAUSE_M_int = intval("$USERtotNONPAUSE_M_int");
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_M - $USERtotNONPAUSE_M_int);
-	$USERtotNONPAUSE_S = ($USERtotNONPAUSE_S * 60);
-	$USERtotNONPAUSE_S = round($USERtotNONPAUSE_S, 0);
-	if ($USERtotNONPAUSE_S < 10) {$USERtotNONPAUSE_S = "0$USERtotNONPAUSE_S";}
-	$USERtotNONPAUSE_MS = "$USERtotNONPAUSE_M_int:$USERtotNONPAUSE_S";
-	$pfUSERtotNONPAUSE_MS =		sprintf("%6s", $USERtotNONPAUSE_MS);
-
-	$USERtotTOTAL_M = ($Stotal_sec / 60);
-	$USERtotTOTAL_M_int = round($USERtotTOTAL_M, 2);
-	$USERtotTOTAL_M_int = intval("$USERtotTOTAL_M_int");
-	$USERtotTOTAL_S = ($USERtotTOTAL_M - $USERtotTOTAL_M_int);
-	$USERtotTOTAL_S = ($USERtotTOTAL_S * 60);
-	$USERtotTOTAL_S = round($USERtotTOTAL_S, 0);
-	if ($USERtotTOTAL_S < 10) {$USERtotTOTAL_S = "0$USERtotTOTAL_S";}
-	$USERtotTOTAL_MS = "$USERtotTOTAL_M_int:$USERtotTOTAL_S";
-	$pfUSERtotTOTAL_MS =		sprintf("%6s", $USERtotTOTAL_MS);
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
 
 	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
 
 	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
 
-#	if (!ereg("ID|TIME|CALLS",$stage))
-#		{
-		echo "$BOTTOMoutput";
-#		}
+	echo "$BOTTOMoutput";
 
 	$m++;
 	}
@@ -873,15 +781,8 @@ while ($n < $j)
 		{
 		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
 
-		$USERsumstatPAUSE_M = ($Scalls / 60);
-		$USERsumstatPAUSE_M_int = round($USERsumstatPAUSE_M, 2);
-		$USERsumstatPAUSE_M_int = intval("$USERsumstatPAUSE_M_int");
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_M - $USERsumstatPAUSE_M_int);
-		$USERsumstatPAUSE_S = ($USERsumstatPAUSE_S * 60);
-		$USERsumstatPAUSE_S = round($USERsumstatPAUSE_S, 0);
-		if ($USERsumstatPAUSE_S < 10) {$USERsumstatPAUSE_S = "0$USERsumstatPAUSE_S";}
-		$USERsumstatPAUSE_MS = "$USERsumstatPAUSE_M_int:$USERsumstatPAUSE_S";
-		$pfUSERsumstatPAUSE_MS =		sprintf("%6s", $USERsumstatPAUSE_MS);
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
 
 		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
 		$SUMstatusesHTML .= " $SUMstatusTXT |";
@@ -892,44 +793,22 @@ while ($n < $j)
 
 	$TOT_AGENTS = sprintf("%-4s", $m);
 
-	$TOTtotPAUSE_M = ($TOTtotPAUSE / 60);
-	$TOTtotPAUSE_M_int = round($TOTtotPAUSE_M, 2);
-	$TOTtotPAUSE_M_int = intval("$TOTtotPAUSE_M_int");
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_M - $TOTtotPAUSE_M_int);
-	$TOTtotPAUSE_S = ($TOTtotPAUSE_S * 60);
-	$TOTtotPAUSE_S = round($TOTtotPAUSE_S, 0);
-	if ($TOTtotPAUSE_S < 10) {$TOTtotPAUSE_S = "0$TOTtotPAUSE_S";}
-	$TOTtotPAUSE_MS = "$TOTtotPAUSE_M_int:$TOTtotPAUSE_S";
-	$TOTtotPAUSE_MS =		sprintf("%8s", $TOTtotPAUSE_MS);
-		while(strlen($TOTtotPAUSE_MS)>8) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
 
-	$TOTtotNONPAUSE_M = ($TOTtotNONPAUSE / 60);
-	$TOTtotNONPAUSE_M_int = round($TOTtotNONPAUSE_M, 2);
-	$TOTtotNONPAUSE_M_int = intval("$TOTtotNONPAUSE_M_int");
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_M - $TOTtotNONPAUSE_M_int);
-	$TOTtotNONPAUSE_S = ($TOTtotNONPAUSE_S * 60);
-	$TOTtotNONPAUSE_S = round($TOTtotNONPAUSE_S, 0);
-	if ($TOTtotNONPAUSE_S < 10) {$TOTtotNONPAUSE_S = "0$TOTtotNONPAUSE_S";}
-	$TOTtotNONPAUSE_MS = "$TOTtotNONPAUSE_M_int:$TOTtotNONPAUSE_S";
-	$TOTtotNONPAUSE_MS =		sprintf("%8s", $TOTtotNONPAUSE_MS);
-		while(strlen($TOTtotNONPAUSE_MS)>8) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
 
-	$TOTtotTOTAL_M = ($TOTtotTOTAL / 60);
-	$TOTtotTOTAL_M_int = round($TOTtotTOTAL_M, 2);
-	$TOTtotTOTAL_M_int = intval("$TOTtotTOTAL_M_int");
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_M - $TOTtotTOTAL_M_int);
-	$TOTtotTOTAL_S = ($TOTtotTOTAL_S * 60);
-	$TOTtotTOTAL_S = round($TOTtotTOTAL_S, 0);
-	if ($TOTtotTOTAL_S < 10) {$TOTtotTOTAL_S = "0$TOTtotTOTAL_S";}
-	$TOTtotTOTAL_MS = "$TOTtotTOTAL_M_int:$TOTtotTOTAL_S";
-	$TOTtotTOTAL_MS =		sprintf("%8s", $TOTtotTOTAL_MS);
-		while(strlen($TOTtotTOTAL_MS)>8) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
 
 
-
-echo "+-----------------+----------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
 echo "|  TOTALI        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
-echo "+----------------------------+--------+--------+--------+  +$sub_statusesHEAD\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
 
 echo "\n\n";
 
@@ -940,4 +819,4 @@ echo "\n\n";
 
 
- \ No newline at end of file + diff --git a/LANG_www/vicidial_it/AST_agent_status_detail.php b/LANG_www/vicidial_it/AST_agent_status_detail.php index 89701bb2..2c8b8083 100644 --- a/LANG_www/vicidial_it/AST_agent_status_detail.php +++ b/LANG_www/vicidial_it/AST_agent_status_detail.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 90206-1554 - First build # 90225-2252 - Added CSV download option # 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags # @@ -202,9 +203,9 @@ if ($file_download < 1) --> - \n"; - echo "VICIDIAL: Agent Giorni di stato\n"; + echo "Agent Status Dettagliata Report\n"; echo ""; $short_header=1; @@ -252,14 +253,14 @@ else if ($file_download < 1) { - echo "VICIDIAL: Agent Status Dettagliata $NOW_TIME\n"; + echo "Agent Status Dettagliata Report $NOW_TIME\n"; echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- AGENT Dettagliatas -------------\n\n"; } else { - $file_output .= "VICIDIAL: Agent Status Dettagliata $NOW_TIME\n"; + $file_output .= "Agent Status Dettagliata Report $NOW_TIME\n"; $file_output .= "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n"; } @@ -284,7 +285,7 @@ else { $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) and (strlen($row[3]) > 0) ) + if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3]))) { $calls[$i] = $row[0]; $full_name[$i] = $row[1]; diff --git a/LANG_www/vicidial_it/AST_agent_time_detail.php b/LANG_www/vicidial_it/AST_agent_time_detail.php new file mode 100644 index 00000000..a98137e5 --- /dev/null +++ b/LANG_www/vicidial_it/AST_agent_time_detail.php @@ -0,0 +1,867 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 90522-0723 - First build +# 90908-1103 - Added DEAD time stats +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($stage)<2) {$stage='NAME';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + $TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL); + $TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/LANG_www/vicidial_it/AST_agent_time_sheet.php b/LANG_www/vicidial_it/AST_agent_time_sheet.php
index 72a95372..0d323d5c 100644
--- a/LANG_www/vicidial_it/AST_agent_time_sheet.php
+++ b/LANG_www/vicidial_it/AST_agent_time_sheet.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -9,9 +9,28 @@
 #            - Added required user/pass to gain access to this page
 # 80624-0132 - Added vicidial_timeclock entries
 # 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
 #
 
 require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
 
 $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
 $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
@@ -32,11 +51,12 @@ $user=$agent;
 $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
 $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
 
-	$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
-	if ($DB) {echo "|$stmt|\n";}
-	$rslt=mysql_query($stmt, $link);
-	$row=mysql_fetch_row($rslt);
-	$auth=$row[0];
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
 
   if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
 	{
@@ -64,9 +84,9 @@ if (!isset($query_date)) {$query_date = $NOW_DATE;}
 -->
  
 
-\n";
-echo "VICIDIAL: Agent Time Sheet";
+echo "<TITLE>Agent Time Sheet";
 
 
 ##### BEGIN Set variables to make header show properly #####
@@ -122,7 +142,7 @@ if ($DB) {echo "$stmt\n";}
 $row=mysql_fetch_row($rslt);
 $full_name = $row[0];
 
-echo "VICIDIAL: AgentTime Sheet                            $NOW_TIME\n";
+echo "AgentTime Sheet                            $NOW_TIME\n";
 
 echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
 echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
@@ -136,120 +156,25 @@ if ($calls_summary)
 
 	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
 
-		$TOTAL_TIME_H = ($TOTAL_TIME / 3600);
-		$TOTAL_TIME_H = round($TOTAL_TIME_H, 2);
-		$TOTAL_TIME_H_int = intval("$TOTAL_TIME_H");
-		$TOTAL_TIME_M = ($TOTAL_TIME_H - $TOTAL_TIME_H_int);
-		$TOTAL_TIME_M = ($TOTAL_TIME_M * 60);
-		$TOTAL_TIME_M = round($TOTAL_TIME_M, 2);
-		$TOTAL_TIME_M_int = intval("$TOTAL_TIME_M");
-		$TOTAL_TIME_S = ($TOTAL_TIME_M - $TOTAL_TIME_M_int);
-		$TOTAL_TIME_S = ($TOTAL_TIME_S * 60);
-		$TOTAL_TIME_S = round($TOTAL_TIME_S, 0);
-		if ($TOTAL_TIME_S < 10) {$TOTAL_TIME_S = "0$TOTAL_TIME_S";}
-		if ($TOTAL_TIME_M_int < 10) {$TOTAL_TIME_M_int = "0$TOTAL_TIME_M_int";}
-		$TOTAL_TIME_HMS = "$TOTAL_TIME_H_int:$TOTAL_TIME_M_int:$TOTAL_TIME_S";
-		$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
 
-		$TALK_TIME_H = ($row[1] / 3600);
-		$TALK_TIME_H = round($TALK_TIME_H, 2);
-		$TALK_TIME_H_int = intval("$TALK_TIME_H");
-		$TALK_TIME_M = ($TALK_TIME_H - $TALK_TIME_H_int);
-		$TALK_TIME_M = ($TALK_TIME_M * 60);
-		$TALK_TIME_M = round($TALK_TIME_M, 2);
-		$TALK_TIME_M_int = intval("$TALK_TIME_M");
-		$TALK_TIME_S = ($TALK_TIME_M - $TALK_TIME_M_int);
-		$TALK_TIME_S = ($TALK_TIME_S * 60);
-		$TALK_TIME_S = round($TALK_TIME_S, 0);
-		if ($TALK_TIME_S < 10) {$TALK_TIME_S = "0$TALK_TIME_S";}
-		if ($TALK_TIME_M_int < 10) {$TALK_TIME_M_int = "0$TALK_TIME_M_int";}
-		$TALK_TIME_HMS = "$TALK_TIME_H_int:$TALK_TIME_M_int:$TALK_TIME_S";
-		$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
-
-		$PAUSE_TIME_H = ($row[3] / 3600);
-		$PAUSE_TIME_H = round($PAUSE_TIME_H, 2);
-		$PAUSE_TIME_H_int = intval("$PAUSE_TIME_H");
-		$PAUSE_TIME_M = ($PAUSE_TIME_H - $PAUSE_TIME_H_int);
-		$PAUSE_TIME_M = ($PAUSE_TIME_M * 60);
-		$PAUSE_TIME_M = round($PAUSE_TIME_M, 2);
-		$PAUSE_TIME_M_int = intval("$PAUSE_TIME_M");
-		$PAUSE_TIME_S = ($PAUSE_TIME_M - $PAUSE_TIME_M_int);
-		$PAUSE_TIME_S = ($PAUSE_TIME_S * 60);
-		$PAUSE_TIME_S = round($PAUSE_TIME_S, 0);
-		if ($PAUSE_TIME_S < 10) {$PAUSE_TIME_S = "0$PAUSE_TIME_S";}
-		if ($PAUSE_TIME_M_int < 10) {$PAUSE_TIME_M_int = "0$PAUSE_TIME_M_int";}
-		$PAUSE_TIME_HMS = "$PAUSE_TIME_H_int:$PAUSE_TIME_M_int:$PAUSE_TIME_S";
-		$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
-
-		$WAIT_TIME_H = ($row[5] / 3600);
-		$WAIT_TIME_H = round($WAIT_TIME_H, 2);
-		$WAIT_TIME_H_int = intval("$WAIT_TIME_H");
-		$WAIT_TIME_M = ($WAIT_TIME_H - $WAIT_TIME_H_int);
-		$WAIT_TIME_M = ($WAIT_TIME_M * 60);
-		$WAIT_TIME_M = round($WAIT_TIME_M, 2);
-		$WAIT_TIME_M_int = intval("$WAIT_TIME_M");
-		$WAIT_TIME_S = ($WAIT_TIME_M - $WAIT_TIME_M_int);
-		$WAIT_TIME_S = ($WAIT_TIME_S * 60);
-		$WAIT_TIME_S = round($WAIT_TIME_S, 0);
-		if ($WAIT_TIME_S < 10) {$WAIT_TIME_S = "0$WAIT_TIME_S";}
-		if ($WAIT_TIME_M_int < 10) {$WAIT_TIME_M_int = "0$WAIT_TIME_M_int";}
-		$WAIT_TIME_HMS = "$WAIT_TIME_H_int:$WAIT_TIME_M_int:$WAIT_TIME_S";
-		$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
-
-		$WRAPUP_TIME_H = ($row[7] / 3600);
-		$WRAPUP_TIME_H = round($WRAPUP_TIME_H, 2);
-		$WRAPUP_TIME_H_int = intval("$WRAPUP_TIME_H");
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_H - $WRAPUP_TIME_H_int);
-		$WRAPUP_TIME_M = ($WRAPUP_TIME_M * 60);
-		$WRAPUP_TIME_M = round($WRAPUP_TIME_M, 2);
-		$WRAPUP_TIME_M_int = intval("$WRAPUP_TIME_M");
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_M - $WRAPUP_TIME_M_int);
-		$WRAPUP_TIME_S = ($WRAPUP_TIME_S * 60);
-		$WRAPUP_TIME_S = round($WRAPUP_TIME_S, 0);
-		if ($WRAPUP_TIME_S < 10) {$WRAPUP_TIME_S = "0$WRAPUP_TIME_S";}
-		if ($WRAPUP_TIME_M_int < 10) {$WRAPUP_TIME_M_int = "0$WRAPUP_TIME_M_int";}
-		$WRAPUP_TIME_HMS = "$WRAPUP_TIME_H_int:$WRAPUP_TIME_M_int:$WRAPUP_TIME_S";
-		$pfWRAPUP_TIME_HMS =		sprintf("%8s", $WRAPUP_TIME_HMS);
-
-		$TALK_AVG_M = ($row[2] / 60);
-		$TALK_AVG_M = round($TALK_AVG_M, 2);
-		$TALK_AVG_M_int = intval("$TALK_AVG_M");
-		$TALK_AVG_S = ($TALK_AVG_M - $TALK_AVG_M_int);
-		$TALK_AVG_S = ($TALK_AVG_S * 60);
-		$TALK_AVG_S = round($TALK_AVG_S, 0);
-		if ($TALK_AVG_S < 10) {$TALK_AVG_S = "0$TALK_AVG_S";}
-		$TALK_AVG_MS = "$TALK_AVG_M_int:$TALK_AVG_S";
-		$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
-
-		$PAUSE_AVG_M = ($row[4] / 60);
-		$PAUSE_AVG_M = round($PAUSE_AVG_M, 2);
-		$PAUSE_AVG_M_int = intval("$PAUSE_AVG_M");
-		$PAUSE_AVG_S = ($PAUSE_AVG_M - $PAUSE_AVG_M_int);
-		$PAUSE_AVG_S = ($PAUSE_AVG_S * 60);
-		$PAUSE_AVG_S = round($PAUSE_AVG_S, 0);
-		if ($PAUSE_AVG_S < 10) {$PAUSE_AVG_S = "0$PAUSE_AVG_S";}
-		$PAUSE_AVG_MS = "$PAUSE_AVG_M_int:$PAUSE_AVG_S";
-		$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
-
-		$WAIT_AVG_M = ($row[6] / 60);
-		$WAIT_AVG_M = round($WAIT_AVG_M, 2);
-		$WAIT_AVG_M_int = intval("$WAIT_AVG_M");
-		$WAIT_AVG_S = ($WAIT_AVG_M - $WAIT_AVG_M_int);
-		$WAIT_AVG_S = ($WAIT_AVG_S * 60);
-		$WAIT_AVG_S = round($WAIT_AVG_S, 0);
-		if ($WAIT_AVG_S < 10) {$WAIT_AVG_S = "0$WAIT_AVG_S";}
-		$WAIT_AVG_MS = "$WAIT_AVG_M_int:$WAIT_AVG_S";
-		$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
-
-		$WRAPUP_AVG_M = ($row[8] / 60);
-		$WRAPUP_AVG_M = round($WRAPUP_AVG_M, 2);
-		$WRAPUP_AVG_M_int = intval("$WRAPUP_AVG_M");
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_M - $WRAPUP_AVG_M_int);
-		$WRAPUP_AVG_S = ($WRAPUP_AVG_S * 60);
-		$WRAPUP_AVG_S = round($WRAPUP_AVG_S, 0);
-		if ($WRAPUP_AVG_S < 10) {$WRAPUP_AVG_S = "0$WRAPUP_AVG_S";}
-		$WRAPUP_AVG_MS = "$WRAPUP_AVG_M_int:$WRAPUP_AVG_S";
-		$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
 
 	echo "TOTALE CHIAMATE TAKEN: $row[0]\n";
 	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
@@ -284,23 +209,11 @@ echo "LAST LOG ACTIVITY:    $row[0]\n";
 $end = $row[1];
 
 $login_time = ($end - $start);
-	$LOGIN_TIME_H = ($login_time / 3600);
-	$LOGIN_TIME_H = round($LOGIN_TIME_H, 2);
-	$LOGIN_TIME_H_int = intval("$LOGIN_TIME_H");
-	$LOGIN_TIME_M = ($LOGIN_TIME_H - $LOGIN_TIME_H_int);
-	$LOGIN_TIME_M = ($LOGIN_TIME_M * 60);
-	$LOGIN_TIME_M = round($LOGIN_TIME_M, 2);
-	$LOGIN_TIME_M_int = intval("$LOGIN_TIME_M");
-	$LOGIN_TIME_S = ($LOGIN_TIME_M - $LOGIN_TIME_M_int);
-	$LOGIN_TIME_S = ($LOGIN_TIME_S * 60);
-	$LOGIN_TIME_S = round($LOGIN_TIME_S, 0);
-	if ($LOGIN_TIME_S < 10) {$LOGIN_TIME_S = "0$LOGIN_TIME_S";}
-	if ($LOGIN_TIME_M_int < 10) {$LOGIN_TIME_M_int = "0$LOGIN_TIME_M_int";}
-	$LOGIN_TIME_HMS = "$LOGIN_TIME_H_int:$LOGIN_TIME_M_int:$LOGIN_TIME_S";
-	$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
 
 echo "-----------------------------------------\n";
-echo "TOTAL LOGGED-IN TIME:    $pfLOGIN_TIME_HMS\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
 
 
 ### timeclock records
@@ -354,20 +267,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f
 			{
 			$login_sec = $row[3];
 			$total_login_time = ($total_login_time + $login_sec);
-			$event_hours = ($login_sec / 3600);
-			$event_hours_int = round($event_hours, 2);
-			$event_hours_int = intval("$event_hours_int");
-			$event_minutes = ($event_hours - $event_hours_int);
-			$event_minutes = ($event_minutes * 60);
-			$event_minutes_int = round($event_minutes, 0);
-			if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";}
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
 			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
 			echo "<td align=right><font size=2>$manager_edit</td>";
 			echo "<td align=right><font size=2>$row[0]</td>";
 			echo "<td align=right><font size=2> $TC_log_date</td>\n";
 			echo "<td align=right><font size=2> $row[4]</td>\n";
 			echo "<td align=right><font size=2> $row[2]</td>\n";
-			echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int";
+			echo "<td align=right><font size=2> $event_hours_minutes";
 			if ($DB) {echo " - $total_login_time - $login_sec";}
 			echo "</td></tr>\n";
 			}
@@ -379,13 +287,7 @@ if (strlen($login_sec)<1)
 	$total_login_time = ($total_login_time + $login_sec);
 		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
 	}
-$total_login_hours = ($total_login_time / 3600);
-$total_login_hours_int = round($total_login_hours, 2);
-$total_login_hours_int = intval("$total_login_hours_int");
-$total_login_minutes = ($total_login_hours - $total_login_hours_int);
-$total_login_minutes = ($total_login_minutes * 60);
-$total_login_minutes_int = round($total_login_minutes, 0);
-if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
 
 	if ($DB) {echo " - $total_login_time - $login_sec";}
 
@@ -393,8 +295,8 @@ echo "<tr><td align=right><font size=2> </td>";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
 echo "<td align=right><font size=2> </td>\n";
-echo "<td align=right><font size=2><font size=2>TOTALE </td>\n";
-echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int  </td></tr>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTALE </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
 
 echo "</TABLE>\n";
 
@@ -406,4 +308,4 @@ echo "</TABLE>\n";
 
 ?>
 
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
diff --git a/LANG_www/vicidial_it/AST_agent_timeclock_detail.php b/LANG_www/vicidial_it/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/LANG_www/vicidial_it/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER);
+$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW);
+
+$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth))
+	{
+    Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\"");
+    Header("HTTP/1.0 401 Unauthorized");
+    echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/LANG_www/vicidial_it/AST_inboundEXTstats.php b/LANG_www/vicidial_it/AST_inboundEXTstats.php index 0986dc06..ec4e09d9 100644 --- a/LANG_www/vicidial_it/AST_inboundEXTstats.php +++ b/LANG_www/vicidial_it/AST_inboundEXTstats.php @@ -1,12 +1,13 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # CHANGES # 60421-1450 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60620-1322 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -75,7 +76,7 @@ while ($i < $inbound_to_print) --> -\n"; #echo"\n"; echo "ASTERISK: Statistiche Chiamate In Entrata\n"; diff --git a/LANG_www/vicidial_it/AST_server_performance.php b/LANG_www/vicidial_it/AST_server_performance.php index eac91aba..989233bc 100644 --- a/LANG_www/vicidial_it/AST_server_performance.php +++ b/LANG_www/vicidial_it/AST_server_performance.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # - Fixed vertical scaling issues # 80118-1508 - Fixed horizontal scale marking issues # 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -24,6 +25,8 @@ if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"]; elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} if (isset($_GET["group"])) {$group=$_GET["group"];} elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} @@ -82,9 +85,9 @@ while ($i < $servers_to_print) --> -\n"; -echo "VICIDIAL: Server Performance\n"; +echo "Server Performance Report\n"; $short_header=1; @@ -125,7 +128,7 @@ $query_date_BEGIN = $begin_query_time; $query_date_END = $end_query_time; -echo "VICIDIAL: Server Performance $NOW_TIME\n"; +echo "Server Performance Report $NOW_TIME\n"; echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n"; echo "---------- TOTALI, PEAKS and AVERAGES\n"; diff --git a/LANG_www/vicidial_it/AST_timeonVDAD.php b/LANG_www/vicidial_it/AST_timeonVDAD.php index 91dd7a40..db5af24c 100644 --- a/LANG_www/vicidial_it/AST_timeonVDAD.php +++ b/LANG_www/vicidial_it/AST_timeonVDAD.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -13,6 +13,7 @@ # 80422-0305 - Added phone login to display, lower font size to 2 # 81013-2227 - Fixed Remote Agent display bug # 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -77,7 +78,7 @@ if ($reset_counter > 7) -\n"; echo " -\n"; echo"\n"; -echo "VICIDIAL: Time On VDAD\n"; +echo "Server-Specific Real-Time Report\n"; $short_header=1; @@ -143,7 +144,7 @@ echo "SERVER: $server_ip\n"; if ($closer_display>0) {$closer_display_reverse=0; $closer_reverse_link='DEFAULT';} else {$closer_display_reverse=1; $closer_reverse_link='CLOSER';} -echo "VICIDIAL: Agents Time On Calls $NOW_TIME $closer_reverse_link | REPORT\n\n"; +echo "Agenti Time On Calls $NOW_TIME $closer_reverse_link | REPORT\n\n"; if ($closer_display>0) { @@ -364,7 +365,7 @@ $talking_to_print = mysql_num_rows($rslt); #echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Time On VDAD TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; +echo "Server-Specific Real-Time Report TRUNK SHORT: $balanceSHORT $NOW_TIME\n\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; echo "| CHANNEL | STATUS | CAMPAIGN | PHONE NUMBER | CALLTIME | MINUTES |\n"; echo "+---------------------+--------+--------------+--------------------+----------+---------+\n"; diff --git a/LANG_www/vicidial_it/AST_timeonVDADall.php b/LANG_www/vicidial_it/AST_timeonVDADall.php index 0f2e8ac9..9b870044 100644 --- a/LANG_www/vicidial_it/AST_timeonVDADall.php +++ b/LANG_www/vicidial_it/AST_timeonVDADall.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -45,14 +45,29 @@ # 90105-1153 - Changed monitor links to use 0 prefix instead of 6 # 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option # 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended # -$version = '2.0.5-36'; -$build = '90310-0906'; + +$version = '2.2.0-49'; +$build = '91204-1548'; header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -97,6 +112,11 @@ if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdispl elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### @@ -115,13 +135,14 @@ while ($i < $qm_conf_ct) ##### END SETTINGS LOOKUP ##### ########################################### +if (!isset($DB)) {$DB=0;} if (!isset($RR)) {$RR=40;} if (!isset($group)) {$group='';} if (!isset($usergroup)) {$usergroup='';} if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes -if (!isset($UidORname)) {$UidORname=0;} # 0=id, 1=name +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name if (!isset($orderby)) {$orderby='timeup';} -if (!isset($SERVdisplay)) {$SERVdisplay=1;} # 0=no, 1=yes +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes @@ -138,50 +159,66 @@ $ingroup_detail=''; if (strlen($group)>1) {$groups[0] = $group; $RR=40;} else {$group = $groups[0];} -function get_server_load($windows = false) { -$os = strtolower(PHP_OS); -if(strpos($os, "win") === false) { -if(file_exists("/proc/loadavg")) { -$load = file_get_contents("/proc/loadavg"); -$load = explode(' ', $load); -return $load[0]; -} -elseif(function_exists("shell_exec")) { -$load = explode(' ', `uptime`); -return $load[count($load)-1]; -} -else { -return false; -} -} -elseif($windows) { -if(class_exists("COM")) { -$wmi = new COM("WinMgmts:\\\\."); -$cpus = $wmi->InstancesOf("Win32_Processor"); +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); -$cpuload = 0; -$i = 0; -while ($cpu = $cpus->Next()) { -$cpuload += $cpu->LoadPercentage; -$i++; -} + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } -$cpuload = round($cpuload / $i, 2); -return "$cpuload%"; -} -else { -return false; -} -} -} + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } $load_ave = get_server_load(true); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1' and active='Y';"; if ($DB) {echo "|$stmt|\n";} if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); @@ -195,17 +232,18 @@ $auth=$row[0]; echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - -$NOW_TIME = date("Y-m-d H:i:s"); -$NOW_DAY = date("Y-m-d"); -$NOW_HOUR = date("H:i:s"); -$STARTtime = date("U"); -$epochSIXhoursAGO = ($STARTtime - 21600); -$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } $stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; $rslt=mysql_query($stmt, $link); -if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; @@ -230,21 +268,32 @@ while($i < $group_ct) $groupQS .= "&groups[]=$groups[$i]"; $i++; } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) { + $all_active = 0; $group_SQL = "''"; -# $group_SQL = "group_id IN('')"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; } else { - $group_SQL = eregi_replace(",$",'',$group_SQL); -# $group_SQL = "group_id IN($group_SQL)"; + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; } -#if ( (eregi('ALL-ACTIVE',$group_string)) and ($with_inbound=='O') and ($outbound_autodial_active > 0) ) -# {$with_inbound='N';} -$stmt="select * from vicidial_user_groups;"; +$stmt="select user_group from vicidial_user_groups;"; $rslt=mysql_query($stmt, $link); if (!isset($DB)) {$DB=0;} if ($DB) {echo "$stmt\n";} @@ -265,14 +314,14 @@ $F=''; $FG=''; $B=''; $BG=''; $select_list = ""; $select_list .= "
Select Campagnas:
"; $select_list .= ""; $select_list .= "
(Per selezionare più di campagna 1, tenere premuto il tasto Ctrl e fare clic su)"; @@ -284,12 +333,12 @@ if ($UGdisplay > 0) $select_list .= "Select Gruppo Utente:
"; $select_list .= "

"; } @@ -306,6 +355,26 @@ $select_list .= "
"; @@ -323,18 +392,229 @@ $open_list = "< \n"; -$stmt = "select count(*) from vicidial_campaigns where campaign_id IN($group_SQL) and campaign_allow_inbound='Y';"; +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); $campaign_allow_inbound = $row[0]; echo "\n"; -echo"\n"; -echo "VICIDIAL: Time On VDAD Campagna: $group\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; $short_header=1; @@ -397,9 +678,11 @@ echo "VICIDIAL: Time On VDAD Campagna: $group
"; -echo "
\n"; +echo "\n"; echo "\n"; echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -411,15 +694,18 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL Real-Time                                                                          \n"; -echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; echo "
\n"; echo "Scegli Opzioni di visualizzazione Relazione"; echo "
\n"; echo "
\n"; -echo "STOP | "; -echo "PIU LENTO | "; -echo "INIZIA"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "PIU LENTO | "; +echo "INIZIA"; if (eregi('ALL-ACTIVE',$group_string)) { echo "       MODIFICA | \n"; @@ -436,14 +722,30 @@ if (!$group) {echo "

per favore seleziona una campagna dal menu qui in al else { $multi_drop=0; - -##### INBOUND ONLY ### -if (ereg('O',$with_inbound)) +### Gather list of all Closer group ids for exclusion from stats +$stmt = "select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +$ingroups_to_print = mysql_num_rows($rslt); +while ($ingroups_to_print > $c) { - $multi_drop++; - $stmt = "select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; $rslt=mysql_query($stmt, $link); $ccamps_to_print = mysql_num_rows($rslt); + $c=0; while ($ccamps_to_print > $c) { $row=mysql_fetch_row($rslt); @@ -453,8 +755,19 @@ if (ereg('O',$with_inbound)) $closer_campaignsSQL .= "'$closer_campaigns',"; $c++; } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; if ($adastats>1) { @@ -569,16 +882,19 @@ if (ereg('O',$with_inbound)) } - $stmt="select agent_pause_codes_active from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; if (eregi('ALL-ACTIVE',$group_string)) { - $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats;"; + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; } - $stmtC="select agent_non_pause_sec from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} @@ -696,10 +1012,13 @@ else { if (eregi('ALL-ACTIVE',$group_string)) { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} $multi_drop++; - $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns;"; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; - $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats;"; + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; } else { @@ -708,29 +1027,15 @@ else if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) { $multi_drop++; - $stmt = "select distinct closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} - $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; } else { - $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; } @@ -758,16 +1063,11 @@ else $CALLtime = $row[16]; $DIALtimeout = $row[17]; $DIALstatuses = $row[18]; - $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); - $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; - $stmt="select count(*) from vicidial_hopper where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select count(*) from vicidial_hopper;"; - } + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $VDhop = $row[0]; @@ -809,15 +1109,29 @@ else } else {$diffpctONEMIN = '0.00';} - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id IN($group_SQL);"; - if (eregi('ALL-ACTIVE',$group_string)) - { - $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats;"; - } + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $balanceSHORT = $row[0]; + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Elenco Mix: $row[0]"; + $DIALorder = "Elenco Mix: $row[0]"; + } + } + echo "
"; echo ""; echo ""; @@ -890,59 +1204,59 @@ echo "$ingroup_detail"; if ($adastats<2) { - echo "+ VIEW MORE"; + echo "+ VIEW MORE"; } else { - echo "+ VIEW LESS"; + echo "+ VIEW LESS"; } if ($UGdisplay>0) { - echo "       NASCONDI GRUPPI UTENTI"; + echo "       NASCONDI GRUPPI UTENTI"; } else { - echo "       MOSTRA GRUPPI UTENTI"; + echo "       MOSTRA GRUPPI UTENTI"; } if ($UidORname>0) { - echo "       MOSTRA ID OPERATORE"; + echo "       MOSTRA ID OPERATORE"; } else { - echo "       MOSTRA NOME OPERATORE"; + echo "       MOSTRA NOME OPERATORE"; } if ($SERVdisplay>0) { - echo "       NASCONDI INFO SERVER"; + echo "       NASCONDI INFO SERVER"; } else { - echo "       MOSTRA INFO SERVER"; + echo "       MOSTRA INFO SERVER"; } if ($CALLSdisplay>0) { - echo "       NASCONDI WAITING CALLS"; + echo "       NASCONDI WAITING CALLS"; } else { - echo "       MOSTRA WAITING CALLS"; + echo "       MOSTRA WAITING CALLS"; } if ($PHONEdisplay>0) { - echo "       NASCONDI PHONES"; + echo "       NASCONDI PHONES"; } else { - echo "       MOSTRA PHONES"; + echo "       MOSTRA PHONES"; } if ($CUSTPHONEdisplay>0) { - echo "       NASCONDI CUSTPHONES"; + echo "       NASCONDI CUSTPHONES"; } else { - echo "       MOSTRA CUSTPHONES"; + echo "       MOSTRA CUSTPHONES"; } echo ""; echo ""; @@ -955,34 +1269,15 @@ echo "\n\n"; ################################################################################### if ($campaign_allow_inbound > 0) { - $stmt="select closer_campaigns from vicidial_campaigns where campaign_id IN($group_SQL);"; - $rslt=mysql_query($stmt, $link); - $ccamps_to_print = mysql_num_rows($rslt); - $c=0; - $closer_campaignsSQL=''; - while ($ccamps_to_print > $c) - { - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); - $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); - $closer_campaignsSQL .= "'$closer_campaigns',"; - $c++; - } - $closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL); - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (campaign_id IN($group_SQL) and call_type IN('OUT','OUTBALANCE')) ) order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; } else { - if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} - else {$UgroupSQL = " and campaign_id IN($group_SQL)";} - - $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $UgroupSQL order by queue_priority desc,campaign_id,call_time;"; + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; } if ($CALLSdisplay > 0) { - $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority"; + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; } else { @@ -991,6 +1286,7 @@ else $k=0; +$agentonlycount=0; $stmt = "$stmtA $stmtB"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} @@ -1019,6 +1315,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1037,6 +1335,8 @@ $parked_to_print = mysql_num_rows($rslt); $CDcall_time[$k] = $row[4]; $CDcall_type[$k] = $row[5]; $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} $k++; } } @@ -1089,11 +1389,13 @@ $parked_to_print = mysql_num_rows($rslt); ################################################################################### ###### CALLS WAITING ################################################################################### - +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} $Cecho = ''; $Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; -$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITY |\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITY | $agentonlyheader\n"; $Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; $p=0; @@ -1105,24 +1407,23 @@ while($p<$k) $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); - $Ccall_time_M = ($Ccall_time_S / 60); - $Ccall_time_M = round($Ccall_time_M, 2); - $Ccall_time_M_int = intval("$Ccall_time_M"); - $Ccall_time_SEC = ($Ccall_time_M - $Ccall_time_M_int); - $Ccall_time_SEC = ($Ccall_time_SEC * 60); - $Ccall_time_SEC = round($Ccall_time_SEC, 0); - if ($Ccall_time_SEC < 10) {$Ccall_time_SEC = "0$Ccall_time_SEC";} - $Ccall_time_MS = "$Ccall_time_M_int:$Ccall_time_SEC"; + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); $G = ''; $EG = ''; if ($CDcall_type[$p] == 'IN') { - $G=""; $EG=''; + $G=""; $EG=''; } - $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG |\n"; + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; $p++; } @@ -1159,39 +1460,41 @@ if ($campaignord=='campaignup') {$campaignord='campaigndown';} else {$campaignord='campaignup';} $Aecho = ''; -$Aecho .= "VICIDIAL: Agents Time On Calls Campagna: $group_string $NOW_TIME\n"; +$Aecho .= "VICIDIAL: Agenti Time On Calls Campagna: $group_string $NOW_TIME\n"; $HDbegin = "+"; $HTbegin = "|"; -$HDstation = "------------+"; -$HTstation = " STATION |"; -$HDphone = "------------+"; -$HTphone = " PHONE |"; -$HDuser = "--------------------+"; -$HTuser = " UTENTE |"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " UTENTE INFO |"; $HDusergroup = "--------------+"; -$HTusergroup = " Utente Group |"; +$HTusergroup = " Utente Group |"; $HDsessionid = "------------------+"; $HTsessionid = " SESSIONID |"; $HDbarge = "-------+"; $HTbarge = " BARGE |"; $HDstatus = "----------+"; $HTstatus = " STATUS |"; -$HDcustphone = "------------+"; -$HTcustphone = " CUST PHONE |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; $HDserver_ip = "-----------------+"; $HTserver_ip = " SERVER IP |"; $HDcall_server_ip = "-----------------+"; $HTcall_server_ip = " CALL SERVER IP |"; $HDtime = "---------+"; -$HTtime = " MM:SS |"; +$HTtime = " MM:SS |"; $HDcampaign = "------------+"; -$HTcampaign = " CAMPAGNA |"; +$HTcampaign = " CAMPAGNA |"; $HDcalls = "-------+"; $HTcalls = " CALLS |"; $HDpause = ''; $HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; if (!ereg("N",$agent_pause_codes_active)) { @@ -1215,12 +1518,12 @@ if ($UGdisplay < 1) $HDusergroup = ''; $HTusergroup = ''; } -if ( ($SIPmonitorLINK<1) && ($IAXmonitorLINK<1) ) +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) { $HDsessionid = "-----------+"; $HTsessionid = " SESSIONID |"; } -if ( ($SIPmonitorLINK<2) && ($IAXmonitorLINK<2) ) +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) { $HDbarge = ''; $HTbarge = ''; @@ -1235,8 +1538,8 @@ if ($SERVdisplay < 1) -$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls\n"; -$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls\n"; +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; $Aecho .= "$Aline"; $Aecho .= "$Bline"; $Aecho .= "$Aline"; @@ -1265,7 +1568,7 @@ else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} if (strlen($usergroup)<1) {$usergroupSQL = '';} else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} -$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); @@ -1291,6 +1594,7 @@ $talking_to_print = mysql_num_rows($rslt); $Acalls_today[$i] = $row[12]; $Acallerid[$i] = $row[13]; $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; $i++; } @@ -1352,6 +1656,12 @@ $calls_to_list = mysql_num_rows($rslt); $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); $exten = "extension='$dialplan'"; } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; $rslt=mysql_query($stmt, $link); @@ -1396,9 +1706,9 @@ $calls_to_list = mysql_num_rows($rslt); $phone_split = explode("-----",$Alogin[$j]); $i = $phone_split[1]; - if (eregi("READY|PAUSED",$Astatus[$i])) + if (eregi("READY|PAUSED",$Astatus[$i])) { - $Acall_time[$i]=$Acall_finish[$i]; + $Acall_time[$i]=$Astate_change[$i]; if ($Alead_id[$i] > 0) { @@ -1407,27 +1717,28 @@ $calls_to_list = mysql_num_rows($rslt); $status = ' DISPO'; } } - if ($non_latin < 1) + if ($non_latin < 1) { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-10s", $extension); - while(strlen($extension)>10) {$extension = substr("$extension", 0, -1);} + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} } - else + else { $extension = eregi_replace('Local/',"",$Aextension[$i]); - $extension = sprintf("%-40s", $extension); - while(mb_strlen($extension, 'utf-8')>10) {$extension = mb_substr("$extension", 0, -1,'utf8');} + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} } - $phone = sprintf("%-10s", $phone_split[0]); - $custphone = sprintf("%-10s", $custphone); + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); $Luser = $Auser[$i]; - $user = sprintf("%-18s", $Auser[$i]); + $user = sprintf("%-20s", $Auser[$i]); $Lsessionid = $Asessionid[$i]; $sessionid = sprintf("%-9s", $Asessionid[$i]); $Lstatus = $Astatus[$i]; $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; $server_ip = sprintf("%-15s", $Aserver_ip[$i]); $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); @@ -1441,12 +1752,27 @@ $calls_to_list = mysql_num_rows($rslt); if (eregi("INCALL",$Lstatus)) { - ### temporarily deactivate DEAD calls display until bug is fixed - if (!ereg("$Acallerid[$i]\|",$callerids)) + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) { - $Astatus[$i] = 'DEAD'; - $Lstatus = 'DEAD'; - $status = ' DEAD '; + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } } if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) @@ -1463,12 +1789,12 @@ $calls_to_list = mysql_num_rows($rslt); if ($UGdisplay > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { $user_group = sprintf("%-12s", $Auser_group[$i]); while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} } - else + else { $user_group = sprintf("%-40s", $Auser_group[$i]); while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} @@ -1476,42 +1802,35 @@ $calls_to_list = mysql_num_rows($rslt); } if ($UidORname > 0) { - if ($non_latin < 1) + if ($non_latin < 1) { - $user = sprintf("%-18s", $Afull_name[$i]); - while(strlen($user)>18) {$user = substr("$user", 0, -1);} + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} } - else + else { - $user = sprintf("%-40s", $Afull_name[$i]); - while(mb_strlen($user, 'utf-8')>18) {$user = mb_substr("$user", 0, -1,'utf8');} + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} } } - if (!eregi("INCALL|QUEUE",$Astatus[$i])) - {$call_time_S = ($STARTtime - $Acall_finish[$i]);} + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} else {$call_time_S = ($STARTtime - $Acall_time[$i]);} - $call_time_M = ($call_time_S / 60); - $call_time_M = round($call_time_M, 2); - $call_time_M_int = intval("$call_time_M"); - $call_time_SEC = ($call_time_M - $call_time_M_int); - $call_time_SEC = ($call_time_SEC * 60); - $call_time_SEC = round($call_time_SEC, 0); - if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} - $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sec_convert($call_time_S,'M'); $call_time_MS = sprintf("%7s", $call_time_MS); $G = ''; $EG = ''; - if ($Lstatus=='INCALL') + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) { if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} - # if ($call_time_M_int >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} } if ($Lstatus=='DEAD') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { @@ -1522,15 +1841,15 @@ $calls_to_list = mysql_num_rows($rslt); } if ($Lstatus=='DISPO') { - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } if ($Lstatus=='PAUSED') @@ -1546,27 +1865,27 @@ $calls_to_list = mysql_num_rows($rslt); else {$pausecode='';} - if ($call_time_M_int >= 360) + if ($call_time_S >= 21600) {$j++; continue;} else { $agent_paused++; $agent_total++; $G=''; $EG=''; if ($call_time_S >= 10) {$G=''; $EG='';} - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } } # if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) # {$G=''; $EG='';} - if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) { $G=''; $EG=''; - if ($call_time_M_int >= 1) {$G=''; $EG='';} - if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} } $L=''; @@ -1575,6 +1894,10 @@ $calls_to_list = mysql_num_rows($rslt); if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} if ($SIPmonitorLINK>1) {$R=" | BARGE";} if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} else {$CP = "";} @@ -1586,31 +1909,31 @@ $calls_to_list = mysql_num_rows($rslt); else {$SVD = "";} if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} - else {$phoneD = "";} + else {$phoneD = " ";} $vac_stage=''; $vac_campaign=''; $INGRP=''; if ($CM == 'I') { - $stmt="select campaign_id,stage from vicidial_auto_calls where callerid='$Acallerid[$i]' LIMIT 1;"; + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $ingrp_to_print = mysql_num_rows($rslt); if ($ingrp_to_print > 0) { $row=mysql_fetch_row($rslt); - $vac_campaign = sprintf("%-20s", $row[0]); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); $row[1] = eregi_replace(".*-",'',$row[1]); $vac_stage = sprintf("%-4s", $row[1]); } - $INGRP = " $G$vac_stage$EG $G$vac_campaign$EG "; + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; } $agentcount++; - $Aecho .= "| $G$extension$EG |$phoneD $G$user$EG |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG+ |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; $j++; } diff --git a/LANG_www/vicidial_it/AST_timeonVDADallSUMMARY.php b/LANG_www/vicidial_it/AST_timeonVDADallSUMMARY.php index 47c4f75d..caad2592 100644 --- a/LANG_www/vicidial_it/AST_timeonVDADallSUMMARY.php +++ b/LANG_www/vicidial_it/AST_timeonVDADallSUMMARY.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -15,6 +15,7 @@ # 71029-1900 - Changed CLOSER-type to not require campaign_id restriction # 80525-1040 - Added IVR status summary display for inbound calls # 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -103,10 +104,10 @@ if (!isset($RR)) {$RR=4;} --> -\n"; -echo "VICIDIAL: Riepilogo Di Tutte Le Campagne Aggiornato In Tempo Reale/TITLE></HEAD><BODY BGCOLOR=WHITE marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>\n"; +echo "<TITLE>Real-Time All Campagne Summary\n"; $short_header=1; @@ -114,7 +115,7 @@ echo "VICIDIAL: Riepilogo Di Tutte Le Campagne Aggiornato In Tempo Reale/ echo "<TABLE CELLPADDING=4 CELLSPACING=0><TR><TD>"; -echo "<b>VICIDIAL: Riepilogo Di Tutte Le Campagne Aggiornato In Tempo Reale/b>           \n"; +echo "<b>Real-Time All Campagne Summary</b>           \n"; echo "<a href=\"$PHP_SELF?group=$group&RR=4000&DB=$DB&adastats=$adastats\">STOP</a> | "; echo "<a href=\"$PHP_SELF?group=$group&RR=40&DB=$DB&adastats=$adastats\">PIU LENTO</a> | "; echo "<a href=\"$PHP_SELF?group=$group&RR=4&DB=$DB&adastats=$adastats\">INIZIA</a> "; diff --git a/LANG_www/vicidial_it/AST_timeonpark.php b/LANG_www/vicidial_it/AST_timeonpark.php index 0992a27b..817ffd23 100644 --- a/LANG_www/vicidial_it/AST_timeonpark.php +++ b/LANG_www/vicidial_it/AST_timeonpark.php @@ -1,12 +1,13 @@ -<? +<?php # AST_timeonpark.php # -# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # # CHANGES # # 60620-1042 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -83,7 +84,7 @@ if ($reset_counter > 7) --> </STYLE> -<? +<?php echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; echo"<META HTTP-EQUIV=Refresh CONTENT=\"7; URL=$PHP_SELF?server_ip=$server_ip&DB=$DB&reset_counter=$reset_counter\">\n"; echo "<TITLE>VICIDIAL: Time On Park\n"; @@ -154,7 +155,7 @@ $parked_to_print = mysql_num_rows($rslt); echo "\n\n"; echo "----------------------------------------------------------------------------------------"; echo "\n\n"; -echo "VICIDIAL: Agents Time On Inbound Calls $NOW_TIME\n\n"; +echo "VICIDIAL: Agenti Time On Inbound Calls $NOW_TIME\n\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; echo "| STATION | USER | CHANNEL | GROUP | START TIME | MINUTES |\n"; echo "+------------|--------+------------+-----------------+---------------------+---------+\n"; diff --git a/LANG_www/vicidial_it/admin.php b/LANG_www/vicidial_it/admin.php index e748e1ec..641f0af9 100644 --- a/LANG_www/vicidial_it/admin.php +++ b/LANG_www/vicidial_it/admin.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -38,6 +38,9 @@ $reports_color = '#99FF33'; $carriers_color = '#FF33FF'; $settings_color = '#FF33FF'; $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; $subcamp_color = '#FF9933'; $users_font = 'BLACK'; $campaigns_font = 'BLACK'; @@ -55,6 +58,9 @@ $reports_font = 'BLACK'; $server_font = 'BLACK'; $settings_font = 'BLACK'; $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; $subcamp_font = 'BLACK'; ### comment this section out for colorful section headings @@ -77,6 +83,9 @@ $reports_color = '#E6E6E6'; $carriers_color = '#C6C6C6'; $settings_color = '#C6C6C6'; $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; $subcamp_color = '#C6C6C6'; ### @@ -954,7 +963,208 @@ if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enfor elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} - +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -967,12 +1177,11 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; @@ -980,7 +1189,9 @@ while ($i < $qm_conf_ct) $SSenable_vtiger_integration = $row[2]; $SSqc_features_active = $row[3]; $SSoutbound_autodial_active = $row[4]; - $i++; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -992,476 +1203,601 @@ while ($i < $qm_conf_ct) ###################################################################################################### if ($non_latin < 1) -{ -### DIGITS ONLY ### -$adaptive_dropped_percentage = ereg_replace("[^0-9]","",$adaptive_dropped_percentage); -$adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); -$admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); -$admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); -$admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); -$AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); -$agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); -$agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); -$agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); -$AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); -$allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); -$alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); -$am_message_exten = ereg_replace("[^0-9]","",$am_message_exten); -$answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); -$ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); -$ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); -$attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); -$attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); -$auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); -$balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); -$call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); -$CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); -$campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); -$campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); -$campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); -$change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); -$closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); -$conf_exten = ereg_replace("[^0-9]","",$conf_exten); -$conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); -$conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); -$ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); -$ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); -$ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); -$ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); -$ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); -$ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); -$ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); -$ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); -$ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); -$ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); -$ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); -$ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); -$ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); -$ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); -$ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); -$ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); -$DBX_port = ereg_replace("[^0-9]","",$DBX_port); -$DBY_port = ereg_replace("[^0-9]","",$DBY_port); -$dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); -$delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); -$delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); -$delete_filters = ereg_replace("[^0-9]","",$delete_filters); -$delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); -$delete_lists = ereg_replace("[^0-9]","",$delete_lists); -$delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); -$delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); -$delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); -$delete_users = ereg_replace("[^0-9]","",$delete_users); -$dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); -$dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); -$drop_call_seconds = ereg_replace("[^0-9]","",$drop_call_seconds); -$enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); -$enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); -$fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); -$hopper_level = ereg_replace("[^0-9]","",$hopper_level); -$hotkey = ereg_replace("[^0-9]","",$hotkey); -$hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); -$list_id = ereg_replace("[^0-9]","",$list_id); -$load_leads = ereg_replace("[^0-9]","",$load_leads); -$max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); -$modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); -$modify_users = ereg_replace("[^0-9]","",$modify_users); -$modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); -$modify_lists = ereg_replace("[^0-9]","",$modify_lists); -$modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); -$modify_filters = ereg_replace("[^0-9]","",$modify_filters); -$modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); -$modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); -$modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); -$modify_servers = ereg_replace("[^0-9]","",$modify_servers); -$view_reports = ereg_replace("[^0-9]","",$view_reports); -$modify_leads = ereg_replace("[^0-9]","",$modify_leads); -$monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); -$number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); -$old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); -$outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); -$park_ext = ereg_replace("[^0-9]","",$park_ext); -$park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); -$phone_number = ereg_replace("[^0-9]","",$phone_number); -$QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); -$recording_exten = ereg_replace("[^0-9]","",$recording_exten); -$remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); -$telnet_port = ereg_replace("[^0-9]","",$telnet_port); -$updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); -$user_level = ereg_replace("[^0-9]","",$user_level); -$user_start = ereg_replace("[^0-9]","",$user_start); -$user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); -$VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); -$VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); -$vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); -$vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); -$voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); -$voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); -$voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); -$voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); -$voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); -$wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); -$use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); -$webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); -$enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); -$enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); -$allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); -$mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); -$prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); -$agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); -$manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); -$qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); -$qc_pass = ereg_replace("[^0-9]","",$qc_pass); -$qc_finish = ereg_replace("[^0-9]","",$qc_finish); -$qc_commit = ereg_replace("[^0-9]","",$qc_commit); -$shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); -$timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); -$survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); -$add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); -$modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); -$delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); -$vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); -$vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); -$hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); -$hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); -$did_id = ereg_replace("[^0-9]","",$did_id); -$source_did = ereg_replace("[^0-9]","",$source_did); -$modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); -$delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); -$answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); -$answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); -$enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); -$qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); -$outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); -$download_lists = ereg_replace("[^0-9]","",$download_lists); -$caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); -$outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); -$manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); -$export_reports = ereg_replace("[^0-9]","",$export_reports); + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); -### DIGITS and COLONS -$shift_length = ereg_replace("[^\:0-9]","",$shift_length); + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); -### DIGITS and HASHES and STARS -$survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); -$survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); -### DIGITS and DASHES -$group_rank = ereg_replace("[^-0-9]","",$group_rank); -$campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); -$queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); -### DIGITS and NEWLINES -$phone_numbers = ereg_replace("[^\n0-9]","",$phone_numbers); + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); -### Y or N ONLY ### -$active = ereg_replace("[^NY]","",$active); -$allow_closers = ereg_replace("[^NY]","",$allow_closers); -$reset_hopper = ereg_replace("[^NY]","",$reset_hopper); -$amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); -$alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); -$selectable = ereg_replace("[^NY]","",$selectable); -$reset_list = ereg_replace("[^NY]","",$reset_list); -$fronter_display = ereg_replace("[^NY]","",$fronter_display); -$use_internal_dnc = ereg_replace("[^NY]","",$use_internal_dnc); -$use_campaign_dnc = ereg_replace("[^NY]","",$use_campaign_dnc); -$omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); -$available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); -$sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); -$vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); -$vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); -$campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); -$disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); -$no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); -$human_answered = ereg_replace("[^NY]","",$human_answered); -$tovdad_display = ereg_replace("[^NY]","",$tovdad_display); -$campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); -$disable_alter_custphone = ereg_replace("[^NY]","",$disable_alter_custphone); -$display_queue_count = ereg_replace("[^NY]","",$display_queue_count); -$qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); -$sale_category = ereg_replace("[^NY]","",$sale_category); -$dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); -$agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); -$play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); -$play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); -$no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); -$did_active = ereg_replace("[^NY]","",$did_active); -$active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); -$generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); -$rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); -$agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); -$qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + ### Y or N ONLY ### + $allow_closers = ereg_replace("[^NY]","",$allow_closers); + $reset_hopper = ereg_replace("[^NY]","",$reset_hopper); + $amd_send_to_vmx = ereg_replace("[^NY]","",$amd_send_to_vmx); + $alt_number_dialing = ereg_replace("[^NY]","",$alt_number_dialing); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); -### ALPHA-NUMERIC ONLY ### -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); -$submit = ereg_replace("[^0-9a-zA-Z]","",$submit); -$campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); -$get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); -$campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); -$ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); -$dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); -$state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); -$scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); -$concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); -$billable = ereg_replace("[^0-9a-zA-Z]","",$billable); -$pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); -$vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); -$ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); -$queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); -$after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); -$after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); -$qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); -$code = ereg_replace("[^0-9a-zA-Z]","",$code); -$survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); -$survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); -$qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); -$agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); -$three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); -$shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); -$agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $campaign_cid = ereg_replace("[^0-9a-zA-Z]","",$campaign_cid); + $get_call_launch = ereg_replace("[^0-9a-zA-Z]","",$get_call_launch); + $campaign_recording = ereg_replace("[^0-9a-zA-Z]","",$campaign_recording); + $ADD = ereg_replace("[^0-9a-zA-Z]","",$ADD); + $dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); + $state_call_time_state = ereg_replace("[^0-9a-zA-Z]","",$state_call_time_state); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); -### DIGITS and Dots -$server_ip = ereg_replace("[^\.0-9]","",$server_ip); -$auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); -$adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); -$phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); -$old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); -$computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); -$queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); -$vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); -### ALPHA-NUMERIC and spaces and hash and star and comma -$xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); -$xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); -### ALPHACAPS-NUMERIC -$xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); -$xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); -### ALPHA-NUMERIC and underscore and dash -$agi_output = ereg_replace("[^-\_0-9a-zA-Z]","",$agi_output); -$ASTmgrSECRET = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrSECRET); -$ASTmgrUSERNAME = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAME); -$ASTmgrUSERNAMElisten = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); -$ASTmgrUSERNAMEsend = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); -$ASTmgrUSERNAMEupdate = ereg_replace("[^-\_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); -$call_time_id = ereg_replace("[^-\_0-9a-zA-Z]","",$call_time_id); -$campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); -$CoNfIrM = ereg_replace("[^-\_0-9a-zA-Z]","",$CoNfIrM); -$DBX_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_database); -$DBX_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_pass); -$DBX_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBX_user); -$DBY_database = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_database); -$DBY_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_pass); -$DBY_user = ereg_replace("[^-\_0-9a-zA-Z]","",$DBY_user); -$dial_method = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_method); -$dial_status_a = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_a); -$dial_status_b = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_b); -$dial_status_c = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_c); -$dial_status_d = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_d); -$dial_status_e = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status_e); -$ext_context = ereg_replace("[^-\_0-9a-zA-Z]","",$ext_context); -$group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_id); -$lead_filter_id = ereg_replace("[^-\_0-9a-zA-Z]","",$lead_filter_id); -$local_call_time = ereg_replace("[^-\_0-9a-zA-Z]","",$local_call_time); -$login = ereg_replace("[^-\_0-9a-zA-Z]","",$login); -$login_campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$login_campaign); -$login_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$login_pass); -$login_user = ereg_replace("[^-\_0-9a-zA-Z]","",$login_user); -$next_agent_call = ereg_replace("[^-\_0-9a-zA-Z]","",$next_agent_call); -$old_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_campaign_id); -$old_server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$old_server_id); -$OLDuser_group = ereg_replace("[^-\_0-9a-zA-Z]","",$OLDuser_group); -$park_file_name = ereg_replace("[^-\_0-9a-zA-Z]","",$park_file_name); -$pass = ereg_replace("[^-\_0-9a-zA-Z]","",$pass); -$phone_login = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_login); -$phone_pass = ereg_replace("[^-\_0-9a-zA-Z]","",$phone_pass); -$PHP_AUTH_PW = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_PW); -$PHP_AUTH_USER = ereg_replace("[^-\_0-9a-zA-Z]","",$PHP_AUTH_USER); -$protocol = ereg_replace("[^-\_0-9a-zA-Z]","",$protocol); -$server_id = ereg_replace("[^-\_0-9a-zA-Z]","",$server_id); -$stage = ereg_replace("[^-\_0-9a-zA-Z]","",$stage); -$state_rule = ereg_replace("[^-\_0-9a-zA-Z]","",$state_rule); -$status = ereg_replace("[^-\_0-9a-zA-Z]","",$status); -$trunk_restriction = ereg_replace("[^-\_0-9a-zA-Z]","",$trunk_restriction); -$user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); -$user_group = ereg_replace("[^-\_0-9a-zA-Z]","",$user_group); -$VICIDIAL_park_on_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); -$auto_alt_dial = ereg_replace("[^-\_0-9a-zA-Z]","",$auto_alt_dial); -$dial_status = ereg_replace("[^-\_0-9a-zA-Z]","",$dial_status); -$queuemetrics_eq_prepend = ereg_replace("[^-\_0-9a-zA-Z]","",$queuemetrics_eq_prepend); -$vicidial_agent_disable = ereg_replace("[^-\_0-9a-zA-Z]","",$vicidial_agent_disable); -$alter_custdata_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custdata_override); -$list_order_mix = ereg_replace("[^-\_0-9a-zA-Z]","",$list_order_mix); -$vcl_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vcl_id); -$mix_method = ereg_replace("[^-\_0-9a-zA-Z]","",$mix_method); -$category = ereg_replace("[^-\_0-9a-zA-Z]","",$category); -$vsc_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vsc_id); -$moh_context = ereg_replace("[^-\_0-9a-zA-Z]","",$moh_context); -$agent_alert_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_alert_exten); -$source_campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_campaign_id); -$source_user_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_user_id); -$source_group_id = ereg_replace("[^-\_0-9a-zA-Z]","",$source_group_id); -$default_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$default_xfer_group); -$drop_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_exten); -$safe_harbor_exten = ereg_replace("[^-\_0-9a-zA-Z]","",$safe_harbor_exten); -$drop_action = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_action); -$drop_inbound_group = ereg_replace("[^-\_0-9a-zA-Z]","",$drop_inbound_group); -$afterhours_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$afterhours_xfer_group); -$after_hours_action = ereg_replace("[^-\_0-9a-zA-Z]","",$after_hours_action); -$alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$alias_id); -$shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$shift_id); -$qc_shift_id = ereg_replace("[^-\_0-9a-zA-Z]","",$qc_shift_id); -$survey_first_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_first_audio_file); -$survey_opt_in_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_opt_in_audio_file); -$survey_ni_audio_file = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_ni_audio_file); -$survey_method = ereg_replace("[^-\_0-9a-zA-Z]","",$survey_method); -$alter_custphone_override = ereg_replace("[^-\_0-9a-zA-Z]","",$alter_custphone_override); -$manual_dial_filter = ereg_replace("[^-\_0-9a-zA-Z]","",$manual_dial_filter); -$agent_clipboard_copy = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_clipboard_copy); -$hold_time_option = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option); -$hold_time_option_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_xfer_group); -$hold_recall_xfer_group = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_recall_xfer_group); -$play_welcome_message = ereg_replace("[^-\_0-9a-zA-Z]","",$play_welcome_message); -$did_route = ereg_replace("[^-\_0-9a-zA-Z]","",$did_route); -$user_unavailable_action = ereg_replace("[^-\_0-9a-zA-Z]","",$user_unavailable_action); -$user_route_settings_ingroup = ereg_replace("[^-\_0-9a-zA-Z]","",$user_route_settings_ingroup); -$call_handle_method = ereg_replace("[^-\_0-9a-zA-Z]","",$call_handle_method); -$agent_search_method = ereg_replace("[^-\_0-9a-zA-Z]","",$agent_search_method); -$hold_time_option_voicemail = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_voicemail); -$hold_time_option_callback_filename = ereg_replace("[^-\_0-9a-zA-Z]","",$hold_time_option_callback_filename); -$exten_context = ereg_replace("[^-\_0-9a-zA-Z]","",$exten_context); -$three_way_call_cid = ereg_replace("[^-\_0-9a-zA-Z]","",$three_way_call_cid); -$web_form_target = ereg_replace("[^-\_0-9a-zA-Z]","",$web_form_target); -$recording_web_link = ereg_replace("[^-\_0-9a-zA-Z]","",$recording_web_link); -$vtiger_search_category = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_search_category); -$vtiger_create_call_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_call_record); -$vtiger_create_lead_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_lead_record); -$vtiger_screen_login = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_screen_login); -$cpd_amd_action = ereg_replace("[^-\_0-9a-zA-Z]","",$cpd_amd_action); -$template_id = ereg_replace("[^-\_0-9a-zA-Z]","",$template_id); -$carrier_id = ereg_replace("[^-\_0-9a-zA-Z]","",$carrier_id); -$group_alias_id = ereg_replace("[^-\_0-9a-zA-Z]","",$group_alias_id); -$default_group_alias = ereg_replace("[^-\_0-9a-zA-Z]","",$default_group_alias); + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); -### ALPHA-NUMERIC and underscore and dash and comma -$logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); -$forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); -### ALPHA-NUMERIC and spaces -$lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); -### ALPHA-NUMERIC and hash -$group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); -### ALPHA-NUMERIC and hash and star and dot and underscore -$hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); -$did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); -$voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); -$phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); -$phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); -### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores -$adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); -$adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); -$asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); -$call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); -$call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); -$campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); -$campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); -$ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); -$company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); -$full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); -$fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); -$group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); -$HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); -$lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); -$lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); -$list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); -$local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); -$phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); -$picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); -$script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); -$script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); -$server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); -$status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); -$status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); -$wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); -$pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); -$campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); -$list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); -$vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); -$vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); -$vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); -$code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); -$alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); -$shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); -$did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); -$alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); -$template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); -$carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); -$group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); -$caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### ALPHA-NUMERIC and spaces + $lead_order = ereg_replace("[^ 0-9a-zA-Z]","",$lead_order); + ### ALPHA-NUMERIC and hash + $group_color = ereg_replace("[^\#0-9a-zA-Z]","",$group_color); + ### ALPHA-NUMERIC and hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); -### ALPHA-NUMERIC and underscore and dash and slash and at and dot -$call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); -$client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); -$DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); -$DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); -$dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); -$extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); -$install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); -$old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); -$telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); -$queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); -$queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); -$queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); -$after_hours_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$after_hours_message_filename); -$welcome_message_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$welcome_message_filename); -$onhold_prompt_filename = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$onhold_prompt_filename); -$email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); -$vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); -$vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); -$vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); -### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon -$vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); -$vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); -### ALPHA-NUMERIC and underscore and dash and at and space and parantheses -$vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); -### remove semi-colons ### -$lead_filter_sql = ereg_replace(";","",$lead_filter_sql); -$list_mix_container = ereg_replace(";","",$list_mix_container); -$survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); -$survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); -$conf_override = ereg_replace(";","",$conf_override); -$template_contents = ereg_replace(";","",$template_contents); -$registration_string = ereg_replace(";","",$registration_string); -$account_entry = ereg_replace(";","",$account_entry); -$globals_string = ereg_replace(";","",$globals_string); -$dialplan_entry = ereg_replace(";","",$dialplan_entry); + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); -### VARIABLES TO BE mysql_real_escape_string ### -# $web_form_address -# $queuemetrics_url -# $admin_home_url -# $qc_web_form_address -# $vtiger_url + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); -### VARIABLES not filtered at all ### -# $script_text + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } -} # end of non_latin ##### END VARIABLE FILTERING FOR SECURITY ##### -# AST GUI database administration +# ViciDial database administration # admin.php # # CHANGELOG: @@ -1644,12 +1980,74 @@ $dialplan_entry = ereg_replace(";","",$dialplan_entry); # 90308-0956 - Added server statistics # 90309-0059 - Changed logging to admin_server_log # 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 # 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.0.5-173'; -$build = '90320-0424'; +$admin_version = '2.2.0-233'; +$build = '100104-1454'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -1664,29 +2062,50 @@ $past_month_date = date("Y-m-d H:i:s",$month_old); $week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); $past_week_date = date("Y-m-d H:i:s",$week_old); +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Ora non sei collegato. Grazie\n"; + exit; } - echo "Ora non sei collegato. Grazie\n"; - exit; -} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin FROM system_settings;"; +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; - $i++; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -1705,21 +2124,20 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT * from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $LOGfull_name =$row[3]; @@ -1754,11 +2172,12 @@ $browser = getenv("HTTP_USER_AGENT"); $LOGdelete_dids =$row[57]; $LOGmanager_shift_enforcement_override=$row[61]; $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - $LOGallowed_campaigns =$row[0]; + $LOGallowed_campaigns = $row[0]; if ($WeBRooTWritablE > 0) { @@ -1787,7 +2206,7 @@ header ("Content-type: text/html; charset=utf-8"); echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL ADMIN: "; +echo "<title>ADMINISTRATION: "; if (!isset($ADD)) {$ADD=0;} @@ -1801,6 +2220,8 @@ if ($ADD==1111) {$hh='ingroups'; echo "Aggiungi Nuovo Gruppo Inbound";} if ($ADD==1211) {$hh='ingroups'; echo "Copia Gruppo Inbound";} if ($ADD==1311) {$hh='ingroups'; echo "Aggiungi nuovoDID";} if ($ADD==1411) {$hh='ingroups'; echo "CopiaDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Aggiungi Call Menu";} +if ($ADD==1611) {$hh='ingroups'; echo "Copia Call Menu";} if ($ADD==11111) {$hh='remoteagent'; echo "Aggiungi Nuovo Operatore Remoto";} if ($ADD==111111) {$hh='usergroups'; echo "Aggiungi Nuovo Gruppo Utente";} if ($ADD==1111111) {$hh='scripts'; echo "Aggiungi Nuovo Script";} @@ -1814,6 +2235,9 @@ if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "AGGIUNGI NUOVO GRUPPO A if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "AGGIUNGI SERVER";} if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "ADD NEW CONF TEMPLATE";} if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "AGGIUNGI NUOVO VETTORE";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW ENTRY TTS";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC IN ATTESA INGRESSO";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW VOICEMAIL BOX";} if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "NUEVA CONFERENCIA";} if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} if ($ADD=='2') {$hh='users'; echo "Creazione Nuovo Utente";} @@ -1832,6 +2256,8 @@ if ($ADD==2111) {$hh='ingroups'; echo "Creazione Nuovo Gruppo Inbound";} if ($ADD==2011) {$hh='ingroups'; echo "Nueva Adicin Copiada Del En-Grupo";} if ($ADD==2311) {$hh='ingroups'; echo "Nuova aggiunta DID";} if ($ADD==2411) {$hh='ingroups'; echo "Nuova aggiunta Copiato DID";} +if ($ADD==2511) {$hh='ingroups'; echo "Nuova chiamata Menu";} +if ($ADD==2611) {$hh='ingroups'; echo "Nuova chiamata Menu";} if ($ADD==21111) {$hh='remoteagent'; echo "Creazuibe Nuovi Operatori Remoti";} if ($ADD==211111) {$hh='usergroups'; echo "Creazione Nuovo Gruppo Utenti";} if ($ADD==2111111) {$hh='scripts'; echo "Creazione Nuovo Script";} @@ -1846,6 +2272,9 @@ if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "CREANDO SERVIDOR";} if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ADICIo`N DEL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "Aggiunta di nuovi CONF TEMPLATE";} if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "Aggiunta di nuovi VETTORE";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Aggiunta di nuovi TTS ENTRY";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "AGGIUNTA NUOVA MUSICA IN ATTESA INGRESSO";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "Aggiunta di nuovi VOICEMAIL BOX";} if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "CREANDO CONFERENCIA";} if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "AGGIUNGI ESITI DI DEFAULT VICIDIAL";} @@ -1854,29 +2283,29 @@ if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "AGGIUNGENDO VICIDIA if ($ADD==3) {$hh='users'; echo "Modifica Utente";} if ($ADD==30) {$hh='campaigns'; echo "Campagna Non Autorizzata";} if ($ADD==31) - { - $hh='campaigns'; $sh='detail'; echo "Modifica Campagna - Dettagliata - $campaign_id"; - if ($SUB==22) {echo " - Esiti";} - if ($SUB==23) {echo " - Hot-Key";} - if ($SUB==25) {echo " -Riciclaggio ContattiEntries";} - if ($SUB==26) {echo " - Alt Auto Dial Esiti";} - if ($SUB==27) {echo " - Agent Codici Pausa";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Elenco Mixes";} - if ($SUB=='20A') {echo " - Indagine";} - } + { + $hh='campaigns'; $sh='detail'; echo "Modifica Campagna - Dettagliata - $campaign_id"; + if ($SUB==22) {echo " - Esiti";} + if ($SUB==23) {echo " - Hot-Key";} + if ($SUB==25) {echo " -Riciclaggio ContattiEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Esiti";} + if ($SUB==27) {echo " - Agent Codici Pausa";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Elenco Mixes";} + if ($SUB=='20A') {echo " - Indagine";} + } if ($ADD==34) - { - $hh='campaigns'; $sh='basic'; echo "Modifica Campagna - Vista Generale - $campaign_id"; - if ($SUB==22) {echo " - Esiti";} - if ($SUB==23) {echo " - Hot-Key";} - if ($SUB==25) {echo " -Riciclaggio ContattiEntries";} - if ($SUB==26) {echo " - Alt Auto Dial Esiti";} - if ($SUB==27) {echo " - Agent Codici Pausa";} - if ($SUB==28) {echo " - QC";} - if ($SUB==29) {echo " - Elenco Mixes";} - if ($SUB=='20A') {echo " - Indagine";} - } + { + $hh='campaigns'; $sh='basic'; echo "Modifica Campagna - Vista Generale - $campaign_id"; + if ($SUB==22) {echo " - Esiti";} + if ($SUB==23) {echo " - Hot-Key";} + if ($SUB==25) {echo " -Riciclaggio ContattiEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Esiti";} + if ($SUB==27) {echo " - Agent Codici Pausa";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Elenco Mixes";} + if ($SUB=='20A') {echo " - Indagine";} + } if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Esiti Campagna";} if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Hot-Key Campagna";} if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "El Plomo De la Campaña Recicla Entradas";} @@ -1887,6 +2316,7 @@ if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Mezclas De la Lista De la if ($ADD==311) {$hh='lists'; echo "Modifica Lista";} if ($ADD==3111) {$hh='ingroups'; echo "Modifica Gruppo Inbound";} if ($ADD==3311) {$hh='ingroups'; echo "ModificareDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Modifica Call Menu";} if ($ADD==31111) {$hh='remoteagent'; echo "Modifica Operatori Remoti";} if ($ADD==311111) {$hh='usergroups'; echo "Modifica Gruppi Utenti";} if ($ADD==3111111) {$hh='scripts'; echo "Modifica Script";} @@ -1901,6 +2331,9 @@ if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFICA GRUPPO ALIAS"; if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR";} if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFICA TEMPLATE CONF";} if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICA DEL VETTORE";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFICA TTS ENTRY";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFICA Music On Hold ENTRATA";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFICA VOICEMAIL BOX";} if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFICA IMPOSTAZIONI DI SISTEMA";} @@ -1922,6 +2355,7 @@ if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Modificare la campagna S if ($ADD==411) {$hh='lists'; echo "Modifica Lista";} if ($ADD==4111) {$hh='ingroups'; echo "Modifica Gruppo Inbound";} if ($ADD==4311) {$hh='ingroups'; echo "ModificareDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Modifica Call Menu";} if ($ADD==41111) {$hh='remoteagent'; echo "Modifica Operatori Remoti";} if ($ADD==411111) {$hh='usergroups'; echo "Modifica Gruppi Utenti";} if ($ADD==4111111) {$hh='scripts'; echo "Modifica Script";} @@ -1936,6 +2370,9 @@ if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR" if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "MODIFIQUE EL EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFICA TEMPLATE CONF";} if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICA DEL VETTORE";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFICA TTS ENTRY";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFICA Music On Hold ENTRATA";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFICA VOICEMAIL BOX";} if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFICA IMPOSTAZIONI DI SISTEMA";} @@ -1949,6 +2386,7 @@ if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Claro Del Atasco De la Eme if ($ADD==511) {$hh='lists'; echo "EliminareList";} if ($ADD==5111) {$hh='ingroups'; echo "EliminareIn-Group";} if ($ADD==5311) {$hh='ingroups'; echo "EliminareDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Elimina Call Menu";} if ($ADD==51111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} if ($ADD==511111) {$hh='usergroups'; echo "Cancella Utenti Group";} if ($ADD==5111111) {$hh='scripts'; echo "Cancella Script";} @@ -1962,6 +2400,9 @@ if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "Elimina gruppo ALIAS";} if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "CANC CONF TEMPLATE";} if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "CANC VETTORE";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music On Hold ENTRATA";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE VOICEMAIL BOX";} if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==6) {$hh='users'; echo "EliminareUtente";} @@ -1976,6 +2417,7 @@ if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "La Mezcla De la Lista De if ($ADD==611) {$hh='lists'; echo "EliminareList";} if ($ADD==6111) {$hh='ingroups'; echo "EliminareIn-Group";} if ($ADD==6311) {$hh='ingroups'; echo "EliminareDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Elimina Call Menu";} if ($ADD==61111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} if ($ADD==611111) {$hh='usergroups'; echo "Cancella Utenti Group";} if ($ADD==6111111) {$hh='scripts'; echo "Cancella Script";} @@ -1988,8 +2430,11 @@ if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE TELEFONO ALIAS"; if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "Elimina gruppo ALIAS";} if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL DE LA CANCELACIo`N";} -if ($ADD==621111111111) {$hh='admin'; $sh='templates'; echo "CANC CONF TEMPLATE";} -if ($ADD==621111111111) {$hh='admin'; $sh='carriers'; echo "CANC VETTORE";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "CANC CONF TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "CANC VETTORE";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music On Hold ENTRATA";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE VOICEMAIL BOX";} if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} if ($ADD==73) {$hh='campaigns'; echo "Cuenta Del Plomo De Dialable";} @@ -2007,6 +2452,7 @@ if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Campagnas";} if ($ADD==100) {$hh='lists'; echo "Liste";} if ($ADD==1000) {$hh='ingroups'; echo "In-Groups";} if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Call Menu";} if ($ADD==10000) {$hh='remoteagent'; echo "Operatori Remoti";} if ($ADD==100000) {$hh='usergroups'; echo "Gruppi Utenti";} if ($ADD==1000000) {$hh='scripts'; echo "Script";} @@ -2020,6 +2466,9 @@ if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GRUPPO ALIAS ELENCO";} if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "ELENCO SEEVER";} if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF TEMPLATE ELENCO";} if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "ELENCO CARRIER";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS ENTRY LIST";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "Music On Hold ENTRY LIST";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "VOICEMAIL caselle di riepilogo";} if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "LISTA DE CONFERENCIAS";} if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL LISTA DE CONFERENCIAS";} if ($ADD==550) {$hh='users'; echo "Form di Ricerca";} @@ -2216,53 +2665,53 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### BEGIN get inbound groups listing for checkboxes ##### $xfer_groupsSQL=''; if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) - { - $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - $xfer_groups = $row[1]; - $xfer_groups = preg_replace("/ -$/","",$xfer_groups); - $XFERgroups = explode(" ", $xfer_groups); - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } - if ($ADD==41) - { - $p=0; - $XFERgroup_ct = count($XFERgroups); - while ($p < $XFERgroup_ct) { - $xfer_groups .= " $XFERgroups[$p]"; - $p++; + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; } - $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); - $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); - $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; - } if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } if ($ADD==3) - { - $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; # $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; @@ -2390,10 +2839,10 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get inbound groups listing for checkboxes ##### - ##### BEGIN get campaigns listing for checkboxes ##### - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) { - if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) { $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -2415,26 +2864,26 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; $qc_groups_value=''; $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; - $p=0; - while ($p<100) + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) { - if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) - { - $campaigns_list.=" CHECKED"; - $campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) - { - $qc_campaigns_list.=" CHECKED"; - $qc_campaigns_value .= " -ALL-CAMPAIGNS- -"; - } - if (eregi('ALL-GROUPS',$qc_groups[$p])) - { - $qc_groups_list.=" CHECKED"; - $qc_groups_value .= " -ALL-GROUPS- -"; - } - $p++; + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } $campaigns_list.="> ALL-CAMPAIGNS - GLI UTENTI POSSONO VISUALIZZARE QUALSIASI CAMPAGNA</B><BR>\n"; $qc_campaigns_list.="> ALL-CAMPAIGNS - Gli utenti possono, QC OGNI CAMPAGNA</B><BR>\n"; $qc_groups_list.="> ALL-GROUPS - Gli utenti possono QC INBOUND OGNI GRUPPO</B><BR>\n"; @@ -2452,9 +2901,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; $p=0; - while ($p<100) + while ($p<1000) { - if ($campaign_id_value == $campaigns[$p]) + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) { # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; $campaigns_list .= " CHECKED"; @@ -2485,9 +2934,9 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD $group_name_value = $rowx[1]; $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; $p=0; - while ($p<100) + while ($p<2000) { - if ($group_id_value == $qc_groups[$p]) + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) { $qc_groups_list .= " CHECKED"; $qc_groups_value .= " $group_id_value"; @@ -2505,7 +2954,7 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD ##### END get campaigns listing for checkboxes ##### - if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) { ##### get server listing for dynamic pulldown $stmt="SELECT server_ip,server_description from servers order by server_ip"; @@ -2540,1360 +2989,1452 @@ $NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"AIUTO\" ALI ###################### if ($ADD==99999) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "
LIVELLO CHIAMATE:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL    
VICIDIAL ADMIN: AIUTO


\n"; - -?> -VICIDIAL_USERS TABELLA

- -
-Identificacio`n del usuario - este campo es donde usted pone el número de la identificacio`n del usuario de VICIDIAL, puede ser hasta 8 dígitos en longitud, debe ser por lo menos 2 caracteres en longitud. - -
-
-
-Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. - -
-
-
-Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. - -
-
-
-Nivel de usuario - este menú es donde usted selecciona el nivel de usuario de los usuarios de VICIDIAL. Debe ser un nivel de 1 a registrar en VICIDIAL, debe ser llano mayor de 2 a abrirse una sesio`n como más cercano, deben ser el nivel de usuario 8 o mayor conseguir en la seccio`n de la tela del admin. - -
-
-
-Grupo de usuario - este menú es donde usted selecciona a grupo de usuarios de VICIDIAL que este usuario pertenecerá a. Esto no tiene ninguna restricciones en este tiempo, este es justo subdividir a usuarios y permitir las características futuras basadas sobre e`l. - -
-
-
-conexion del telefono - aquí es para donde usted puede fijar un valor de la conexion del telefono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará el phone_login automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexion de vicidial.php. - -
-
-
-Paso del telefono - aquí es para donde usted puede fijar un valor del paso del telefono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará los phone_pass automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexion de vicidial.php. - -
-
-
-Attivo - Questo campo definisce se lutente è attivo nel sistema e può essere utilizzato VICIDIAL risorse. Il valore di default è Y - -
-
-
-Hot Keys activo - esta opcio`n si el sistema a 1 permite que el usuario utilice la funcio`n ra`pida-dispositioning de Hot Keys adentro vicidial.php. - -
-
-
-El agente elige Ingroups - esta opcio`n si el sistema a 1 permite que el usuario elija los ingroups de los cuales recibirán llamadas cuando ellos conexion a una campaña MÁS CERCANA o DE ENTRADA. Si no el encargado necesitará fijar esto en su pantalla del detalle del usuario de la página del admin. - -
-
-
-Servicios repetidos programar - esta opcio`n no prohibe a agente a la disposicion una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado. - -
-
-
-Servicios repetidos del Agente-Solamente - esta opcio`n permite que un agente fije un servicio repetido de modo que sean el único agente que puede llamar la parte posteriora del cliente. Esto Tambien permite que el agente vea sus listados del servicio repetido y los llame detrás cualquier momento desean a. - -
-
-
-Manual de la llamada del agente - esta opcio`n permite que un agente incorpore manualmente un nuevo plomo en el sistema y los llame. Esto Tambien permite llamar de cualquier número de telefono de su pantalla vicidial y pone esa llamada en su sesio`n. Utilice esta opcio`n con la precaucio`n. - -
-
-
-grabacion de Vicidial - esta opcio`n puede evitar que un agente haga cualquier grabacion despue`s de que se abran una sesio`n a vicidial. Esta opcio`n debe estar encendido para que vicidial siga la sesio`n de la grabacion de la campaña. - -
-
-
-Vicidial transfiere - esta opcio`n puede evitar que un agente abra la transferencia - la sesio`n de la conferencia de vicidial. Si esto es lisiado, el agente no puede llamada de los terceros o la transferencia oculta cualquiera llama. - - 0) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: AIUTO


\n"; + ?> + VICIDIAL_USERS TABELLA

+
-
+ Identificacio`n del usuario - este campo es donde usted pone el número de la identificacio`n del usuario de VICIDIAL, puede ser hasta 8 dígitos en longitud, debe ser por lo menos 2 caracteres en longitud. +
- Un defecto más cercano mezclado - esta opcio`n omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexion. - +
+
+ Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. -
-
-
-Invalidacio`n de la grabacion de VICIDIAL - esta opcio`n seeliminará lo que es la opcio`n en la campaña para la grabacion.LISIADO no eliminará el ajuste de la grabacion de la campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. +
+
+
+ Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. -
-
-
-Agente Maiusc esecuzione Sovrascrive - Questa impostazione si sovrascriverà qualsiasi cosa gli utenti del gruppo di utenti ha fissato per lesecuzione Maiusc. ANDICAPPATI utilizzerà lutente gruppo. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è disattivato. +
+
+
+ Nivel de usuario - este menú es donde usted selecciona el nivel de usuario de los usuarios de VICIDIAL. Debe ser un nivel de 1 a registrar en VICIDIAL, debe ser llano mayor de 2 a abrirse una sesio`n como más cercano, deben ser el nivel de usuario 8 o mayor conseguir en la seccio`n de la tela del admin. -
-
-
-Alert Attivato - Questo campo indica se lagente ha permesso browser avvisi per quando si chiede loro in vicidial.php sessione. Il valore di default è 0 per il NO. +
+
+
+ Grupo de usuario - este menú es donde usted selecciona a grupo de usuarios de VICIDIAL que este usuario pertenecerá a. Esto no tiene ninguna restricciones en este tiempo, este es justo subdividir a usuarios y permitir las características futuras basadas sobre e`l. -
-
-
-La campaña alinea - en esta seccio`n usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank. Anche in questa sezione sono WEB VAR per ciascuna campagna. Questi permettono di ogni agente di avere una diversa variabile stringa che può essere aggiunto al Web Form o SCRIPT scheda URL semplicemente messa - A - web_vars - B - come si farebbe con qualsiasi altro posto campo. +
+
+
+ conexion del telefono - aquí es para donde usted puede fijar un valor de la conexion del telefono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará el phone_login automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexion de vicidial.php. -
-
-
-Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. Usted Tambien podrá fijar la fila, o el nivel de habilidad, en estaseccio`n para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico. Tambien en esta seccio`n está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opcio`n seselecciona en la pantalla del en-grupo. Anche in questa sezione sono WEB VAR per ciascuna campagna. Questi permettono di ogni agente di avere una diversa variabile stringa che può essere aggiunto al Web Form o SCRIPT scheda URL semplicemente messa - A - web_vars - B - come si farebbe con qualsiasi altro posto campo. +
+
+
+ Paso del telefono - aquí es para donde usted puede fijar un valor del paso del telefono del defecto cuando los registros del usuario en vicidial.php. Este valor poblará los phone_pass automáticamente cuando el usuario entra con su usuario-pasar-campaña en la pantalla de la conexion de vicidial.php. -
-
-
-El agente altera la invalidacio`n de los datos del cliente - estaopcio`n se eliminará lo que es la opcio`n en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa que` es elajuste de la campaña. El defecto es NOT_ACTIVE. +
+
+
+ Attivo - Questo campo definisce se lutente è attivo nel sistema e può essere utilizzato VICIDIAL risorse. Il valore di default è Y -
-
-
-Agente Alter clienti Telefono Sovrascrive - Questa opzione sovrascrive lopzione è ciò che nella campagna per modificare il numero di telefono del cliente. NOT_ACTIVE userà qualsiasi impostazione è presente per la campagna. ALLOW_ALTER sempre per consentire lagente di modificare il numero di telefono del cliente, non importa ciò che la campagna è limpostazione. Il valore di default è NOT_ACTIVE. +
+
+
+ E-mail, codice utente e Territorio - Questi sono i campi facoltativi. -
-
-
-Altere las opciones de interfaz del agente - esta opcio`n si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php. +
+
+
+ Hot Keys activo - esta opcio`n si el sistema a 1 permite que el usuario utilice la funcio`n ra`pida-dispositioning de Hot Keys adentro vicidial.php. -
-
-
-Usuarios de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a otros usuarios del igual o de poco nivel de usuario del sistema. +
+
+
+ El agente elige Ingroups - esta opcio`n si el sistema a 1 permite que el usuario elija los ingroups de los cuales recibirán llamadas cuando ellos conexion a una campaña MÁS CERCANA o DE ENTRADA. Si no el encargado necesitará fijar esto en su pantalla del detalle del usuario de la página del admin. -
-
-
-Suprima a grupos de usuario - esta opcio`n si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema. +
+
+
+ Agente Scegli Territori - Questa opzione se impostata a 1 permette all-utente di scegliere i territori che essi ricevere chiamate da quando il login per un manuale o una campagna INBOUND_MAN. In caso contrario, l-utente sarà impostato per utilizzare tutti i territori che sono fissati a far parte dei territori amministrativi Utente sezione. -
-
-
-La cancelacio`n enumera - esta opcio`n si el sistema a 1 permite que el usuario suprima listas vicidial del sistema. +
+
+
+ Scheduled Callbacks - Questa opzione consente un agente a disposizione una chiamata come CALLBK e scegliere la data e l-ora in cui il piombo sarà riattivato. -
-
-
-La cancelacio`n hace campaña - esta opcio`n si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema. +
+
+
+ Servicios repetidos del Agente-Solamente - esta opcio`n permite que un agente fije un servicio repetido de modo que sean el único agente que puede llamar la parte posteriora del cliente. Esto Tambien permite que el agente vea sus listados del servicio repetido y los llame detrás cualquier momento desean a. -
-
-
-En-Grupos de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema. +
+
+
+ Manual de la llamada del agente - esta opcio`n permite que un agente incorpore manualmente un nuevo plomo en el sistema y los llame. Esto Tambien permite llamar de cualquier número de telefono de su pantalla vicidial y pone esa llamada en su sesio`n. Utilice esta opcio`n con la precaucio`n. -
-
-
-Suprima los agentes alejados - esta opcio`n si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema. +
+
+
+ grabacion de Vicidial - esta opcio`n puede evitar que un agente haga cualquier grabacion despue`s de que se abran una sesio`n a vicidial. Esta opcio`n debe estar encendido para que vicidial siga la sesio`n de la grabacion de la campaña. - 0) - { +
+
+
+ Vicidial transfiere - esta opcio`n puede evitar que un agente abra la transferencia - la sesio`n de la conferencia de vicidial. Si esto es lisiado, el agente no puede llamada de los terceros o la transferencia oculta cualquiera llama. + + 0) + { + ?> +
+
+
+ Un defecto más cercano mezclado - esta opcio`n omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexion. + +
-
+
- La carga conduce - esta opcio`n si el sistema a 1 permite que el usuario cargue los plomos vicidial en la tabla del vicidial_list por el cargador basado tela del plomo. - + Invalidacio`n de la grabacion de VICIDIAL - esta opcio`n seeliminará lo que es la opcio`n en la campaña para la grabacion.LISIADO no eliminará el ajuste de la grabacion de la campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. -
-
-
-Detalle de la campaña - esta opcio`n si el sistema a 1 permite que el usuario visio`n y modifique los elementos de la pantalla del detalle de la campaña. +
+
+
+ Agente Maiusc esecuzione Sovrascrive - Questa impostazione si sovrascriverà qualsiasi cosa gli utenti del gruppo di utenti ha fissato per lesecuzione Maiusc. ANDICAPPATI utilizzerà lutente gruppo. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è disattivato. -
-
-
-Acceso de AGC Admin - esta opcio`n si el sistema a 1 permite a usuario a la conexion a las páginas astGUIclient del admin. +
+
+
+ Alert Attivato - Questo campo indica se lagente ha permesso browser avvisi per quando si chiede loro in vicidial.php sessione. Il valore di default è 0 per il NO. -
-
-
-La cancelacio`n de AGC telefona - esta opcio`n si el sistema a 1 permite que el usuario suprima entradas del telefono en las páginas astGUIclient del admin. +
+
+
+ Consentire Alerts - Questo campo ti dà la possibilità di consentire browser agente di avvisi per essere abilitato l-agente per le chiamate quando entrano in loro sessione vicidial.php. Di default è 0 per il NO. -
-
-
-Escrituras de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima las escrituras de la campaña en la pantalla de la modificacio`n de la escritura. +
+
+
+ La campaña alinea - en esta seccio`n usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank. Anche in questa sezione sono WEB VAR per ciascuna campagna. Questi permettono di ogni agente di avere una diversa variabile stringa che può essere aggiunto al Web Form o SCRIPT scheda URL semplicemente messa - A - web_vars - B - come si farebbe con qualsiasi altro posto campo. -
-
-
-Modifique los plomos - esta opcio`n si el sistema a 1 permite que el usuario modifique los plomos en la página de los resultados de la búsqueda del plomo de la seccio`n del admin. +
+
+
+ Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. Usted Tambien podrá fijar la fila, o el nivel de habilidad, en estaseccio`n para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico. Tambien en esta seccio`n está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opcio`n seselecciona en la pantalla del en-grupo. Anche in questa sezione sono WEB VAR per ciascuna campagna. Questi permettono di ogni agente di avere una diversa variabile stringa che può essere aggiunto al Web Form o SCRIPT scheda URL semplicemente messa - A - web_vars - B - come si farebbe con qualsiasi altro posto campo. -
-
-
-Cambie la campaña del agente - esta opcio`n si el sistema a 1 permite que el usuario altere la campaña que un agente está registrado en mientras que se registran en e`l. +
+
+
+ El agente altera la invalidacio`n de los datos del cliente - estaopcio`n se eliminará lo que es la opcio`n en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa que` es elajuste de la campaña. El defecto es NOT_ACTIVE. - 0) - { +
+
+
+ Agente Alter clienti Telefono Sovrascrive - Questa opzione sovrascrive lopzione è ciò che nella campagna per modificare il numero di telefono del cliente. NOT_ACTIVE userà qualsiasi impostazione è presente per la campagna. ALLOW_ALTER sempre per consentire lagente di modificare il numero di telefono del cliente, non importa ciò che la campagna è limpostazione. Il valore di default è NOT_ACTIVE. + +
+
+
+ Utente campi personalizzati - Questi cinque campi possono essere utilizzati per vari scopi, e possono essere organizzati in forma gli indirizzi web e script come user_custom_one e così via. + +
+
+
+ Altere las opciones de interfaz del agente - esta opcio`n si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php. + +
+
+
+ Usuarios de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a otros usuarios del igual o de poco nivel de usuario del sistema. + +
+
+
+ Suprima a grupos de usuario - esta opcio`n si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema. + +
+
+
+ La cancelacio`n enumera - esta opcio`n si el sistema a 1 permite que el usuario suprima listas vicidial del sistema. + +
+
+
+ La cancelacio`n hace campaña - esta opcio`n si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema. + +
+
+
+ En-Grupos de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema. + +
+
+
+ Suprima los agentes alejados - esta opcio`n si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema. + + 0) + { + ?> +
+
+
+ La carga conduce - esta opcio`n si el sistema a 1 permite que el usuario cargue los plomos vicidial en la tabla del vicidial_list por el cargador basado tela del plomo. + +
-
+
- La cancelacio`n se filtra - esta opcio`n permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema. - + Detalle de la campaña - esta opcio`n si el sistema a 1 permite que el usuario visio`n y modifique los elementos de la pantalla del detalle de la campaña. -
-
-
-Tiempos de la llamada de la cancelacio`n - esta opcio`n permite que elusuario pueda suprimir expedientes vicidial de los tiempos de lallamada y expedientes vicidial de los tiempos de la llamada del estadodel sistema. +
+
+
+ Acceso de AGC Admin - esta opcio`n si el sistema a 1 permite a usuario a la conexion a las páginas astGUIclient del admin. -
-
-
-Modifique El Tiempo De la Llamadas - This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen. +
+
+
+ La cancelacio`n de AGC telefona - esta opcio`n si el sistema a 1 permite que el usuario suprima entradas del telefono en las páginas astGUIclient del admin. -
-
-
-Modifique las secciones - estas opciones permiten que el usuariovisio`n y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la seccio`n, perono el detalle o la pantalla de la modificacio`n de un expediente enesa seccio`n. +
+
+
+ Escrituras de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima las escrituras de la campaña en la pantalla de la modificacio`n de la escritura. -
-
-
-La visio`n divulga - esta opcio`n permite que el usuario visio`n losinformes de VICIDIAL. +
+
+
+ Modifique los plomos - esta opcio`n si el sistema a 1 permite que el usuario modifique los plomos en la página de los resultados de la búsqueda del plomo de la seccio`n del admin. - 0) - { +
+
+
+ Cambie la campaña del agente - esta opcio`n si el sistema a 1 permite que el usuario altere la campaña que un agente está registrado en mientras que se registran en e`l. + + 0) + { + ?> +
+
+
+ La cancelacio`n se filtra - esta opcio`n permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema. + -
-
-
- QC Attivato - Questa opzione permette allutente di accedere alla schermata di controllo della qualità agente.
-
+
- QC Utente Livello - Questa impostazione consente di definire ciò che lagente di controllo della qualità è il livello utente. Ciò dettare il livello di funzionalità per lagente nel QC sezione:
- 1 - Modificare Nulla
- 2 - Modificare Nulla Salvo Stato
- 3 - Modificare tutti i campi
- 4 - Verificare prima tornata di CQ
- 5 - Vedi QC Statistiche
- 6 - Capacità di modificare i record finito
- 7 - Livello Manager
+ Tiempos de la llamada de la cancelacio`n - esta opcio`n permite que elusuario pueda suprimir expedientes vicidial de los tiempos de lallamada y expedientes vicidial de los tiempos de la llamada del estadodel sistema.
-
+
- QC record Pass - Questa opzione permette di specificare lagente di un record che ha superato il primo turno delle QC dopo aver esaminato il record. + Modifique El Tiempo De la Llamadas - This option allows the user to view and modify the call times and state call times records. A user doesn't need this option enabled if they only need to change the call times option on the campaigns screen.
-
+
- QC record Fine - Questa opzione permette di specificare lagente che ha finito di registrare il secondo turno delle QC dopo aver esaminato il passato record. + Modifique las secciones - estas opciones permiten que el usuariovisio`n y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la seccio`n, perono el detalle o la pantalla de la modificacio`n de un expediente enesa seccio`n.
-
+
- QC record Impegni - Questa opzione permette di specificare lagente che un record è stato commesso in QC. Essa non può più essere modificato da chiunque. - + La visio`n divulga - esta opcio`n permite que el usuario visio`n losinformes de VICIDIAL. -
-
-
-Aggiungi orologio Entra record - Questa opzione permette allutente di aggiungere record alla orologio Accedi. + 0) + { + ?> +
+
+
+ QC Attivato - Questa opzione permette allutente di accedere alla schermata di controllo della qualità agente. -
-
-
-Modificare orologio Entra record - Questa opzione permette allutente di modificare i record nella orologio Accedi. +
+
+
+ QC Utente Livello - Questa impostazione consente di definire ciò che lagente di controllo della qualità è il livello utente. Ciò dettare il livello di funzionalità per lagente nel QC sezione:
+ 1 - Modificare Nulla
+ 2 - Modificare Nulla Salvo Stato
+ 3 - Modificare tutti i campi
+ 4 - Verificare prima tornata di CQ
+ 5 - Vedi QC Statistiche
+ 6 - Capacità di modificare i record finito
+ 7 - Livello Manager
-
-
-
-Elimina orologio Entra record - Questa opzione consente allutente di eliminare i record nel registro orologio. +
+
+
+ QC record Pass - Questa opzione permette di specificare lagente di un record che ha superato il primo turno delle QC dopo aver esaminato il record. -
-
-
-Agente Accesso API - Questa opzione permette laccount da utilizzare con lAPI vicidial agente comandi. +
+
+
+ QC record Fine - Questa opzione permette di specificare lagente che ha finito di registrare il secondo turno delle QC dopo aver esaminato il passato record. -
-
-
-Shift Manager esecuzione Sovrascrive - Questa impostazione, se impostato a 1 consentirà un manager per inserire il proprio utente e la password su un agente schermo per scavalcare le restrizioni al passaggio di un agente di sessione, se lagente sta tentando di accedere al di fuori del loro passaggio. Il valore di default è 0. - -
-
-
-Download Liste - Questa impostazione, se impostato a 1 consentirà un manager per il download cliccare sul link elenco nella parte inferiore della schermata di modifica un elenco di esportare lintero contenuto di un elenco di file di dati di un appartamento. Il valore di default è 0. - -
-
-
-Rapporti Export - Questa impostazione, se impostato su 1 consente di accedere a un manager di esportazione chiamata relazioni sulle relazioni schermo. Il valore di default è 0. Per la relazione chiede di esportazione, per il seguente campo è utilizzato per le esportazioni:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds - - - - - - -



- -VICIDIAL_CAMPAIGNS TABELLA

-
-
-Identificacio`n de la campaña - Úste es el nombre corto de la campaña, e`l no es editable despue`s de la sumisio`n inicial, no puede contener espacios y debe estar entre 2 y 8 caracteres en longitudh. - -
-
-
-Nombre de la campaña - esta es la descripcio`n de la campaña, debe estar entre 6 y 40 caracteres en longitud. - -
-
-
-Descripcio`n de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud. - -
-
-
-Fecha del cambio de la campaña - esta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera. - -
-
-
-La fecha pasada de la conexion de la campaña - esta es la vezúltima que un agente fue registrado en esta campaña. - -
-
-
-Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva. - -
-
-
-Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en e`l. - -
-
-
-Extension del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`rese de que la extension este` en lugar en el extensions.conf y eso que señala al nombre de fichero abajo. - -
-
-
-Nombre del archivo del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`rese de que el nombre de fichero sea 10 caracteres en longitud o menos y que el archivo está en lugar en el directorio de /var/lib/asterisk/sounds. - -
-
-
-Forma del Web - aquí es donde usted puede fijar el Web page de encargo que será abierto cuando el usuario chasca encendido el boton de la FORMA del WEB. Per personalizzare la stringa di ricerca dopo il modulo web, è sufficiente avviare il modulo web con VAR e quindi lURL che si desidera utilizzare, che sostituisce le variabili con i nomi di variabile che si desidera utilizzare - A - phone_number - B -- proprio come nella sezione SCRIPT scheda. - -
-
-
-Web Form-Target Qui è possibile impostare la pagina web personalizzata cornice del modulo web che sarà aperto a quando lutente fa clic sul pulsante Web Form. Il valore di default è _blank. - -
-
-
-Permita Closers - aquí es donde usted puede fijar si los usuarios de esta campaña tendrán la opcio`n para enviar la llamada a un más cercano. - -
-
-
-Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. - -
-
-
-Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opcio`n demuestre para arriba. - - 0) - { +
+
+
+ QC record Impegni - Questa opzione permette di specificare lagente che un record è stato commesso in QC. Essa non può più essere modificato da chiunque. + -
-
-
- Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opcio`n para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijo` esto a N.Default es N.
-
+
- Estado del dial - aquí es adonde usted fija los estados que usted está deseando marcar encendido dentro de las listas que son activas para la campaña abajo. Para agregar otro estado al dial, seleccio`nelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar. + Aggiungi orologio Entra record - Questa opzione permette allutente di aggiungere record alla orologio Accedi.
-
+
- Orden de la lista - Este menú es donde usted selecciona co`mo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo: -
  - DOWN: seleziona i primi contatti caricati nella tabella vicidial_list -
  - UP: seleziona gli ultimi contatti caricati nella tabella vicidial_list -
  - UP PHONE: seleziona il numero di telefono piu` grande e poi scorre verso il basso -
  - DOWN PHONE: seleziona il numero di telefono piu` piccolo e poi scorre verso l`alto -
  - UP LAST NAME: comienzo con los nombres pasados comenzando con Z y trabajos su manera abajo -
  - DOWN LAST NAME: comienzo con los nombres pasados comenzando con A y trabajos su manera para arriba -
  - UP COUNT: comienzo con los plomos y los trabajos llamados su manera abajo -
  - DOWN COUNT: comienzo con menos plomos y trabajos llamados su manera para arriba -
  - DOWN COUNT 2nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada otro lead(Must para no tener NEW seleccionado en los estados del dial) -
  - DOWN COUNT 3nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada tercer lead(Must para no tener NEW seleccionado en los estados del dial) -
  - DOWN COUNT 4th NEW: comienzo con menos plomos y trabajos llamados que su manera para arriba que inserta un NEW plomo en cada adelante conduzca (no debe tener NEW seleccionado en los estados del dial) + Modificare orologio Entra record - Questa opzione permette allutente di modificare i record nella orologio Accedi.
-
+
- Tolva llana - este es cuántos conducen los intentos de la escritura de VDhopper para mantener la tabla del vicidial_hopper para esta campaña. Si funciona la escritura de VDhopper cada minuto, haga esto levemente mayor que el número de plomos que usted entra a trave`s en un minuto. + Elimina orologio Entra record - Questa opzione consente allutente di eliminare i record nel registro orologio.
-
+
- Filtro del plomo - este es un me`todo de filtrar sus plomos usando un fragmento de una pregunta del SQL. Utilice esta característica con la precaucio`n, e`l es fácil de parar el marcar accidentalmente con la alteracio`n más leve a la declaracio`n del SQL. El defecto no es NINGUNO. + Agente Accesso API - Questa opzione permette laccount da utilizzare con lAPI vicidial agente comandi.
-
+
- Reajuste de la fuerza de la tolva - esto permite que usted limpie fuera del contenido de la tolva sobre la sumisio`n de la forma. Debe ser llenada otra vez cuando la escritura de VDhopper funciona. + Shift Manager esecuzione Sovrascrive - Questa impostazione, se impostato a 1 consentirà un manager per inserire il proprio utente e la password su un agente schermo per scavalcare le restrizioni al passaggio di un agente di sessione, se lagente sta tentando di accedere al di fuori del loro passaggio. Il valore di default è 0.
-
+
- Me`todo del dial - Este campo es la manera de definir co`mo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el me`todo del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y despue`s no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos me`todos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los me`todos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profe`tico. INBOUND_MAN consente di collocare lagente manuale comporre le chiamate provenienti da una campagna elenco pur essendo in grado di prendere le chiamate in entrata tra manuale quadrante chiamate. + Download Liste - Questa impostazione, se impostato a 1 consentirà un manager per il download cliccare sul link elenco nella parte inferiore della schermata di modifica un elenco di esportare lintero contenuto di un elenco di file di dati di un appartamento. Il valore di default è 0.
-
+
- Nivel auto del dial - aquí es adonde usted fija cuántos alinea VICIDIAL debe utilizar por medios del agente activo cero 0 que el marcar del automo`vil está apagado y los agentes chascarán para marcar cada número. Si no VICIDIAL mantendrá líneas que marcan iguales a los agentes activos multiplicados por el nivel del dial para llegar cuántas líneas debe permitir esta campaña en cada servidor. El checkbox de la INVALIDACIo`N del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el me`todo del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente. + Rapporti Export - Questa impostazione, se impostato su 1 consente di accedere a un manager di esportazione chiamata relazioni sulle relazioni schermo. Il valore di default è 0. Per la relazione chiede di esportazione, per il seguente campo è utilizzato per le esportazioni:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner
-
+
- Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N. + Cancellare dalle liste DNC - Questa impostazione, se impostato a 1 permetterà un gestore di rimuovere i numeri di telefono dagli elenchi DNC nel sistema VICIDIAL. + + + + + + +



+ + VICIDIAL_CAMPAIGNS TABELLA

+
+
+ Identificacio`n de la campaña - Úste es el nombre corto de la campaña, e`l no es editable despue`s de la sumisio`n inicial, no puede contener espacios y debe estar entre 2 y 8 caracteres en longitudh.
-
+
- Límite del porcentaje de la gota - este campo es donde usted fijo` ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un me`todo adaptante-profe`tico del dial, NO MANUAL o delCOCIENTE. + Nombre de la campaña - esta es la descripcio`n de la campaña, debe estar entre 6 y 40 caracteres en longitud.
-
+
- El máximo adapta el dial llano - este campo es donde usted fijo` ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un me`todo adaptante-profe`tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales. + Descripcio`n de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud.
-
+
- El tiempo más último del servidor - este campo es utilizadosolamente por el me`todo del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a co`mo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado. + Fecha del cambio de la campaña - esta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera.
-
+
- Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profe`tica más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los me`todos del dial del MANUALo del COCIENTE. + La fecha pasada de la conexion de la campaña - esta es la vezúltima que un agente fue registrado en esta campaña.
-
+
- Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los me`todos del dial del MANUAL o del COCIENTE. + Last Campagna Call Data - Questa è l-ultima volta che una chiamata è stata gestita da un agente registrato in questa campagna.
-
+
- Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMo`VIL. Este campo no es utilizado por el me`todo MANUAL del dial. + Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva.
-
+
- Coda di priorità - Questa impostazione è utilizzata per definire lordine in cui le chiamate in uscita da questa campagna dovrebbe essere risolta in relazione alle chiamate in entrata, se questa è una campagna in modalità blended. + Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en e`l.
-
+
- Alt-Nu`mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA me`todos del dial cuando no hay contacto en elnúmero de telefono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el me`todoMANUAL del dial. PROROGATO alternano i numeri sono numeri caricato nel sistema al di fuori della norma portare informazioni schermo. Uso PROROGATO si possono avere centinaia di numeri di telefono per un singolo cliente record. + Extension del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`rese de que la extension este` en lugar en el extensions.conf y eso que señala al nombre de fichero abajo.
-
+
- Descanso del dial - si está definido, llamadas que normalmente retraso despue`s de que el descanso definido en extensions.conf en lugar de otro descanso en esta cantidad de segundos si es menos que el descanso de extensions.conf. Esto permite descansos del dial rápidamente que cambian del servidor al servidor y a limitar los efectos a una sola campaña. Si usted está teniendo muchos de llamadas del contestador automático o de Casella Vocale usted puede desear intentar cambiar este valor entre a 21-26 y ver si los resultados mejoran. + Nombre del archivo del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`rese de que el nombre de fichero sea 10 caracteres en longitud o menos y que el archivo está en lugar en el directorio de /var/lib/asterisk/sounds.
-
+
- Campagna VDAD estensione - Questo campo consente un trasferimento personalizzato VDAD estensione. Questo vi permette di utilizzare diversi metodi di gestione delle chiamate a seconda della tua campagna. -- 8364 - 8368 stessa -- 8365 - Will inviare la chiamata ad un solo agente sullo stesso server come la chiamata è in -- 8366 - Usato-1 per la stampa e campagne di indagine -- 8367 - Il primo a provare a inviare la chiamata a un agente sul server locale, poi si guarda su altri server - - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on -- 8369 - Utilizzato per Segreteria di rilevamento, dopo che, lo stesso comportamento come 8368 -- 8373 - Utilizzato per Segreteria di rilevamento dopo lo stesso comportamento come 8366 + Forma del Web - aquí es donde usted puede fijar el Web page de encargo que será abierto cuando el usuario chasca encendido el boton de la FORMA del WEB. Per personalizzare la stringa di ricerca dopo il modulo web, è sufficiente avviare il modulo web con VAR e quindi lURL che si desidera utilizzare, che sostituisce le variabili con i nomi di variabile che si desidera utilizzare - A - phone_number - B -- proprio come nella sezione SCRIPT scheda.
-
+
- Mensaje del contestador automático - este campo está para entrar en una extension para cegar llamadas de la transferencia a cuando el agente consigue un contestador automático y chasca encendido el boton del mensaje del contestador automático en el marco de la conferencia de la transferencia. Usted debe fijar esto exten para arriba en el dial plan - extensions.conf - y se cerciora de que juega un archivo audio despue`s que cuelga para arriba. + Web Form-Target Qui è possibile impostare la pagina web personalizzata cornice del modulo web che sarà aperto a quando lutente fa clic sul pulsante Web Form. Il valore di default è _blank.
-
+
- AMD envían a la VM exten - este menú permite que usted defina si un mensaje este` dejado en un contestador automático cuando se detecta la llamada será remitido inmediatamente a la extension del Contestar-Ma`quina-Mensaje si AMD es activo y se determina que la llamada es un contestador automático. + Permita Closers - aquí es donde usted puede fijar si los usuarios de esta campaña tendrán la opcio`n para enviar la llamada a un más cercano.
-
+
- CPD AMD Azione - Se si utilizza il Sangoma ParaXip chiamate di avanzamento di rilevamento di software allora si desidera attivare questa impostazione o limpostazione di DISPO disposizione che la chiamata come AA e appende se la chiamata è in fase di elaborazione e non è stato inviato a un agente o un messaggio che ancora invierà la richiesta alla Segreteria definito Messaggio per questa campagna. Il valore di default è ANDICAPPATI. + Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente.
-
+
- El marcar nume`rico del Alt del agente - esta opcio`n permite que un agente marque manualmente el número de telefono o el campo alterno address3 despue`s de que se haya llamado el número principal. + Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opcio`n demuestre para arriba. + + 0) + { + ?> +
+
+
+ Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opcio`n para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijo` esto a N.Default es N. + +
+
+
+ Estado del dial - aquí es adonde usted fija los estados que usted está deseando marcar encendido dentro de las listas que son activas para la campaña abajo. Para agregar otro estado al dial, seleccio`nelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar. + +
+
+
+ Orden de la lista - Este menú es donde usted selecciona co`mo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo: +
  - DOWN: seleziona i primi contatti caricati nella tabella vicidial_list +
  - UP: seleziona gli ultimi contatti caricati nella tabella vicidial_list +
  - UP PHONE: seleziona il numero di telefono piu` grande e poi scorre verso il basso +
  - DOWN PHONE: seleziona il numero di telefono piu` piccolo e poi scorre verso l`alto +
  - UP LAST NAME: comienzo con los nombres pasados comenzando con Z y trabajos su manera abajo +
  - DOWN LAST NAME: comienzo con los nombres pasados comenzando con A y trabajos su manera para arriba +
  - UP COUNT: comienzo con los plomos y los trabajos llamados su manera abajo +
  - DOWN COUNT: comienzo con menos plomos y trabajos llamados su manera para arriba +
  - DOWN COUNT 2nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada otro lead(Must para no tener NEW seleccionado en los estados del dial) +
  - DOWN COUNT 3nd NEW: comienzo con menos plomos y trabajos llamados su manera para arriba que inserta un NEW plomo en cada tercer lead(Must para no tener NEW seleccionado en los estados del dial) +
  - DOWN COUNT 4th NEW: comienzo con menos plomos y trabajos llamados que su manera para arriba que inserta un NEW plomo en cada adelante conduzca (no debe tener NEW seleccionado en los estados del dial) +
  - RANDOM: Randomly afferra prima all-interno della statuti e gli elenchi di cui +
  - Rialzi ultimi guardia: Ordina per il tempo più recente chiamata locale per la porta +
  - Ribassi ultimi guardia: Ordina per il tempo più antiche chiamata locale per la porta +
  - UP RANK: Inizia con il rango più elevato e si sta facendo strada verso il basso +
  - DOWN RANK: Inizia con il rango più basso e si sta facendo strada fino +
  - UP OWNER: Inizia con i proprietari che iniziano con Z e lavora la sua strada verso il basso +
  - DOWN OWNER: Inizia con i proprietari che inizia con A e si sta facendo strada fino +
  - UP TIMEZONE: Inizia con fuso orario orientale e opere West +
  - DOWN TIMEZONE: Inizia con fuso orario occidentale e orientale opere + +
+
+
+ Tolva llana - este es cuántos conducen los intentos de la escritura de VDhopper para mantener la tabla del vicidial_hopper para esta campaña. Si funciona la escritura de VDhopper cada minuto, haga esto levemente mayor que el número de plomos que usted entra a trave`s en un minuto. + +
+
+
+ Filtro del plomo - este es un me`todo de filtrar sus plomos usando un fragmento de una pregunta del SQL. Utilice esta característica con la precaucio`n, e`l es fácil de parar el marcar accidentalmente con la alteracio`n más leve a la declaracio`n del SQL. El defecto no es NINGUNO. + +
+
+
+ Drop Lockout Time - Questo è un numero di ore che DROP abbandonare le chiamate sarà impedito di essere composto, per impostare disabilitare a 0. Questa impostazione è molto utile in paesi come il Regno Unito, dove vi sono norme che impediscono la convocazione tentativo di clienti entro le 72 ore di un abbandono, o DROP. Di default è 0. + +
+
+
+ Reajuste de la fuerza de la tolva - esto permite que usted limpie fuera del contenido de la tolva sobre la sumisio`n de la forma. Debe ser llenada otra vez cuando la escritura de VDhopper funciona. + +
+
+
+ Me`todo del dial - Este campo es la manera de definir co`mo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el me`todo del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y despue`s no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos me`todos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los me`todos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profe`tico. INBOUND_MAN consente di collocare lagente manuale comporre le chiamate provenienti da una campagna elenco pur essendo in grado di prendere le chiamate in entrata tra manuale quadrante chiamate. + +
+
+
+ Nivel auto del dial - aquí es adonde usted fija cuántos alinea VICIDIAL debe utilizar por medios del agente activo cero 0 que el marcar del automo`vil está apagado y los agentes chascarán para marcar cada número. Si no VICIDIAL mantendrá líneas que marcan iguales a los agentes activos multiplicados por el nivel del dial para llegar cuántas líneas debe permitir esta campaña en cada servidor. El checkbox de la INVALIDACIo`N del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el me`todo del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente. + +
+
+
+ Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N. + +
+
+
+ Límite del porcentaje de la gota - este campo es donde usted fijo` ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un me`todo adaptante-profe`tico del dial, NO MANUAL o delCOCIENTE. + +
+
+
+ El máximo adapta el dial llano - este campo es donde usted fijo` ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un me`todo adaptante-profe`tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales. + +
+
+
+ El tiempo más último del servidor - este campo es utilizadosolamente por el me`todo del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a co`mo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado. + +
+
+
+ Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profe`tica más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los me`todos del dial del MANUALo del COCIENTE. + +
+
+
+ Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los me`todos del dial del MANUAL o del COCIENTE. + +
+
+
+ Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMo`VIL. Este campo no es utilizado por el me`todo MANUAL del dial. + +
+
+
+ Coda di priorità - Questa impostazione è utilizzata per definire lordine in cui le chiamate in uscita da questa campagna dovrebbe essere risolta in relazione alle chiamate in entrata, se questa è una campagna in modalità blended. + +
+
+
+ Multiple campagna Drop Rate Group - Questa funzione consente di impostare una campagna come membro di una campagna Drop Rate gruppo, o un gruppo di campagne cui dell-uomo chiede risposta e le chiamate Drop per tutte le campagne del gruppo verranno combinati in una percentuale condivisa goccia, o tasso di abbandono. Questo vi permette di eseguire più campagne contemporaneamente e controllare più facilmente il tasso di drop. Ciò è particolarmente utile nel Regno Unito, dove ai permessi di questo metodo di calcolo con il tasso di drop campagna di raggruppamento per la stessa società, anche se vi sono numerose campagne di tale società è in esecuzione durante il giorno stesso. Per attivare questa per una campagna, basta selezionare un gruppo dall-elenco. Ci sono 10 gruppi definiti nel sistema di default, è possibile contattare l-amministratore di sistema per aggiungere di più. Di default è disabilitato. + +
+
+
+ Alt-Nu`mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA me`todos del dial cuando no hay contacto en elnúmero de telefono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el me`todoMANUAL del dial. PROROGATO alternano i numeri sono numeri caricato nel sistema al di fuori della norma portare informazioni schermo. Uso PROROGATO si possono avere centinaia di numeri di telefono per un singolo cliente record. + +
+
+
+ Descanso del dial - si está definido, llamadas que normalmente retraso despue`s de que el descanso definido en extensions.conf en lugar de otro descanso en esta cantidad de segundos si es menos que el descanso de extensions.conf. Esto permite descansos del dial rápidamente que cambian del servidor al servidor y a limitar los efectos a una sola campaña. Si usted está teniendo muchos de llamadas del contestador automático o de Casella Vocale usted puede desear intentar cambiar este valor entre a 21-26 y ver si los resultados mejoran. + +
+
+
+ Campagna VDAD estensione - Questo campo consente un trasferimento personalizzato VDAD estensione. Questo vi permette di utilizzare diversi metodi di gestione delle chiamate a seconda della tua campagna. + - 8364 - 8368 stessa + - 8365 - Will inviare la chiamata ad un solo agente sullo stesso server come la chiamata è in + - 8366 - Usato-1 per la stampa e campagne di indagine + - 8367 - Il primo a provare a inviare la chiamata a un agente sul server locale, poi si guarda su altri server + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Utilizzato per Segreteria di rilevamento, dopo che, lo stesso comportamento come 8368 + - 8373 - Utilizzato per Segreteria di rilevamento dopo lo stesso comportamento come 8366 + +
+
+
+ Messaggio Segreteria Telefonica - Questo campo è per entrare nel prompt di giocare quando l-agente riceve una segreteria telefonica e fa clic sul pulsante Messaggio Segreteria Telefonica nella cornice conferenza di trasferimento. È necessario impostare questo sia un file audio nel negozio di audio o un programma di TTS prompt se TTS è attivato sul tuo sistema. + +
+
+
+ WaitForSilence Opzioni - Se Wait For Silence è desiderato per le chiamate che vengono rilevati come Segreterie allora questo campo ha queste opzioni. Ci sono due impostazioni separate da una virgola, la prima opzione è il tempo per individuare il silenzio in millisecondi e la seconda opzione è per quante volte a rilevare che prima di giocare il messaggio. Di default è vuota per disabili. Un valore standard per questo sarebbe attendere 2 secondi di silenzio per due volte: 2000,2 + +
+
+
+ AMD envían a la VM exten - este menú permite que usted defina si un mensaje este` dejado en un contestador automático cuando se detecta la llamada será remitido inmediatamente a la extension del Contestar-Ma`quina-Mensaje si AMD es activo y se determina que la llamada es un contestador automático. + +
+
+
+ CPD AMD Azione - Se si utilizza il Sangoma ParaXip chiamate di avanzamento di rilevamento di software allora si desidera attivare questa impostazione o limpostazione di DISPO disposizione che la chiamata come AA e appende se la chiamata è in fase di elaborazione e non è stato inviato a un agente o un messaggio che ancora invierà la richiesta alla Segreteria definito Messaggio per questa campagna. Il valore di default è ANDICAPPATI. + +
+
+
+ El marcar nume`rico del Alt del agente - esta opcio`n permite que un agente marque manualmente el número de telefono o el campo alterno address3 despue`s de que se haya llamado el número principal. + +
+
+
+ Segundos de la llamada de la gota - el número de segundos a partirdel tiempo que la línea de cliente se escoge encima de hasta que lallamada se considera una GOTA, so`lo se aplica a las llamadas desalida. + +
+
+
+ Goccia dazione - Questo menu consente di scegliere che cosa succede a una chiamata quando si è in attesa di più di quello che si trova nel campo Secondi Call Drop. Hangup semplicemente riagganciare la chiamata, inviare il messaggio di chiamare il Gota Extensions che lei ha definito di seguito, segreteria invierà la chiamata alla casella vocale che è stato definito sotto IN_GROUP e invia la chiamata in ingresso al gruppo che è definito qui di seguito + +
+
+
+ seguro puerto Exten - este ser dial plan extension que desear seguropuerto audio archivo ser localizar en en su servidor. + +
+
+
+ Casella Vocale - si estuvieron definidas, las llamadas que CAERÍAN normalmente en lugar de otro serían ordenadas a esta caja del voicemail para oír y para dejar un mensaje. + +
+
+
+ Trasferimento Drop Group - In caso di caduta di azione è fissato a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si raggiunge il Call Drop Secondi. + +
+
+
+ Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexion a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta funcio`n no se necesita encampañas de CLOSER-type. El defecto es N. + +
+
+
+ N. Dialing Hopper - Se questo è abilitato, la tramoggia non avrà una durata di questa campagna. Questa opzione è disponibile solo se il metodo di selezione è impostato su Manuale o INBOUND_MAN. Si raccomanda di non attivare questa opzione se si dispone di un database molto grande di piombo, oltre 100.000 contatti. Con il n. telefonico Hopper, le seguenti caratteristiche non funzionano: il riciclaggio di piombo, di auto-alt-dialing, mix di lista, la lista degli ordini con X. NUOVO. Se si desidera utilizzare solo il proprietario di composizione è necessario disporre di n. telefonico Hopper abilitato. Di default è N per disabili. + +
+
+
+ Unico proprietario Dialing - Se questo è abilitato, l-agente riceverà solo porta che sono entro i parametri per la proprietà. Se questo è impostato su USER allora l-agente deve essere definita dall-utente nel database come proprietario di questo piombo. Se questo è impostato su un territorio il proprietario del piombo deve coincidere con il territorio di cui la schermata Utente Modifica per questo agente. Se questo è impostato su USER_GROUP poi il proprietario del piombo deve corrispondere al gruppo di utenti che l-agente è un membro di. Per questa funzione il metodo di selezione deve essere impostato su Manuale o INBOUND_MAN e n. telefonico Hopper deve essere attivato. Di default è NESSUNO per disabili. + + 0) + { + ?> +
+
+
+ Agente Seleziona Territori - Se questa opzione è attivata e l-agente appartiene ad almeno un territorio, l-agente avrà la possibilità di selezionare i territori per comporre conduce da. L-agente viene visualizzato un elenco dei territori disponibili su login e avranno la possibilità di tornare indietro a quella lista territorio, quando si fermò a cambiare i loro territori. Per questa funzione l-unico proprietario di composizione opzione deve essere impostata al territorio e territori utente deve essere abilitato nelle impostazioni di sistema. + + +
+
+
+ Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en laseccio`n del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO. + +
+
+
+ Identificacio`n de la mezcla de la lista - identificacio`n de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuacio`n especial. + +
+
+
+ Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud. + +
+
+
+ Detalle de la mezcla de la lista - la composicio`n de la entrada de lamezcla de la lista. Contiene la identificacio`n de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada. + +
+
+
+ Me`todo de la mezcla de la lista - el me`todo de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER. + +
+
+
+ Agente Screen estensione Alt Dial - Questa funzione consente di agenti per laccesso esteso alternano i numeri di telefono per porta oltre la normale Alt Telefono e Address3 settori che possono essere utilizzati in VICIDIAL per i numeri di telefono al di là del numero di telefono principale. Lestensione numeri di telefono può essere selezionato automaticamente utilizzando la funzione Auto-Alt-Dial VICIDIAL in funzione delle impostazioni della campagna, ma che consentono questa funzione di agente dello schermo consentirà anche per lagente di chiamare questi numeri dal loro agente schermo così come modificare le loro informazioni. + +
+
+
+ Indagine primo file audio - Questo è il nome del file audio che viene riprodotto non appena il cliente sceglie il telefono cellulare durante lesecuzione di un sondaggio campagna. + +
+
+
+ Indagine sulle cifre DTMF - Questo campo è il punto in cui definire le cifre che un cliente può premere come opzione su una campagna di indagine. cifre DTMF sono validi0123456789*#. Tutte le opzioni eccetto per i non interessati, terzo e quarto opzioni cifra di passare al percorso di indagine chiamata al metodo. + +
+
+
+ Indagine non interessa Digit - Questo campo è dove si definisce il cliente premuto cifre che dimostrano che non sono interessati. + +
+
+
+ Indagine non interessa Stato - Questo campo è se si seleziona lo stato che saranno utilizzati per non essere interessato. DNC Se viene utilizzato e la campagna è impostata per usare DNC poi il numero di telefono sarà automaticamente aggiunto alla lista VICIDIAL interno DNC.e, eventualmente, la campagna specifici DNC elenco. + +
+
+
+ Indagine Opt-in Audio File - Questo è il nome del file audio che viene riprodotto quando il cliente ha optato-in per lindagine, non hanno scelto lopt-out non ha risposto o se la non-azione-reazione è impostato su OptOut. Dopo questo file audio viene riprodotto, il metodo di indagine di azione. + +
+
+
+ Indagine non interessa File audio - Questo è il nome del file audio che viene riprodotto quando il cliente ha scelto lopt-out di indagine, non hanno scelto lopt-in o non ha risposto se il non-azione-reazione è impostato su OptIn. Dopo questo file audio viene riprodotto, linvito sarà appeso. + +
+
+
+ Indagine Metodo - Questa opzione definisce che cosa succede a una chiamata dopo che il cliente ha scelto lopt-in. AGENT_XFER invierà linvito al prossimo disponibili agente. Segreteria invierà la chiamata alla casella vocale che è specificato nel campo Casella Vocale. ESTENSIONE invierà al cliente di definire lestensione della Indagine Xfer Estensione campo. Hangup si bloccherà il cliente. CAMPREC_60_WAV invierà al cliente di avere una registrazione fatta con la loro risposta, questa registrazione sarà collocato in una cartella denominata come la campagna allinterno della campagna di registrazione Indagine Directory. + +
+
+
+ Indagine n. risposta Azione - Questo è dove si definisce che cosa accadrà se non vi è alcuna risposta alla domanda del sondaggio. OptIn solo inviare la chiamata al metodo di indagine, se il cliente preme un cifre DTMF. OptOut invierà al cliente al metodo di indagine, anche se non si preme uno cifre DTMF. + +
+
+
+ Indagine risposta Digit Mappa - Questa è la sezione in cui è possibile definire una descrizione per andare a ciascuna opzione cifre DTMF che il cliente può scegliere. + +
+
+
+ Indagine Xfer Estensione - Se il metodo di indagine è stato selezionato ESTENSIONE quindi chiamare il cliente sarebbe stata destinata a questo dialplan estensione. + +
+
+
+ Indagine campagna di registrazione Repertorio - Se il metodo di indagine è stato selezionato CAMPREC_60_WAV allora la risposta dei clienti vengono registrati e messi in una directory di nome, dopo la campagna allinterno di questa directory. + +
+
+
+ Terza indagine Digit - Questo permette di avere un percorso di terza convocazione, se la terza cifra come definito in questo campo è premuto da parte del cliente. + +
+
+
+ Digit Indagine Quarta - Questo permette di avere un percorso di quarta chiamata se la quarta cifra come definito in questo campo è premuto da parte del cliente. + +
+
+
+ Terza indagine di file audio - Questo è il terzo file audio da riprodurre alla selezione da parte del cliente della facoltà di terza cifra. + +
+
+
+ Terza indagine Status - Questo è il terzo stato utilizzato per la chiamata alla selezione da parte del cliente della facoltà di terza cifra. + +
+
+
+ Terza indagine Extension - Questa è la terza proroga utilizzato per la chiamata alla selezione da parte del cliente della facoltà di terza cifra. Il valore predefinito è 8.300, che si blocca immediatamente la chiamata dopo il messaggio di file audio viene riprodotto. + +
+
+
+ Agent Visualizzare Dialable Leads - Questa opzione, se attivata mostrerà il numero di porta dialable disponibili nella campagna nella schermata agente. Questo numero è aggiornato nel sistema di una volta al minuto e sarà aggiornata sullo schermo agente ogni pochi secondi. + +
-
+
- Segundos de la llamada de la gota - el número de segundos a partirdel tiempo que la línea de cliente se escoge encima de hasta que lallamada se considera una GOTA, so`lo se aplica a las llamadas desalida. + Llamada siguiente del agente - esto se determina que` agente recibe la llamada siguiente que está disponible: +
  - random: o`rdenes por el valor al azar de la actualizacio`n en la tabla de los vicidial_live_agents +
  - oldest_call_start: las o`rdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. +
  - oldest_call_finish: las o`rdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. +
  - overall_user_level: las o`rdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. +
  - campaign_rank: o`rdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls: o`rdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - longest_wait_time: ordini per la quantità di tempo agente è stato attivamente in attesa di una chiamata.
-
+
- Goccia dazione - Questo menu consente di scegliere che cosa succede a una chiamata quando si è in attesa di più di quello che si trova nel campo Secondi Call Drop. Hangup semplicemente riagganciare la chiamata, inviare il messaggio di chiamare il Gota Extensions che lei ha definito di seguito, segreteria invierà la chiamata alla casella vocale che è stato definito sotto IN_GROUP e invia la chiamata in ingresso al gruppo che è definito qui di seguito + Tiempo de la llamada local - aquí es adonde usted fijo` durante que` horas usted quisiera marcar, según lo determinado por el tiempo local en está en cuál usted está llamando. Esto es controlada por co`digo de área y ajustada por tiempo de los ahorros de la luz del día si es aplicable. Las pautas generales en los E.E.U.U. para el negocio al negocio son los 9am a los 5pm y el negocio a las llamadas del consumidor es los 9am a los 9pm.
-
+
- seguro puerto Exten - este ser dial plan extension que desear seguropuerto audio archivo ser localizar en en su servidor. + Prefijo del dial - este campo permite más fácilmente cambiar una trayectoria de marcar a salir con un diverso me`todo sin hacer una recarga en asterisco. El defecto es 9 basados sobre un 91NXXNXXXXXX en el dial plan - extensions.conf.
-
+
- Casella Vocale - si estuvieron definidas, las llamadas que CAERÍAN normalmente en lugar de otro serían ordenadas a esta caja del voicemail para oír y para dejar un mensaje. + Omita el co`digo del telefono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N.
-
+ +
+ Campaña CallerID - este campo permite enviar de un número de encargo del callerid en las llamadas de salida. Úste es el número que demostraría para arriba en el callerid de la persona que usted está llamando. El defecto es DESCONOCIDO. Esta opcio`n está solamente disponible si usted está utilizando PRIs - ISDN T1 o E1 - que tienen la característica de encargo del callerid se giraron. Esta característica puede Tambien trabajar con los troncos IAX2 dependiendo de lo que admite su abastecedor. El callerID de encargo se aplica solamente a las llamadas puestas para la campaña de VICIDIAL directamente, cualquier tercer persona llama o las transferencias no enviarán el callerID de encargo. NOTA: A veces el poner DESCONOCIDO o PRIVADO en el campo rendirá enviar de su número del callerID del defecto por su portador con las llamadas. Usted puede desear probar esto y poner 0000000000 en el campo del callerid en lugar de otro si usted no desea enviarle CallerID. + +
+
+
+ Extension de Rec de la Campaña - este campo permite para que una extension de encargo de la grabacion sea utilizada con VICIDIAL. Esto permite que usted utilice diversas extensiones dependiendo sobre cuánto tiempo usted desea permitir una grabacion máxima y que` tipo de codec usted desea registrar adentro. El defecto exten es 8309 que si usted sigue los ejemplos de SCRATCH_INSTALL registrarán en el formato de WAV para hasta que una hora. Otra opcio`n incluida en los ejemplos es 8310 que registrarán en el formato del GSM para hasta que una hora. + +
+
+
+ grabacion de la campaña - este menú permite que usted elija que`nivel de la grabacion se permite en esta campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. + +
+
+
+ Nombre de fichero de Rec de la campaña - este campo permite que usted modifique el nombre para requisitos particulares de la grabacion cuando la grabacion de la campaña es ONDEMAND o ALLCALLS. Las variables permitidas son CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. El defecto es FULLDATE_AGENT y parecería este 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que parecería este TESTCAMP_51020103108_3125551212. 50 char max. + +
+
+
+ La registracion retrasa - para la grabacion de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabacion en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0. + +
+
+
+ Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. + +
+
+
+ Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo`vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. + +
+
+
+ Xfer-Conf DTMF - Questi quattro campi consentire di avere due insiemi di trasferimento Conferenza e preset DTMF. Quando la chiamata o la campagna viene caricata, lo script vicidial.php mostrerà due pulsanti per il trasferimento-frame conferenze e auto-popolano il numero-to-dial e l-invio campi DTMF quando viene premuto. Se si desidera consentire consultivo Trasferimenti, un Fronter a una più stretta, hanno l-agente di utilizzare la casella di controllo CONSULTIVO, che non funziona per i non di terze parti ViciDial chiamate consultivo. Per coloro che hanno il solo clic agente Dial Con il tasto del cliente. Poi l-agente può lasciare-3 VIE-CALL e passare alla loro chiamata successiva. Se si desidera consentire i trasferimenti Blind dei clienti di uno script VICIDIAL AGI per la registrazione o un IVR, poi AXFER posto nel numero di-to-dial campo. È inoltre possibile specificare l-estensione personalizzata dopo la AXFER, ad esempio se si vuole fare una chiamata ad un IVR speciale è stato impostato per l-estensione 83.900 si metterebbe AXFER83900 del numero-to-dial campo. + +
+
+
+ Trasferimento rapido Button - Questa opzione aggiunge un pulsante di trasferimento rapido alla schermata agente sotto il pulsante Transfer-Conf che permetterà un clic cieco trasferimento di chiamate al selezionato In-gruppo o numero. IN_GROUP invierà le chiamate al Default Xfer gruppo per questa campagna, o In-gruppo se ci fosse una chiamata in entrata. Le opzioni preimpostate invierà le chiamate al preset selezionato. Di default è N per disabili. + +
+
+
+ Trasferimento PrePopulate Preset - Questa opzione di inserire il numero di campo Dial nella cornice Conferenza di trasferimento dello schermo agente se definito. Di default è N per disabili. + +
+
+
+ Timer azione - Questa funzione consente di attivare azioni dopo un certo periodo di tempo. D1 e D2 le opzioni di chiamata lancerà un appello per il trasferimento Conferenza preset Numero e li trasmette alla sessione di agente, questo è di solito utilizzato per semplici applicazioni IVR AGI convalida o semplicemente a svolgere un messaggio pre-registrato. FORM aprirà l-indirizzo web form. MESSAGE_ONLY semplicemente visualizzare il messaggio che è nel campo sottostante. NESSUNO sarà disabilitare questa funzione ed è il default. + +
+
+
+ Timer azione Message - Questo è il messaggio che appare sullo schermo agente al momento l-azione Timer è attivato. + +
+
+
+ Timer azione Secondi - Questa è la quantità di tempo dopo la chiamata è collegata al cliente che l-azione del timer viene attivato. Predefinito è -1, che è anche attivo. + +
+
+
+ Servicios repetidos programar - esta opcio`n no prohibe a agente a la disposicion una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado. + +
+
+
+ Segundos de Wrap Up - el número de los segundos para forzar un agenteesperar antes de permitir que reciban o que marquen otra llamada. Elcontador de tiempo comienza tan pronto como un agente cuelgue paraarriba en su cliente - o en el caso del número alterno que marcacuando el agente acaba el plomo - defecto sea los segundos 0. Si elcontador de tiempo funciona hacia fuera antes de que el agente tengadispositioned la llamada, el agente todavía no se mueve encendido ala llamada siguiente hasta que seleccionan una disposicion. + +
+
+
+ Mensaje de Wrap up - esto es un mensaje campaña-especi`fico que seexhibirá en la pantalla del wrapup si se fijan los segundos delwrapup. + +
+
+
+ Lista interna del uso DNC - esto define si esta campaña es filtrarlos plomos contra la lista interna de DNC. Si se fija a Y, la tolvabuscará cada número de telefono en la lista de DNC antes de ponerlaen la tolva. Si está en la lista de DNC entonces que cambiará eseconduce estado a DNCL así que no puede ser marcada. El defecto es N. L-opzione AreaCode è proprio come l-opzione Y, tranne che viene utilizzato per filtrare inoltre un codice di tutta l-area del Nord America ad essere composto, in questo caso utilizzando la voce 201XXXXXXX nella lista DNC potrebbe bloccare tutte le chiamate al 201 AreaCode se abilitato. + +
+
+
+ Usa campagna DNC List - Questo definisce se questa è una campagna per filtrare DNC conduce contro una lista che è specifico per tale campagna solo. Se è impostato su Y, la tramoggia sarà per ciascuno il numero di telefono nel campo specifico DNC prima immissione nella tramoggia. Se si è in campagna specifici DNC elenco allora cambierà status che portano a DNCC e non può quindi essere selezionato. Il valore predefinito è N. L-opzione AreaCode è proprio come l-opzione Y, tranne che viene utilizzato per filtrare inoltre un codice di tutta l-area del Nord America ad essere composto, in questo caso utilizzando la voce 201XXXXXXX nella lista DNC potrebbe bloccare tutte le chiamate al 201 AreaCode se abilitato. + +
+
+
+ Grupos De entrada Permitidos - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. + +
+
+
+ La pausa del agente cifra activo - permite que los agentes seleccionenun co`digo de la pausa cuando chascan encendido el boton de PAUSA envicidial.php. Los co`digos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinio`n de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N. VIGORE costringerà gli agenti di scegliere un codice PAUSE se fai clic sul pulsante PAUSE. + +
+
+
+ Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N. + +
+
+
+ Disattiva Alter clienti Telefono - Se è impostata a Y, non cambia il numero di telefono del cliente, quando un agente disposizioni la chiamata. Il valore di default è Y. Utilizzare l-opzione Nascondi per rimuovere completamente il numero di telefono del cliente dal display agente. + +
+
+
+ Agente Mostra Coda Conte - Se è impostata a Y, ogni volta che un cliente è in attesa di un agente, la coda invita visualizzazione nella parte superiore dello schermo agente diventa rosso e mostra il numero di chiamate in attesa. Il valore di default è Y. + +
+
+
+ Identificacio`n manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente. + +
+
+
+ Manuale Dial Filtro - Questo ti permette di filtrare le chiamate che gli agenti fanno chiamare in modalità manuale per questa campagna da qualsiasi combinazione delle seguenti operazioni: DNC - a kick out, CAMPAIGNLISTE - il numero deve essere allinterno di elenchi per la campagna, NESSUNO - nessun filtro sul manuale o remoto veloce dial elenchi. + +
+
+
+ Appunti di agente Schermata Copia - Questa funzione è al momento attivo solo per Internet Explorer. Questa funzione consente di selezionare un campo che verrà copiato negli appunti il computer dellagente computer su una chiamata in corso linvio di un agente. Comune utilizza per questo sono per facilitare lincollatura di numeri di conto corrente o numeri di telefono in eredità applicazioni client sul computer agente. + +
+
+
+ 3-Way chiamate in uscita CallerID - Questo è ciò che definisce come inviato il numero in uscita callerID da 3-way chiamate effettuate dallagente, CAMPAGNA utilizza la campagna personalizzata callerID, il Cliente utilizza il numero di clienti che è attiva su schermo e gli agenti AGENT_PHONE usa il callerID per il telefono cellulare che lagente è registrato in. AGENT_CHOOSE lagente permette di scegliere quale callerID da utilizzare per le chiamate a 3 vie da un elenco di scelte. + +
+
+
+ 3-Way Call Prefisso Chiamata - Questo definisce quello che è usato come prefisso per chiamare il 3-way chiamate, di default è vuoto in modo che il prefisso campagna quadrante è usato, passthru in modo che tu possa sentire suonare è 88. + + 0) + { + ?> +
+
+
+ QC Attivato - Limpostazione di questo campo a Y consente, per lagente di Controllo della Qualità funzioni. Il valore di default è N. + +
+
+
+ Status QC - La zona dove si è stati di selezionare quale porta deve essere andato oltre, QC, dal sistema. Mettere un segno di spunta accanto allo status che si desidera, QC, di rivedere. + +
+
+
+ QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per una campagna. I giorni della settimana sono ignorati per queste funzioni. + +
+
+
+ QC ottenere il record di lancio- Ciò consente una delle seguenti azioni per essere attivato su un QC agente riceve un nuovo record. + +
+
+
+ QC Visualizza Registrazione - Ciò consente una registrazione che può essere collegato con la QC record di essere esposto nel QC agente schermo. + +
+
+
+ QC Indirizzo Web Form - Questo è lindirizzo web che un agente, QC può andare quando si fa clic sul link contenuto nel Web Form, QC schermo. + +
+
+
+ QC Script - Questo è lo script che possono essere utilizzati da agenti QC nel SCRIPT scheda nella schermata QC. + + +
+
+
+ Vtiger Ricerca Categoria - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definirà in cui la pagina di ricerca vtiger_search.php per il numero di telefono che è stato inserito. Ci sono 4 opzioni che possono essere utilizzati in questo campo: PIOMBO-Questa opzione ricerca attraverso la porta solo Vtiger, CONTO-Questa opzione ricerca attraverso il Vtiger conti e tutti i contatti e sub-contatti per il numero di telefono, VENDITORE-Questa opzione solo attraverso la ricerca Vtiger venditori, ACCTID-Questa opzione funziona solo per i conti e si prendono le vicidial vendor_lead_code campo e provare a cercare il Vtiger ID account. Se si tenta senza successo di qualsiasi altro metodi elencati che hai selezionato. Opzioni multiple possono essere utilizzati per ogni ricerca, ma su grandi banche dati questo non è raccomandato. Il valore di default è PIOMBO. UNIFIED_CONTACT-Questa opzione si usa il beta Vtiger 5.1.0 funzionalità per la ricerca in base al numero di telefono e aprire una pagina di ricerca in Vtiger. + +
+
+
+ Vtiger Cerca Dead Accounts - Se l-integrazione Vtiger è attivata nelle impostazioni di sistema, quindi, questa impostazione definire se i conti saranno eliminati cercato quando l-agente clic WEB form per la ricerca nel sistema Vtiger. Disabili conduce da non essere cercati, ASK-soppresso porta sarà ricerche e la pagina di ricerca vtiger web chiederà l-agente se vogliono fare il conto Vtiger attivo, risorgere-automaticamente rendere l-account cancellato di nuovo attivo e adotterà le agente per lo schermo conto immediatamente dopo aver fatto clic sul WEB FORM. Di default è disabilitato. + +
+
+
+ Vtiger Crea chiamate record - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se una nuova attività Vtiger è stato creato per registrare la chiamata quando lagente va al vtiger_search pagina. Il valore di default è Y. L-opzione DISPO creerà un record di chiamata per l-account Vtiger senza l-agente di dover andare alla pagina di ricerca vtiger attraverso il Web Form. + +
+
+
+ Vtiger Crea record Piombo - Se è attivata Vtiger integrazione nel sistema e le impostazioni Vtiger Ricerca Categoria PIOMBO comprende quindi questa impostazione definisce se un nuovo record Vtiger piombo viene creato quando lagente va a vtiger_search la pagina di registrazione e non è di avere trovato la chiamata numero di telefono. Il valore di default è Y. + +
+
+
+ Vtiger Screen Login - Se Vtiger di integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se lutente è connesso al Vtiger interfaccia automaticamente quando laccesso al VICIDIAL. Il valore di default è Y. L-opzione NEW_WINDOW aprirà una nuova finestra al login alla schermata VICIDIAL agente. + +
+
+
+ Vtiger stato della chiamata - Se l-integrazione Vtiger è attivata nelle impostazioni di sistema, quindi, questa impostazione definirà se lo stato del Conto Vtiger verrà aggiornato con lo stato della chiamata VICIDIAL dopo che è stato dispositioned. Di default è N. + +
+
+
+ CRM Popup Login - Se impostato a Y, il CRM Popup indirizzo viene utilizzato per aprire una nuova finestra il login agente per questa campagna. Di default è N. + +
+
+
+ CRM Popup Indirizzo - L-indirizzo web di una pagina di login CRM, può avere variabili popolato come l-indirizzo web form, con i VAR nella parte anteriore e l-utilizzo - A user_custom_one - - B - per definire le variabili. + +
+
+
+ Start Call URL - Questo web indirizzo URL non è visto che l-agente, ma è chiamato ogni volta che una chiamata viene inviata ad un agente, se viene popolato. Utilizza le stesse variabili, come i campi del modulo web e script. Questo URL non può essere un percorso relativo. L-URL Start non funziona per le chiamate in linea manuale. Predefinita è vuota. + +
+
+
+ Dispo Call URL - Questo web indirizzo URL non è visto che l-agente, ma è chiamato ogni volta che una chiamata è dispositioned da un agente, se viene popolato. Utilizza le stesse variabili, come i campi del modulo web e script. dispo e talk_time sono le variabili che si possono utilizzare per recuperare l-agente definito disposizione per la chiamata e il tempo effettivo di conversazione in secondi della telefonata. Questo URL non può essere un percorso relativo. Predefinita è vuota. + +
+
+
+ Gruppo Alias ammessi - Se si desidera consentire agli agenti di utilizzare il vostro gruppo alias quindi è necessario impostare questo gruppo Y. Alias sono spiegate più in Admin sezione, che consentono di selezionare diversi agenti callerIDs manuale per le chiamate in uscita che essi possono posto. Il valore di default è N. + +
+
+
+ Predefinito Gruppo Alias - Se si hanno consentito Gruppo Alias allora questo è il gruppo alias che viene selezionato per impostazione predefinita quando prima lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO. + +
+
+
+ Agente chiede View in coda - Se impostato a nulla, ma NESSUNO, gli agenti saranno in grado di visualizzare i dettagli sulle chiamate che sono in attesa in coda nelle loro schermo agente. Se impostato su un valore numerico, le chiamate visualizzato sarà limitata al numero selezionato. Di default è NESSUNO. + +
+
+
+ Visualizzazione delle chiamate in coda Launch - Questa impostazione, se impostato su AUTO avranno la chiede in cornice della coda mostra fino al momento del login da parte dell-agente nella schermata di agente. Di default è MANUALE. + +
+
+
+ Agente chiede Grab in coda - Questa opzione se impostata a Y permetterà all-agente di selezionare la chiamata che vogliono prendere dalle chiamate in coda visualizzazione facendo clic su di esso, mentre in pausa. Gli agenti saranno in grado di afferrare le chiamate in entrata o chiamate il trasferimento, non le chiamate in uscita. Di default è N. + +
+
+
+ Call Agent Re-Queue Button - Questa opzione se impostata a Y aggiungerà il bottone ri-cliente Coda alla schermata di agente, l-agente che consente di inviare la chiamata in una coda AGENTDIRECT che è riservata per il solo agente. Di default è N. + +
+
+
+ Agente di pausa dopo ogni chiamata - Questa opzione se impostata a Y si fermerà l-agente, dopo ogni chiamata automaticamente. Di default è N. + + + + + +



+ + VICIDIAL_LISTE TABELLA

+
+
+ Identificacio`n de la lista - Úste es el nombre nume`rico de la lista, e`l no es editable despue`s de la sumisio`n inicial, debe contener solamente números y debe estar entre 2 y 8 caracteres en longitud. Must be a number greater than 100. + +
+
+
+ Nombre de la lista - esta es la descripcio`n de la lista, debe estar entre 2 y 20 caracteres en longitud. + +
+
+
+ Descripcio`n de la lista - este es el campo de la nota para la lista,e`l es opcional. + +
+
+
+ Fecha del cambio de la lista - esta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera. + +
+
+
+ Fecha de la llamada del último de la lista - esta es la vez últimaque conduce fue marcado de esta lista. + +
+
+
+ Campaña - esta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente. + +
+
+
+ Activo - esto define si la lista debe ser marcada encendido o no. + +
+
+
+ Reajuste el Conducir-Llamar-Estado para esta lista - esto reajusta todos los plomos en esta lista a N para "no llamado puesto que reajuste pasado" y significa que cualquier plomo puede ahora ser llamado si es el estado derecho según lo definido en la pantalla de la campaña. + +
+
+
+ Reset Times - Questo campo vi permette di mettere a volte, separati da un trattino-, che questa lista sarà automaticamente reimpostato dal sistema. I tempi devono essere in formato 24 ore senza punteggiatura, ad esempio 0.800-1.700 sarebbe reimpostare l-elenco di 8 e 5 tutti i giorni. Di default è vuota. + +
+
+
+ Agent Script Override - Se questo campo è impostato, questo sarà lo script che l-agente vede sullo schermo del proprio posto di script campagna quando il piombo è da questo elenco. Di default non è impostato. + +
+
+
+ Campagna CID Override - Se questo campo è impostato, andranno a sostituire la campagna CallerID che è impostato per le chiamate che vengono posti a porta in questo elenco. Di default non è impostato. + +
+
+
+ Messaggio Segreteria Telefonica Override - Se questo campo è impostato, questo ignorare il messaggio di Segreteria insieme nella campagna per i clienti in questo elenco. Di default non è impostato. +
+
+
+ Drop Inbound Group Override - Se questo campo è impostato, in questo gruppo verranno utilizzati per le chiamate in uscita all-interno di questa lista che scendono da campagna in uscita, invece di cadere in gruppo insieme nella schermata di dettaglio della campagna. Di default non è impostato. + +
+
+
+ XFER-Conf Numero Override - Questi cinque campi consentono di ignorare le impostazioni predefinite Conferenza di trasferimento del numero, quando la guida è da questo elenco. Predefinita è vuota. + + +
+
+
+ DNC VICIDIAL List - Questo Dont Call elenco contiene ogni piombo che è stato fissato ad uno stato di DNC nel sistema. Attraverso il ELENCHI - ADD numero DNC pagina si ha la possibilità di aggiungere manualmente i numeri di questo elenco in modo che essi non saranno chiamati da campagne che utilizzano la lista interno DNC. Vi è inoltre la possibilità di aggiungere porta alla campagna specifici DNC liste per le campagne che hanno loro. Se hai attiva l-opzione DNC insieme a AreaCode allora è anche possibile utilizzare il codice voci area jolly come questo 201XXXXXXX per bloccare tutte le chiamate al 201, quando attivata AreaCode. + + + +



+ + VICIDIAL_INBOUND_GROUPS TABELLA

+
+
+ Identificacio`n de grupo - Úste es el nombre corto del grupo de entrada, e`l no es editable despue`s de la sumisio`n inicial, no debe contener cualquier espacio y debe estar entre 2 y 20 caracteres en longitud. + +
+
+
+ Nombre de grupo - esta es la descripcio`n del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios . + +
+
+
+ Color del grupo - este es el color que exhibe en el cliente app de VICIDIAL cuando una llamada viene adentro en este grupo. Debe estar entre 2 y 7 caracteres de largo. Si esto es una definicio`n del color de la tuerca hexagonal usted debe recordar poner a # al principio de la secuencia o VICIDIAL no trabajará correctamente. + +
+
+
+ Activo - esto se determina si este grupo demuestra para arriba en la caja de la seleccio`n cuando un agente de VICIDIAL entra. + +
+
+
+ Forma del Web - esta es la Direccion de encargo que el chascar en el boton de la FORMA del WEB en VICIDIAL le llevará para las llamadas que vienen adentro en este grupo. + +
+
+
+ Llamada siguiente del agente - esto se determina que` agente recibe la llamada siguiente que está disponible: +
  - random: o`rdenes por el valor al azar de la actualizacio`n en la tabla de los vicidial_live_agents +
  - oldest_call_start: las o`rdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. +
  - oldest_call_finish: las o`rdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. +
  - overall_user_level: las o`rdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. +
  - inbound_group_rank: o`rdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible. +
  - fewest_calls: o`rdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - campaign_rank: o`rdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: ordini per la quantità di tempo agente è stato attivamente in attesa di una chiamata. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Exhibicio`n de Fronter - este campo se determina si el agente de entrada de VICIDIAL tendría el name(if del fronter allí es uno) exhibido en el campo del estado cuando la llamada viene al agente. + +
+
+
+ Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. + +
+
+
+ Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo`vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. + +
+
+
+ Xfer-Conf DTMF - Questi quattro campi consentire di avere due insiemi di trasferimento Conferenza e preset DTMF. Quando la chiamata o la campagna viene caricata, lo script vicidial.php mostrerà due pulsanti per il trasferimento-frame conferenze e auto-popolano il numero-to-dial e l-invio campi DTMF quando viene premuto. Se si desidera consentire consultivo Trasferimenti, un Fronter a una più stretta, hanno l-agente di utilizzare la casella di controllo CONSULTIVO, che non funziona per i non di terze parti ViciDial chiamate consultivo. Per coloro che hanno il solo clic agente Dial Con il tasto del cliente. Poi l-agente può lasciare-3 VIE-CALL e passare alla loro chiamata successiva. Se si desidera consentire i trasferimenti Blind dei clienti di uno script VICIDIAL AGI per la registrazione o un IVR, poi AXFER posto nel numero di-to-dial campo. È inoltre possibile specificare l-estensione personalizzata dopo la AXFER, ad esempio se si vuole fare una chiamata ad un IVR speciale è stato impostato per l-estensione 83.900 si metterebbe AXFER83900 del numero-to-dial campo. + +
+
+
+ Timer azione - Questa funzione consente di attivare azioni dopo un certo periodo di tempo. D1 e D2 le opzioni di chiamata lancerà un appello per il trasferimento Conferenza preset Numero e li trasmette alla sessione di agente, questo è di solito utilizzato per semplici applicazioni IVR AGI convalida o semplicemente a svolgere un messaggio pre-registrato. FORM aprirà l-indirizzo web form. MESSAGE_ONLY semplicemente visualizzare il messaggio che è nel campo sottostante. NESSUNO sarà disabilitare questa funzione ed è il default. Questa impostazione sovrascrive le impostazioni della campagna. + +
+
+
+ Timer azione Message - Questo è il messaggio che appare sullo schermo agente al momento l-azione Timer è attivato. + +
+
+
+ Timer azione Secondi - Questa è la quantità di tempo dopo la chiamata è collegata al cliente che l-azione del timer viene attivato. Predefinito è -1, che è anche attivo. + +
+
+
+ Call Drop Secondi - Il numero di secondi di una chiamata rimane in coda, prima di essere considerato un DROP. + +
+
+
+ Goccia dazione - Questo menu consente di scegliere che cosa succede a una chiamata quando si è in attesa di più di quello che si trova nel campo Secondi Call Drop. Hangup semplicemente riagganciare la chiamata, inviare il messaggio di chiamare il Gota Extensions che lei ha definito di seguito, segreteria invierà la chiamata alla casella vocale che è stato definito sotto IN_GROUP e invia la chiamata in ingresso al gruppo che è definito qui di seguito. + +
+
+
+ Gota Extensions - In caso di caduta di azione è fissato al messaggio, questa è la linea che il piano di estensione invito sarà inviato a se raggiunge Call Drop Secondi. + +
+
+
+ Casella Vocale - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+

Trasferimento Drop Group - In caso di caduta di azione è fissato a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si raggiunge il Call Drop Secondi.
-
+
- Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexion a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta funcio`n no se necesita encampañas de CLOSER-type. El defecto es N. + Tiempo de la llamada - este es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours.
-
+
- Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en laseccio`n del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO. + After Hours Azione - Loperazione da eseguire se si tratta di ore dopo, come definito nel tempo per la chiamata in entrata questo gruppo. Hangup hangup immediatamente la chiamata, si MESSASGE riprodurre il file in After Hours Messaggio Filenam campo, ESTENSIONE invierà la chiamata al After Hours Estensione nel dialplan Casella Vocale e invia la chiamata alla casella vocale di cui il settore After Hours Casella Vocale , IN_GROUP invierà la chiamata in ingresso al gruppo selezionato nel gruppo After Hours Trasferimento selezionare lista. Il valore di default è MESSAGGIO.
-
+
- Identificacio`n de la mezcla de la lista - identificacio`n de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuacio`n especial. + Despue`s del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la accio`n se fija alMENSAJE. El defecto es VM-ADIO`S
-
+
- Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud. + Despue`s de la extension de las horas - la extension dialplan paraenviar la llamada si la accio`n se fija a la Extension. El defecto es8300.
-
+
- Detalle de la mezcla de la lista - la composicio`n de la entrada de lamezcla de la lista. Contiene la identificacio`n de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada. + Despue`s de las horas Casella Vocale - la caja del voicemail para enviar lallamada si la accio`n se fija a VOICEMAIL.
-
+
- Me`todo de la mezcla de la lista - el me`todo de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER. + After Hours Trasferimento Group - Se After Hours azione è destinata a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si entra nel gruppo in al di fuori del regime di chiamata tempo definito per il gruppo in.
-
+
- Agente Screen estensione Alt Dial - Questa funzione consente di agenti per laccesso esteso alternano i numeri di telefono per porta oltre la normale Alt Telefono e Address3 settori che possono essere utilizzati in VICIDIAL per i numeri di telefono al di là del numero di telefono principale. Lestensione numeri di telefono può essere selezionato automaticamente utilizzando la funzione Auto-Alt-Dial VICIDIAL in funzione delle impostazioni della campagna, ma che consentono questa funzione di agente dello schermo consentirà anche per lagente di chiamare questi numeri dal loro agente schermo così come modificare le loro informazioni. + N. agenti n. Queueing - Se questo campo è impostato su Y o NO_PAUSED allora non le chiamate saranno messi in coda per questo gruppo se non ci sono agenti di login e le chiamate andrà l-agente No No Action coda. L-opzione NO_PAUSED non anche inviare i chiamanti in coda se non ci sono solo agenti in pausa in gruppo. Di default è N.
-
+
- Indagine primo file audio - Questo è il nome del file audio che viene riprodotto non appena il cliente sceglie il telefono cellulare durante lesecuzione di un sondaggio campagna. + Nessun agente Nessuna azione di coda - Se Nessun agente n. coda è attivato, allora questo campo definisce dove la chiamata andrà se non ci sono agenti in In-Group. Di default è il messaggio, questo gioca il file audio nel campo di azione di valore e poi riattacca.
-
+
- Indagine sulle cifre DTMF - Questo campo è il punto in cui definire le cifre che un cliente può premere come opzione su una campagna di indagine. cifre DTMF sono validi0123456789*# + Nessun agente n. coda azione Value - Questo è il valore per l-azione di cui sopra. Predefinito è nbdy-avail-to-take-call|vm-goodbye.
-
+
- Indagine non interessa Digit - Questo campo è dove si definisce il cliente premuto cifre che dimostrano che non sono interessati. + Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE ---. Questo campo, come con gli altri campi audio in In-gruppi, con l-eccezione della Agente Alert Filename, può avere più file audio giocato se si mette un tubo di elenco separato di file audio nel campo.
-
+
- Indagine non interessa Stato - Questo campo è se si seleziona lo stato che saranno utilizzati per non essere interessato. DNC Se viene utilizzato e la campagna è impostata per usare DNC poi il numero di telefono sarà automaticamente aggiunto alla lista VICIDIAL interno DNC.e, eventualmente, la campagna specifici DNC elenco. + Lettura del messaggio di benvenuto - Queste impostazioni selezionate, quando per la riproduzione del messaggio di benvenuto definito, SEMPRE svolgerà ogni volta, non potrà mai mai giocare, IF_WAIT_ONLY solo riprodurre il messaggio di benvenuto, se la chiamata non vada immediatamente ad un agente , e YES_UNLESS_NODELAY avranno sempre il messaggio di benvenuto NO_DELAY a meno che limpostazione è attivata. Il valore di default è SEMPRE.
-
+
- Indagine Opt-in Audio File - Questo è il nome del file audio che viene riprodotto quando il cliente ha optato-in per lindagine, non hanno scelto lopt-out non ha risposto o se la non-azione-reazione è impostato su OptOut. Dopo questo file audio viene riprodotto, il metodo di indagine di azione. + Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto.
-
+
- Indagine non interessa File audio - Questo è il nome del file audio che viene riprodotto quando il cliente ha scelto lopt-out di indagine, non hanno scelto lopt-in o non ha risposto se il non-azione-reazione è impostato su OptIn. Dopo questo file audio viene riprodotto, linvito sarà appeso. + En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud.
-
+
- Indagine Metodo - Questa opzione definisce che cosa succede a una chiamata dopo che il cliente ha scelto lopt-in. AGENT_XFER invierà linvito al prossimo disponibili agente. Segreteria invierà la chiamata alla casella vocale che è specificato nel campo Casella Vocale. ESTENSIONE invierà al cliente di definire lestensione della Indagine Xfer Estensione campo. Hangup si bloccherà il cliente. CAMPREC_60_WAV invierà al cliente di avere una registrazione fatta con la loro risposta, questa registrazione sarà collocato in una cartella denominata come la campagna allinterno della campagna di registrazione Indagine Directory. + En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60. Per disattivare il prompt Hold On, impostare lintervallo a 0.
-
+
- Indagine n. risposta Azione - Questo è dove si definisce che cosa accadrà se non vi è alcuna risposta alla domanda del sondaggio. OptIn solo inviare la chiamata al metodo di indagine, se il cliente preme un cifre DTMF. OptOut invierà al cliente al metodo di indagine, anche se non si preme uno cifre DTMF. + Gioca Luogo in Linea - Questo definisce se il chiamante ascolterà il loro posto in linea momento in cui entra nella coda così come quando sentono il announcemend. Il valore di default è N.
-
+
- Indagine risposta Digit Mappa - Questa è la sezione in cui è possibile definire una descrizione per andare a ciascuna opzione cifre DTMF che il cliente può scegliere. + Gioca stimato Hold Time - Questo definisce se il chiamante ascolterà il tempo stimato tenere prima di essere trasferiti a un agente. Il valore di default è N. Se il cliente è in attesa e sente questo messaggio stimato tempo attesa, il tempo minimo che verrà riprodotto è di 15 secondi.
-
+
- Indagine Xfer Estensione - Se il metodo di indagine è stato selezionato ESTENSIONE quindi chiamare il cliente sarebbe stata destinata a questo dialplan estensione. + Tenere Opzione Tempo - Questo ti permette di specificare linstradamento della chiamata, se la stima del tempo di attesa è di oltre limporto di secondi specificato in appresso. Il valore di default è NESSUNO.
-
+
- Indagine campagna di registrazione Repertorio - Se il metodo di indagine è stato selezionato CAMPREC_60_WAV allora la risposta dei clienti vengono registrati e messi in una directory di nome, dopo la campagna allinterno di questa directory. + Tenere Opzione Tempo Secondi - Se Hold Time opzione è impostata a nulla, ma NESSUNO, questo è il numero di secondi di attesa tempo stimato che il tempo di attivare lopzione. Il valore predefinito è 360 secondi. - +
+
+
+ Tenere Opzione Tempo Estensione - Se lopzione Hold Time è impostato per estensione, questo è il dialplan proroga che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi. -
-
-
-Llamada siguiente del agente - esto se determina que` agente recibe la llamada siguiente que está disponible: -
  - random: o`rdenes por el valor al azar de la actualizacio`n en la tabla de los vicidial_live_agents -
  - oldest_call_start: las o`rdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. -
  - oldest_call_finish: las o`rdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. -
  - overall_user_level: las o`rdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. -
  - campaign_rank: o`rdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. -
  - fewest_calls: o`rdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
+
+
+ Tenere Tempo Opzione Segreteria - Se Hold Time opzione è impostata a segreteria telefonica, questa è la casella di segreteria telefonica che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi. -
-
-
-Tiempo de la llamada local - aquí es adonde usted fijo` durante que` horas usted quisiera marcar, según lo determinado por el tiempo local en está en cuál usted está llamando. Esto es controlada por co`digo de área y ajustada por tiempo de los ahorros de la luz del día si es aplicable. Las pautas generales en los E.E.U.U. para el negocio al negocio son los 9am a los 5pm y el negocio a las llamadas del consumidor es los 9am a los 9pm. +
+
+
+ Tenere Opzione Tempo trasferimento in gruppo - Se Hold Time opzione è impostata a IN_GROUP, questo è il gruppo in entrata che linvito sarà inviato a se la stima del tempo di attesa supera il tempo di Opzione Secondi. -
-
-
-Prefijo del dial - este campo permite más fácilmente cambiar una trayectoria de marcar a salir con un diverso me`todo sin hacer una recarga en asterisco. El defecto es 9 basados sobre un 91NXXNXXXXXX en el dial plan - extensions.conf. +
+
+
+ Tenere Opzione Tempo richiamata Filename - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è il nome del file che viene riprodotto prompt prima che la chiamata viene registrata come un nuovo condurre alla lista ID specificato di seguito, se la stima del tempo di attesa supera i Tenere Opzione Tempo Secondi. -
-
-
-Omita el co`digo del telefono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N. +
+
+
+ Tenere Opzione Tempo richiamata Elenco ID - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è lelenco ID la chiamata viene aggiunto come un nuovo piombo se la stima del tempo di attesa supera il tempo di Opzione Secondi. -
-
-
-Campaña CallerID - este campo permite enviar de un número de encargo del callerid en las llamadas de salida. Úste es el número que demostraría para arriba en el callerid de la persona que usted está llamando. El defecto es DESCONOCIDO. Esta opcio`n está solamente disponible si usted está utilizando PRIs - ISDN T1 o E1 - que tienen la característica de encargo del callerid se giraron. Esta característica puede Tambien trabajar con los troncos IAX2 dependiendo de lo que admite su abastecedor. El callerID de encargo se aplica solamente a las llamadas puestas para la campaña de VICIDIAL directamente, cualquier tercer persona llama o las transferencias no enviarán el callerID de encargo. NOTA: A veces el poner DESCONOCIDO o PRIVADO en el campo rendirá enviar de su número del callerID del defecto por su portador con las llamadas. Usted puede desear probar esto y poner 0000000000 en el campo del callerid en lugar de otro si usted no desea enviarle CallerID. +
+
+
+ Agente Alert Filename - Il file audio si gioca a un agente di annunciare che una chiamata è venuta per l-agente. A non utilizzare questa funzione per impostare il valore predefinito è X. Ding. -
-
-
-Extension de Rec de la Campaña - este campo permite para que una extension de encargo de la grabacion sea utilizada con VICIDIAL. Esto permite que usted utilice diversas extensiones dependiendo sobre cuánto tiempo usted desea permitir una grabacion máxima y que` tipo de codec usted desea registrar adentro. El defecto exten es 8309 que si usted sigue los ejemplos de SCRATCH_INSTALL registrarán en el formato de WAV para hasta que una hora. Otra opcio`n incluida en los ejemplos es 8310 que registrarán en el formato del GSM para hasta que una hora. +
+
+
+ La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente despue`s de jugarencendido la extension alerta del agente. El defecto es 1000. -
-
-
-grabacion de la campaña - este menú permite que usted elija que`nivel de la grabacion se permite en esta campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. +
+
+
+ Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. -
-
-
-Nombre de fichero de Rec de la campaña - este campo permite que usted modifique el nombre para requisitos particulares de la grabacion cuando la grabacion de la campaña es ONDEMAND o ALLCALLS. Las variables permitidas son CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. El defecto es FULLDATE_AGENT y parecería este 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que parecería este TESTCAMP_51020103108_3125551212. 50 char max. +
+
+
+ Nel gruppo di registrazione Sovrascrive - Questo campo consente di rilevante della campagna chiamata di registrazione. Questa impostazione può essere ignorata dal vicidial_user scavalcare limpostazione di registrazione. ANDICAPPATI non ignorare la campagna di registrazione. Non potrà mai disabilitare la registrazione sul client. OnDemand è il default e permette lagente di avviare e interrompere la registrazione, se necessario. ALLCALLS si avvia la registrazione sul client quando viene inviata una chiamata a un agente. ALLFORCE si avvia la registrazione sul client quando viene inviata una chiamata a un agente che lagente non opzione per interrompere la registrazione. -
-
-
-La registracion retrasa - para la grabacion de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabacion en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0. +
+
+
+ Nel gruppo di registrazione Filename - Questo campo sovrascrive la campagna di registrazione Filenaming sistema a meno che non sia impostato su NESSUNO. Le variabili sono ammessi CAMPAGNA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. Il valore predefinito è FULLDATE_AGENT e sarebbe simile a questa 20051020-103108_6666. Un altro esempio è CAMPAIGN_TINYDATE_CUSTPHONE che assomigliare a questa TESTCAMP_51020103108_3125551212. Max 50 caratteri. Il valore di default è NESSUNO. -
-
-
-Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. + 0) + { + ?> +
+
+
+ QC Attivato - Limpostazione di questo campo a Y consente, per lagente di Controllo della Qualità funzioni. Il valore di default è N. -
-
-
-Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo`vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. +
+
+
+ Status QC - La zona dove si è stati di selezionare quale porta deve essere andato oltre, QC, dal sistema. Mettere un segno di spunta accanto allo status che si desidera, QC, di rivedere. -
-
-
-Xfer-Conf DTMF - Estos cuatro campos permiten para que usted tenga dos sistemas de conferencia de la transferencia y de precolocaciones de DTMF. Cuando se carga la llamada o la campaña, la escritura de vicidial.php demostrará dos botones en el marco de la transferir-conferencia y automo`vil-poblara` el nu`mero-a-dial y los campos del enviar-dtmf cuando está presionada. Si usted desea permitir transferencias consultivas, un fronter a unmás cercano, usted puede colocar CXFER pues uno de lasprecolocaciones del nu`mero-a-dial y del dial string apropiado seráenviado para hacer una transferencia consultiva local, entonces lalata LEAVE-3WAY-CALL justo del agente y movimiento encendido a sullamada siguiente. Si usted desea permitir transferencias ocultas declientes a una escritura de VICIDIAL AGI para registrar o un IVR,entonces coloque AXFER en el campo del nu`mero-a-dial. Usted puedeTambien especificar una extension de encargo despue`s del AXFER odel CXFER, por ejemplo si usted desea hacer transferencias consultivasinternas en vez de local que usted pondría CXFER90009 en el campo delnu`mero-a-dial. +
+
+
+ QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per un inbound_group. I giorni della settimana sono ignorati per queste funzioni. -
-
-
-Servicios repetidos programar - esta opcio`n no prohibe a agente a la disposicion una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado. +
+
+
+ QC ottenere il record di lancio- Ciò consente una delle seguenti azioni per essere attivato su un QC agente riceve un nuovo record. -
-
-
-Segundos de Wrap Up - el número de los segundos para forzar un agenteesperar antes de permitir que reciban o que marquen otra llamada. Elcontador de tiempo comienza tan pronto como un agente cuelgue paraarriba en su cliente - o en el caso del número alterno que marcacuando el agente acaba el plomo - defecto sea los segundos 0. Si elcontador de tiempo funciona hacia fuera antes de que el agente tengadispositioned la llamada, el agente todavía no se mueve encendido ala llamada siguiente hasta que seleccionan una disposicion. +
+
+
+ QC Visualizza Registrazione - Ciò consente una registrazione che può essere collegato con la QC record di essere esposto nel QC agente schermo. -
-
-
-Mensaje de Wrap up - esto es un mensaje campaña-especi`fico que seexhibirá en la pantalla del wrapup si se fijan los segundos delwrapup. +
+
+
+ QC Indirizzo Web Form - Questo è lindirizzo web che un agente, QC può andare quando si fa clic sul link contenuto nel Web Form, QC schermo. -
-
-
-Lista interna del uso DNC - esto define si esta campaña es filtrarlos plomos contra la lista interna de DNC. Si se fija a Y, la tolvabuscará cada número de telefono en la lista de DNC antes de ponerlaen la tolva. Si está en la lista de DNC entonces que cambiará eseconduce estado a DNCL así que no puede ser marcada. El defecto es N. - -
-
-
-Usa campagna DNC List - Questo definisce se questa è una campagna per filtrare DNC conduce contro una lista che è specifico per tale campagna solo. Se è impostato su Y, la tramoggia sarà per ciascuno il numero di telefono nel campo specifico DNC prima immissione nella tramoggia. Se si è in campagna specifici DNC elenco allora cambierà status che portano a DNCC e non può quindi essere selezionato. Il valore predefinito è N. - -
-
-
-Grupos De entrada Permitidos - For CLOSER campaigns only. Here is where you select the inbound groups you want agents in this CLOSER campaign to be able to take calls from. It is important for BLENDED inbound-outbound campaigns only to select the inbound groups that are used for agents in this campaign. The calls coming into the inbound groups selected here will be counted as active calls for a blended campaign even if all agents in the campaign are not logged in to receive calls from all of those selected inbound groups. - -
-
-
-La pausa del agente cifra activo - permite que los agentes seleccionenun co`digo de la pausa cuando chascan encendido el boton de PAUSA envicidial.php. Los co`digos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinio`n de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N. VIGORE costringerà gli agenti di scegliere un codice PAUSE se fai clic sul pulsante PAUSE. - -
-
-
-Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N. - -
-
-
-Disattiva Alter clienti Telefono - Se è impostata a Y, non cambia il numero di telefono del cliente, quando un agente disposizioni la chiamata. Il valore di default è Y. - -
-
-
-Agente Mostra Coda Conte - Se è impostata a Y, ogni volta che un cliente è in attesa di un agente, la coda invita visualizzazione nella parte superiore dello schermo agente diventa rosso e mostra il numero di chiamate in attesa. Il valore di default è Y. - -
-
-
-Identificacio`n manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente. - -
-
-
-Manuale Dial Filtro - Questo ti permette di filtrare le chiamate che gli agenti fanno chiamare in modalità manuale per questa campagna da qualsiasi combinazione delle seguenti operazioni: DNC - a kick out, CAMPAIGNLISTE - il numero deve essere allinterno di elenchi per la campagna, NESSUNO - nessun filtro sul manuale o remoto veloce dial elenchi. - -
-
-
-Appunti di agente Schermata Copia - Questa funzione è al momento attivo solo per Internet Explorer. Questa funzione consente di selezionare un campo che verrà copiato negli appunti il computer dellagente computer su una chiamata in corso linvio di un agente. Comune utilizza per questo sono per facilitare lincollatura di numeri di conto corrente o numeri di telefono in eredità applicazioni client sul computer agente. - -
-
-
-3-Way chiamate in uscita CallerID - Questo è ciò che definisce come inviato il numero in uscita callerID da 3-way chiamate effettuate dallagente, CAMPAGNA utilizza la campagna personalizzata callerID, il Cliente utilizza il numero di clienti che è attiva su schermo e gli agenti AGENT_PHONE usa il callerID per il telefono cellulare che lagente è registrato in. AGENT_CHOOSE lagente permette di scegliere quale callerID da utilizzare per le chiamate a 3 vie da un elenco di scelte. - -
-
-
-3-Way Call Prefisso Chiamata - Questo definisce quello che è usato come prefisso per chiamare il 3-way chiamate, di default è vuoto in modo che il prefisso campagna quadrante è usato, passthru in modo che tu possa sentire suonare è 88. - - 0) - { +
+
+
+ QC Script - Questo è lo script che possono essere utilizzati da agenti QC nel SCRIPT scheda nella schermata QC. + -
-
-
- QC Attivato - Limpostazione di questo campo a Y consente, per lagente di Controllo della Qualità funzioni. Il valore di default è N.
-
+
- Status QC - La zona dove si è stati di selezionare quale porta deve essere andato oltre, QC, dal sistema. Mettere un segno di spunta accanto allo status che si desidera, QC, di rivedere. + Tenere Ricorda Trasferimento In-Group - Se un cliente chiede di tornare in questo gruppo di più di una volta e questo non è impostato su Nessuno, quindi la chiamata verrà automaticamente inviata al gruppo selezionato In-in questo campo . Il valore di default è NESSUNO.
-
+
- QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per una campagna. I giorni della settimana sono ignorati per queste funzioni. + Scadenza Bando n. rotta - Impostando questo parametro a Y rimuoverà tutti i tempi di attesa e audio richiede e si tenta di inviare il diritto di chiamata di un agente. Non ignorare il messaggio di benvenuto o tenere prompt impostazioni. Il valore di default è N.
-
+
- QC ottenere il record di lancio- Ciò consente una delle seguenti azioni per essere attivato su un QC agente riceve un nuovo record. + Statistiche per cento delle chiamate risposta entro X secondi - Questo campo consente di impostare il numero di tenere secondo le statistiche in tempo reale che il display utilizza per calcolare la percentuale di risposta che sono state chiamate risposta entro X numero di secondi in attesa.
-
+
- QC Visualizza Registrazione - Ciò consente una registrazione che può essere collegato con la QC record di essere esposto nel QC agente schermo. + Start Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank.
-
+
- QC Indirizzo Web Form - Questo è lindirizzo web che un agente, QC può andare quando si fa clic sul link contenuto nel Web Form, QC schermo. + Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank.
-
+
- QC Script - Questo è lo script che possono essere utilizzati da agenti QC nel SCRIPT scheda nella schermata QC. - - -
-
-
-Vtiger Ricerca Categoria - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definirà in cui la pagina di ricerca vtiger_search.php per il numero di telefono che è stato inserito. Ci sono 4 opzioni che possono essere utilizzati in questo campo: PIOMBO-Questa opzione ricerca attraverso la porta solo Vtiger, CONTO-Questa opzione ricerca attraverso il Vtiger conti e tutti i contatti e sub-contatti per il numero di telefono, VENDITORE-Questa opzione solo attraverso la ricerca Vtiger venditori, ACCTID-Questa opzione funziona solo per i conti e si prendono le vicidial vendor_lead_code campo e provare a cercare il Vtiger ID account. Se si tenta senza successo di qualsiasi altro metodi elencati che hai selezionato. Opzioni multiple possono essere utilizzati per ogni ricerca, ma su grandi banche dati questo non è raccomandato. Il valore di default è PIOMBO. - -
-
-
-Vtiger Crea chiamate record - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se una nuova attività Vtiger è stato creato per registrare la chiamata quando lagente va al vtiger_search pagina. Il valore di default è Y. - -
-
-
-Vtiger Crea record Piombo - Se è attivata Vtiger integrazione nel sistema e le impostazioni Vtiger Ricerca Categoria PIOMBO comprende quindi questa impostazione definisce se un nuovo record Vtiger piombo viene creato quando lagente va a vtiger_search la pagina di registrazione e non è di avere trovato la chiamata numero di telefono. Il valore di default è Y. - -
-
-
-Vtiger Screen Login - Se Vtiger di integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se lutente è connesso al Vtiger interfaccia automaticamente quando laccesso al VICIDIAL. Il valore di default è Y. - -
-
-
-Gruppo Alias ammessi - Se si desidera consentire agli agenti di utilizzare il vostro gruppo alias quindi è necessario impostare questo gruppo Y. Alias sono spiegate più in Admin sezione, che consentono di selezionare diversi agenti callerIDs manuale per le chiamate in uscita che essi possono posto. Il valore di default è N. - -
-
-
-Predefinito Gruppo Alias - Se si hanno consentito Gruppo Alias allora questo è il gruppo alias che viene selezionato per impostazione predefinita quando prima lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO. - - - - - -



- -VICIDIAL_LISTE TABELLA

-
-
-Identificacio`n de la lista - Úste es el nombre nume`rico de la lista, e`l no es editable despue`s de la sumisio`n inicial, debe contener solamente números y debe estar entre 2 y 8 caracteres en longitud. Must be a number greater than 100. - -
-
-
-Nombre de la lista - esta es la descripcio`n de la lista, debe estar entre 2 y 20 caracteres en longitud. - -
-
-
-Descripcio`n de la lista - este es el campo de la nota para la lista,e`l es opcional. - -
-
-
-Fecha del cambio de la lista - esta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera. - -
-
-
-Fecha de la llamada del último de la lista - esta es la vez últimaque conduce fue marcado de esta lista. - -
-
-
-Campaña - esta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente. - -
-
-
-Activo - esto define si la lista debe ser marcada encendido o no. - -
-
-
-Reajuste el Conducir-Llamar-Estado para esta lista - esto reajusta todos los plomos en esta lista a N para "no llamado puesto que reajuste pasado" y significa que cualquier plomo puede ahora ser llamado si es el estado derecho según lo definido en la pantalla de la campaña. - -
-
-
-DNC VICIDIAL List - Questo Dont Call elenco contiene ogni piombo che è stato fissato ad uno stato di DNC nel sistema. Attraverso il ELENCHI - ADD numero DNC pagina si ha la possibilità di aggiungere manualmente i numeri di questo elenco in modo che essi non saranno chiamati da campagne che utilizzano la lista interno DNC. Vi è inoltre la possibilità di aggiungere porta alla campagna specifici DNC liste per le campagne che hanno loro. - - - -



- -VICIDIAL_INBOUND_GROUPS TABELLA

-
-
-Identificacio`n de grupo - Úste es el nombre corto del grupo de entrada, e`l no es editable despue`s de la sumisio`n inicial, no debe contener cualquier espacio y debe estar entre 2 y 20 caracteres en longitud. - -
-
-
-Nombre de grupo - esta es la descripcio`n del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios . - -
-
-
-Color del grupo - este es el color que exhibe en el cliente app de VICIDIAL cuando una llamada viene adentro en este grupo. Debe estar entre 2 y 7 caracteres de largo. Si esto es una definicio`n del color de la tuerca hexagonal usted debe recordar poner a # al principio de la secuencia o VICIDIAL no trabajará correctamente. - -
-
-
-Activo - esto se determina si este grupo demuestra para arriba en la caja de la seleccio`n cuando un agente de VICIDIAL entra. - -
-
-
-Forma del Web - esta es la Direccion de encargo que el chascar en el boton de la FORMA del WEB en VICIDIAL le llevará para las llamadas que vienen adentro en este grupo. - -
-
-
-Llamada siguiente del agente - esto se determina que` agente recibe la llamada siguiente que está disponible: -
  - random: o`rdenes por el valor al azar de la actualizacio`n en la tabla de los vicidial_live_agents -
  - oldest_call_start: las o`rdenes por la vez última un agente fueron enviadas una llamada. Resultados en los agentes que reciben el número casi igual de llamadas cabalmente. -
  - oldest_call_finish: las o`rdenes por la vez última un agente acabaron una llamada. El agente de AKA que espera lo más de largo posible recibe la primera llamada. -
  - overall_user_level: las o`rdenes por el user_level del agente según lo definido en los vicidial_users tabulan un user_level más alto recibirán más llamadas. -
  - inbound_group_rank: o`rdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible. -
  - fewest_calls: o`rdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. -
  - campaign_rank: o`rdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. -
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. -
- -
-
-
-Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. - -
-
-Exhibicio`n de Fronter - este campo se determina si el agente de entrada de VICIDIAL tendría el name(if del fronter allí es uno) exhibido en el campo del estado cuando la llamada viene al agente. - -
-
-
-Escritura de la campaña - este menú permite que usted elija la escritura que aparecerá en la pantalla de los agentes para esta campaña. No seleccione NONE no demostrar ninguna escritura para esta campaña. - -
-
-
-Consiga el lanzamiento de la llamada - este menú permite que usted elija si usted desee automo`vil-lance la página en una ventana separada, auto-switch de la tela-forma a la lengüeta de la ESCRITURA o no haga nada cuando una llamada se envía al agente para esta campaña. - -
-
-
-Xfer-Conf DTMF - Estos cuatro campos permiten para que usted tenga dos sistemas de conferencia de la transferencia y de precolocaciones de DTMF. Cuando se carga la llamada o la campaña, la escritura de vicidial.php demostrará dos botones en el marco de la transferir-conferencia y automo`vil-poblara` el nu`mero-a-dial y los campos del enviar-dtmf cuando está presionada. Si usted desea permitir transferencias consultivas, un fronter a unmás cercano, usted puede colocar CXFER pues uno de lasprecolocaciones del nu`mero-a-dial y del dial string apropiado seráenviado para hacer una transferencia consultiva local, entonces lalata LEAVE-3WAY-CALL justo del agente y movimiento encendido a sullamada siguiente. Si usted desea permitir transferencias ocultas declientes a una escritura de VICIDIAL AGI para registrar o un IVR,entonces coloque AXFER en el campo del nu`mero-a-dial. Usted puedeTambien especificar una extension de encargo despue`s del AXFER odel CXFER, por ejemplo si usted desea hacer transferencias consultivasinternas en vez de local que usted pondría CXFER90009 en el campo delnu`mero-a-dial. - -
-
-
-Call Drop Secondi - Il numero di secondi di una chiamata rimane in coda, prima di essere considerato un DROP. - -
-
-
-Goccia dazione - Questo menu consente di scegliere che cosa succede a una chiamata quando si è in attesa di più di quello che si trova nel campo Secondi Call Drop. Hangup semplicemente riagganciare la chiamata, inviare il messaggio di chiamare il Gota Extensions che lei ha definito di seguito, segreteria invierà la chiamata alla casella vocale che è stato definito sotto IN_GROUP e invia la chiamata in ingresso al gruppo che è definito qui di seguito. - -
-
-
-Gota Extensions - In caso di caduta di azione è fissato al messaggio, questa è la linea che il piano di estensione invito sarà inviato a se raggiunge Call Drop Secondi. - -
-
-
-Casella Vocale - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. - -
-
-
-Trasferimento Drop Group - In caso di caduta di azione è fissato a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si raggiunge il Call Drop Secondi. - -
-
-
-Tiempo de la llamada - este es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours. - -
-
-
-After Hours Azione - Loperazione da eseguire se si tratta di ore dopo, come definito nel tempo per la chiamata in entrata questo gruppo. Hangup hangup immediatamente la chiamata, si MESSASGE riprodurre il file in After Hours Messaggio Filenam campo, ESTENSIONE invierà la chiamata al After Hours Estensione nel dialplan Casella Vocale e invia la chiamata alla casella vocale di cui il settore After Hours Casella Vocale , IN_GROUP invierà la chiamata in ingresso al gruppo selezionato nel gruppo After Hours Trasferimento selezionare lista. Il valore di default è MESSAGGIO. - -
-
-
-Despue`s del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la accio`n se fija alMENSAJE. El defecto es VM-ADIO`S - -
-
-
-Despue`s de la extension de las horas - la extension dialplan paraenviar la llamada si la accio`n se fija a la Extension. El defecto es8300. - -
-
-
-Despue`s de las horas Casella Vocale - la caja del voicemail para enviar lallamada si la accio`n se fija a VOICEMAIL. - -
-
-
-After Hours Trasferimento Group - Se After Hours azione è destinata a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si entra nel gruppo in al di fuori del regime di chiamata tempo definito per il gruppo in. - -
-
-
-Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE --- - -
-
-
-Lettura del messaggio di benvenuto - Queste impostazioni selezionate, quando per la riproduzione del messaggio di benvenuto definito, SEMPRE svolgerà ogni volta, non potrà mai mai giocare, IF_WAIT_ONLY solo riprodurre il messaggio di benvenuto, se la chiamata non vada immediatamente ad un agente , e YES_UNLESS_NODELAY avranno sempre il messaggio di benvenuto NO_DELAY a meno che limpostazione è attivata. Il valore di default è SEMPRE. - -
-
-
-Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto. - -
-
-
-En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud. - -
-
-
-En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60. Per disattivare il prompt Hold On, impostare lintervallo a 0. - -
-
-
-Gioca Luogo in Linea - Questo definisce se il chiamante ascolterà il loro posto in linea momento in cui entra nella coda così come quando sentono il announcemend. Il valore di default è N. - -
-
-
-Gioca stimato Hold Time - Questo definisce se il chiamante ascolterà il tempo stimato tenere prima di essere trasferiti a un agente. Il valore di default è N. - -
-
-
-Tenere Opzione Tempo - Questo ti permette di specificare linstradamento della chiamata, se la stima del tempo di attesa è di oltre limporto di secondi specificato in appresso. Il valore di default è NESSUNO. - -
-
-
-Tenere Opzione Tempo Secondi - Se Hold Time opzione è impostata a nulla, ma NESSUNO, questo è il numero di secondi di attesa tempo stimato che il tempo di attivare lopzione. Il valore predefinito è 360 secondi. - -
-
-
-Tenere Opzione Tempo Estensione - Se lopzione Hold Time è impostato per estensione, questo è il dialplan proroga che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi. - -
-
-
-Tenere Tempo Opzione Segreteria - Se Hold Time opzione è impostata a segreteria telefonica, questa è la casella di segreteria telefonica che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi. - -
-
-
-Tenere Opzione Tempo trasferimento in gruppo - Se Hold Time opzione è impostata a IN_GROUP, questo è il gruppo in entrata che linvito sarà inviato a se la stima del tempo di attesa supera il tempo di Opzione Secondi. - -
-
-
-Tenere Opzione Tempo richiamata Filename - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è il nome del file che viene riprodotto prompt prima che la chiamata viene registrata come un nuovo condurre alla lista ID specificato di seguito, se la stima del tempo di attesa supera i Tenere Opzione Tempo Secondi. - -
-
-
-Tenere Opzione Tempo richiamata Elenco ID - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è lelenco ID la chiamata viene aggiunto come un nuovo piombo se la stima del tempo di attesa supera il tempo di Opzione Secondi. - -
-
-
-Extension alerta del agente - la extension a enviar en la sesio`ndel agente para anunciar que una llamada está viniendo al agente.Esta extension debe tener un aparato de lectura de un archivo audio.No utilizar esta funcio`n fijo` esto a X. Default es X. - -
-
-
-La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente despue`s de jugarencendido la extension alerta del agente. El defecto es 1000. - -
-
-
-Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. - -
-
-
-Nel gruppo di registrazione Sovrascrive - Questo campo consente di rilevante della campagna chiamata di registrazione. Questa impostazione può essere ignorata dal vicidial_user scavalcare limpostazione di registrazione. ANDICAPPATI non ignorare la campagna di registrazione. Non potrà mai disabilitare la registrazione sul client. OnDemand è il default e permette lagente di avviare e interrompere la registrazione, se necessario. ALLCALLS si avvia la registrazione sul client quando viene inviata una chiamata a un agente. ALLFORCE si avvia la registrazione sul client quando viene inviata una chiamata a un agente che lagente non opzione per interrompere la registrazione. - -
-
-
-Nel gruppo di registrazione Filename - Questo campo sovrascrive la campagna di registrazione Filenaming sistema a meno che non sia impostato su NESSUNO. Le variabili sono ammessi CAMPAGNA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. Il valore predefinito è FULLDATE_AGENT e sarebbe simile a questa 20051020-103108_6666. Un altro esempio è CAMPAIGN_TINYDATE_CUSTPHONE che assomigliare a questa TESTCAMP_51020103108_3125551212. Max 50 caratteri. Il valore di default è NESSUNO. - - 0) - { - ?> -
-
-
- QC Attivato - Limpostazione di questo campo a Y consente, per lagente di Controllo della Qualità funzioni. Il valore di default è N. - -
-
-
- Status QC - La zona dove si è stati di selezionare quale porta deve essere andato oltre, QC, dal sistema. Mettere un segno di spunta accanto allo status che si desidera, QC, di rivedere. - -
-
-
- QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per un inbound_group. I giorni della settimana sono ignorati per queste funzioni. - -
-
-
- QC ottenere il record di lancio- Ciò consente una delle seguenti azioni per essere attivato su un QC agente riceve un nuovo record. - -
-
-
- QC Visualizza Registrazione - Ciò consente una registrazione che può essere collegato con la QC record di essere esposto nel QC agente schermo. - -
-
-
- QC Indirizzo Web Form - Questo è lindirizzo web che un agente, QC può andare quando si fa clic sul link contenuto nel Web Form, QC schermo. - -
-
-
- QC Script - Questo è lo script che possono essere utilizzati da agenti QC nel SCRIPT scheda nella schermata QC. - - -
-
-
-Tenere Ricorda Trasferimento In-Group - Se un cliente chiede di tornare in questo gruppo di più di una volta e questo non è impostato su Nessuno, quindi la chiamata verrà automaticamente inviata al gruppo selezionato In-in questo campo . Il valore di default è NESSUNO. - -
-
-
-Scadenza Bando n. rotta - Impostando questo parametro a Y rimuoverà tutti i tempi di attesa e audio richiede e si tenta di inviare il diritto di chiamata di un agente. Non ignorare il messaggio di benvenuto o tenere prompt impostazioni. Il valore di default è N. - -
-
-
-Statistiche per cento delle chiamate risposta entro X secondi - Questo campo consente di impostare il numero di tenere secondo le statistiche in tempo reale che il display utilizza per calcolare la percentuale di risposta che sono state chiamate risposta entro X numero di secondi in attesa. - -
-
-
-Predefinito Gruppo Alias - Se si hanno consentito Alias gruppo per la campagna che lagente è registrato in poi questo è il gruppo alias che è stato selezionato prima di default su un invito da parte di questo gruppo in entrata, quando lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO. - - - - - -



- -VICIDIAL_INBOUND_DIDS TABELLA

-
-
-
-Estensione DID - Questo è il numero, lestensione o la DID che attiveranno questa voce e che si percorso allinterno del sistema di utilizzare questa funzione. Vi è una riservati DID predefinito che è possibile utilizzare, che è solo la parola-default-senza trattini, che Allos di inviare qualsiasi richiesta che non corrisponde a tutte le altre esistenti modelli di default DID. - -
-
-
-Descrizione DID - Questa è la descrizione di DID routing. - -
-
-
-HA attiva - Questo è il campo in cui si è impostato il DID ingresso attivo o meno. Il valore di default è Y. - -
-
-
-HA rotta - Questo tipo di percorso che si è impostato il DID da usare. Estensione invierà le chiamate verso lestensione al di sotto, segreteria invierà chiede direttamente alla casella vocale al di sotto, AGENTE invierà le chiamate a un agente VICIDIAL se sono connesso, TELEFONO invierà la chiamata a un telefono voce selezionata di seguito, si IN_GROUP inviare chiamate direttamente al gruppo specificato in entrata. Il valore di default è Extensions. - -
-
-
-Estensione - Se è selezionata come estensione DID rotta, allora questa è lestensione che dialplan inviti saranno inviati. Il valore di default è 9998811112, nessun servizio. - -
-
-
-Estensione Contesto - Se è selezionata come estensione DID rotta, allora questo è il contesto che dialplan inviti saranno inviati. Il valore di default è di default. - -
-
-
-Buzon de voz - Se è selezionata come Casella Vocale DID rotta, allora questa è la casella vocale che inviti saranno inviati. Il valore di default è vuota. - -
-
-
-Telefono Estensione - Se è selezionata come TELEFONO DID percorso, allora questo è il telefono cellulare in estensione che inviti saranno inviati. - -
-
-
-Telefono IP Server - Se è selezionata come TELEFONO DID percorso, allora questo è lIP del server per il telefono che chiede lestensione sarà trasmessa al. - -
-
-
-Utente Agent - Se è selezionata come AGENTE DID rotta, allora questo è lagente che chiede VICIDIAL saranno inviati alla. - -
-
-
-Lutente non disponibile Azione - Se è selezionata come AGENTE DID rotta, e lutente non è connesso o disponibili, allora questo è il percorso che le chiamate si. - -
-
-
-Utente percorso Impostazioni In-Group - Se è selezionata come AGENTE DID rotta, allora questo è il gruppo In-che saranno utilizzati per la coda di impostazioni come il chiamante è in attesa di essere inviati al agente. Il valore di default è AGENTDIRECT. - -
-
-
-In-ID gruppo - Se è selezionata come IN_GROUP DID rotta, allora questo è il gruppo In-chiede che saranno inviati alla. - -
-
-
-Nel gruppo di chiamata Metodo Maniglia - Se è selezionata come IN_GROUP DID rotta, allora questo è il metodo di gestione delle chiamate per queste chiamate. CID di aggiungere un nuovo record con piombo ogni chiamata utilizzando il CallerID come il numero di telefono, CIDLOOKUP tenterà di ricerca il numero di telefono dal CallerID in tutto il sistema, CIDLOOKUPRL sarà attampt di ricerca il numero di telefono dal CallerID specificato in una sola lista , CIDLOOKUPRC si attampt di ricerca il numero di telefono dal CallerID in tutte le liste che appartengono alla campagna specificato, più vicina è specificato per VICIDIAL Closer chiamate, ANI si aggiunge un nuovo record con piombo ogni chiamata utilizzando il ANI, come il numero di telefono, ANILOOKUP tenterà di ricerca il numero di telefono dal ANI in tutto il sistema, ANILOOKUPRL si attampt di ricerca il numero di telefono dal ANI specificato in una sola lista, XDIGITID verrà chiesto il chiamante per una X cifre del codice prima che la chiamata verrà messa in la coda. Il valore di default è CID. - -
-
-
-Nel gruppo di agente Metodo di ricerca - Se è selezionata come IN_GROUP DID rotta, allora questo è il metodo di ricerca agente debba essere utilizzato da un gruppo in entrata, LO è Load-Balanced-Overflow e cercherà di inviare la chiamata di un agente sul server locale prima di tentare di inviarlo a un agente su un altro server, LB è bilanciamento del carico e si tenta di inviare la chiamata al prossimo agente non importa ciò che essi sono il server, server-SO è solo e solo tenta di inviare gli inviti agli agenti presenti sul server che linvito è venuto in su. Il valore di default è LB. - -
-
-
-Nel gruppo Lista ID - Se è selezionata come IN_GROUP DID rotta, allora questo è lelenco ID che porta può essere cercato attraverso la porta e che sarà inserito in se necessario. - -
-
-
-Nel gruppo-ID campagna - Se è selezionata come IN_GROUP DID rotta, allora questo è lID campagna che porta può essere cercato per se il metodo di gestire la chiamata è CIDLOOKUPRC. - -
-
-
-Nel gruppo Codice Telefono - Se è selezionata come IN_GROUP DID rotta, allora questo è il codice utilizzato Telefono se un nuovo piombo è creato. - - - - -



- -VICIDIAL_REMOTE_AGENTS TABELLA

-
-
-Comienzo de la identificacio`n del usuario - esta es la identificacio`n del usuario que comienza se utiliza que cuando las entradas alejadas del agente se insertan en el sistema. Si el número de líneas se fija más altamente de 1, este número es incrementado por uno hasta que cada línea tiene una entrada. Se cerciora de usted crear una nueva cuenta del usuario de VICIDIAL con un nivel de usuario de 4 o grande si usted quisiera que pudieran utilizar la página de vdremote.php para el acceso alejado de la tela de esta cuenta. - -
-
-
-Número de líneas - el define cuánto crea el agente alejado las entradas el sistema, y se determina cuántas líneas piensa que puede enviar con seguridad al número debajo. - -
-
-
-IP del servidor - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea. - -
-
-
-Extension externa - este es el número que usted desea las llamadas remitidas a. Cercio`rese de que sea un número dial plan completo y que si usted necesita 9 al principio usted lo pone adentro aquí. Pruebe marcando este número de un telefono en el sistema. - -
-
-
-Estado - aquí es donde usted da vuelta al agente alejado por intervalos. Tan pronto como el agente sea activo el sistema asume que puede enviarle llamadas. Puede tomar hasta 30 segundos una vez que usted cambie el estado a inactivo para parar el recibir de llamadas. - -
-
-
-Campaña - aquí es donde usted selecciona la campaña que estos agentes alejados serán registrados en. Necesidades de entrada de utilizar la campaña MÁS CERCANA y de seleccionar las campañas de entrada debajo de e`sa que usted desea recibir llamadas de. - -
-
-
-Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. - - -



- -VICIDIAL_CAMPAIGN_LISTE

-
-
-Las listas dentro de esta campaña se enumeran aquí, si son activas son denotadas por la Y o N y usted pueden ir a la pantalla de la lista chascando en la identificacio`n de la lista en la primera columna. - - -



- -VICIDIAL_CAMPAIGN_STATUSES TABELLA

-
-
-Con el uso de los estados de encargo de la campaña, usted puede tener estados que existan solamente para una campaña específica. El estado debe ser 1-8 caracteres en longitud, la descripcio`n debe ser 2-30 caracteres en longitud y seleccionable define si demuestra para arriba en VICIDIAL como disposicion. Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas. La opcio`n de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico. - - - - 0) - { - ?> -



- - VICIDIAL_CAMPAIGN_HOTKEYS TABELLA

-
-
- Con el uso de los hot keys de encargo de la campaña, los agentes que utilizan el retraso vicidial de la lata del tela-cliente y la disposicion llama apenas presionando una sola llave en su teclado. Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de telefono alterno que marca, ALTPH2 de HotKey - el dialcaliente del telefono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen. + Predefinito Gruppo Alias - Se si hanno consentito Alias gruppo per la campagna che lagente è registrato in poi questo è il gruppo alias che è stato selezionato prima di default su un invito da parte di questo gruppo in entrata, quando lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO. @@ -3901,10 +4442,191 @@ if ($SSoutbound_autodial_active > 0)



- VICIDIAL_LEAD_RECYCLE TABELLA

-
+ VICIDIAL_INBOUND_DIDS TABELLA


- Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. +
+
+ Estensione DID - Questo è il numero, lestensione o la DID che attiveranno questa voce e che si percorso allinterno del sistema di utilizzare questa funzione. Vi è una riservati DID predefinito che è possibile utilizzare, che è solo la parola-default-senza trattini, che Allos di inviare qualsiasi richiesta che non corrisponde a tutte le altre esistenti modelli di default DID. + +
+
+
+ Descrizione DID - Questa è la descrizione di DID routing. + +
+
+
+ HA attiva - Questo è il campo in cui si è impostato il DID ingresso attivo o meno. Il valore di default è Y. + +
+
+
+ HA rotta - Questo tipo di percorso che si è impostato il DID da usare. Estensione invierà le chiamate verso lestensione al di sotto, segreteria invierà chiede direttamente alla casella vocale al di sotto, AGENTE invierà le chiamate a un agente VICIDIAL se sono connesso, TELEFONO invierà la chiamata a un telefono voce selezionata di seguito, si IN_GROUP inviare chiamate direttamente al gruppo specificato in entrata. Il valore di default è Extensions. CALLMENU invierà la chiamata al call definita Menu. + +
+
+
+ Estensione - Se è selezionata come estensione DID rotta, allora questa è lestensione che dialplan inviti saranno inviati. Il valore di default è 9998811112, nessun servizio. + +
+
+
+ Estensione Contesto - Se è selezionata come estensione DID rotta, allora questo è il contesto che dialplan inviti saranno inviati. Il valore di default è di default. + +
+
+
+ Buzon de voz - Se è selezionata come Casella Vocale DID rotta, allora questa è la casella vocale che inviti saranno inviati. Il valore di default è vuota. + +
+
+
+ Telefono Estensione - Se è selezionata come TELEFONO DID percorso, allora questo è il telefono cellulare in estensione che inviti saranno inviati. + +
+
+
+ Telefono IP Server - Se è selezionata come TELEFONO DID percorso, allora questo è lIP del server per il telefono che chiede lestensione sarà trasmessa al. + +
+
+
+ Call Menu - Se CALLMENU è selezionato come la Route DID, allora questo è il menu di chiamata che gli inviti saranno inviati a. + +
+
+
+ Utente Agent - Se è selezionata come AGENTE DID rotta, allora questo è lagente che chiede VICIDIAL saranno inviati alla. + +
+
+
+ Lutente non disponibile Azione - Se è selezionata come AGENTE DID rotta, e lutente non è connesso o disponibili, allora questo è il percorso che le chiamate si. + +
+
+
+ Utente percorso Impostazioni In-Group - Se è selezionata come AGENTE DID rotta, allora questo è il gruppo In-che saranno utilizzati per la coda di impostazioni come il chiamante è in attesa di essere inviati al agente. Il valore di default è AGENTDIRECT. + +
+
+
+ In-ID gruppo - Se è selezionata come IN_GROUP DID rotta, allora questo è il gruppo In-chiede che saranno inviati alla. + +
+
+
+ In-Group Call Handle Method - Se IN_GROUP è selezionato come il percorso fatto, allora questa è la gestione delle chiamate metodo utilizzato per queste chiamate. CID aggiungerà un nuovo record di piombo, con tutte le chiamate utilizzando il CallerID come il numero di telefono, CIDLOOKUP cercherà di ricerca il numero di telefono dal CallerID in tutto il sistema, CIDLOOKUPRL cercherà di ricerca il numero di telefono dal CallerID in una sola lista specificata , CIDLOOKUPRC cercherà di ricerca il numero di telefono dal CallerID in tutte le liste che appartengono alla campagna di cui, più vicino è specificato per VICIDIAL Closer chiamate, ANI aggiungerà un nuovo record di piombo, con tutte le chiamate utilizzando il ANI, come il numero di telefono, ANILOOKUP cercherà di ricerca il numero di telefono dal ANI in tutto il sistema, ANILOOKUPRL cercherà di ricerca il numero di telefono dal ANI in una sola lista specificata, XDIGITID chiederà il chiamante per un codice X cifra prima della chiamata verrà messa in la coda, VIDPROMPT chiederà il chiamante per il loro numero ID e creerà un nuovo record di piombo con il CallerID come il numero di telefono e l-ID come il Vendor ID, VIDPROMPTLOOKUP tenterà di ricerca l-ID di tutto il sistema, VIDPROMPTLOOKUPRL tenterà di ricerca del fornitore ID dal ID in una sola lista specificata, VIDPROMPTLOOKUPRC tenterà di ricerca da parte del venditore ID l-ID in tutte le liste che appartengono alla campagna specificato. Di default è CID. + +
+
+
+ Nel gruppo di agente Metodo di ricerca - Se è selezionata come IN_GROUP DID rotta, allora questo è il metodo di ricerca agente debba essere utilizzato da un gruppo in entrata, LO è Load-Balanced-Overflow e cercherà di inviare la chiamata di un agente sul server locale prima di tentare di inviarlo a un agente su un altro server, LB è bilanciamento del carico e si tenta di inviare la chiamata al prossimo agente non importa ciò che essi sono il server, server-SO è solo e solo tenta di inviare gli inviti agli agenti presenti sul server che linvito è venuto in su. Il valore di default è LB. + +
+
+
+ Nel gruppo Lista ID - Se è selezionata come IN_GROUP DID rotta, allora questo è lelenco ID che porta può essere cercato attraverso la porta e che sarà inserito in se necessario. + +
+
+
+ Nel gruppo-ID campagna - Se è selezionata come IN_GROUP DID rotta, allora questo è lID campagna che porta può essere cercato per se il metodo di gestire la chiamata è CIDLOOKUPRC. + +
+
+
+ Nel gruppo Codice Telefono - Se è selezionata come IN_GROUP DID rotta, allora questo è il codice utilizzato Telefono se un nuovo piombo è creato. + + + + +



+ + VICIDIAL_CALL MENU TABELLA

+
+
+ Menu ID - Questo è l-ID di questo passo del menù chiamata. Questo mostrerà anche come il contesto che viene utilizzata nel dialplan per il presente invito menu. + +
+
+
+ Menu Nome - Questo campo è il nome descrittivo per il menu di chiamata. + +
+
+
+ Menu Prompt - Questo campo contiene il nome del file del prompt audio da riprodurre all-inizio di questo menu. È possibile immettere propmts più in questo campo e gli altri settori prompt separandole con un carattere pipe. + +
+
+
+ Timeout menu - Questo campo è dove si imposta il timeout in secondi che il menu si aspetta per il chiamante per entrare in una scelta DTMF. L-impostazione di questo campo a zero 0 significa che non vi sarà alcun tempo di attesa dopo il prompt si gioca. + +
+
+
+ Menu prompt timeout - Questo campo contiene il nome del file del prompt audio da riprodurre quando il timeout è stato raggiunto. Di default è NESSUNO per giocare senza audio a timeout. + +
+
+
+ Menu valide Prompt - Questo campo contiene il nome del file del prompt audio da riprodurre quando il chiamante ha scelto un-opzione valida. Di default è NESSUNO per giocare senza audio a non validi. + +
+
+
+ Menu Repeat - Questo campo è dove si definisce il numero di volte che il menu svolgeranno dopo la prima volta se non valida scelta è fatta dal chiamante. Di default è di 1 a ripetere il menu di una volta. + +
+
+
+ Menu Check Time - Questo campo è dove si può scegliere se limitare l-accesso al menù di chiamata ora specifici stabiliti nella selezionato di guardia. Se la durata delle chiamate è vuota, questa impostazione verrà ignorata. Di default è 0 per disabili. + +
+
+
+ ID Orario Chiamate - Questa è la chiamata Time ID che verrà utilizzato per limitare i tempi chiamando se il menu Time opzione di controllo è attivata. + +
+
+
+ Chiede Track in Real-Time Report - Questo campo è dove è possibile selezionare se si desidera che la chiamata ad essere monitorati in tempo reale sullo schermo come una chiamata in entrata di tipo IVR. Predefinito è 1 per attivo. + +
+
+
+ Gruppo di monitoraggio - Questo è l-ID che è possibile utilizzare per monitorare le chiamate a questo menu di chiamata se si guarda alla relazione IVR. L-elenco comprende CALLMENU come predefinito così come tutte le In-Groups. + +
+
+
+ Value Opzione - Questo campo è dove si definisce l-opzione di menu, le scelte possibili sono: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Il TIMECHECK speciale opzione può essere utilizzata solo se si dispone di menu Check Time abilitato e c-è un tempo chiamata definito per il Menu. Per eliminare un opzione, è sufficiente impostare il percorso per rimuovere e l-opzione verranno eliminati quando si fa clic sul pulsante INVIA. + +
+
+
+ Opzione Descrizione - Questo campo è dove si può descrivere l-opzione, questa descrizione sarà messo in dialplan come un commento in precedenza l-opzione. + +
+
+
+ Opzione Route - Questo menu contiene le opzioni per sapere dove inviare la chiamata, se questa opzione è selezionata: CALLMENU, ingroup, DID, Hangup, ESTENSIONE, TEL. Per CALLMENU, il Rapporto percorso dovrebbe essere l-ID del menu chiamata che si desidera la chiamata inviata. Per ingroup, l-In-gruppo che si desidera che la chiamata ad essere inviato al bisogno di essere scelto come pure le altre 5 opzioni che hanno bisogno di essere impostato correttamente il percorso di una chiamata a un gruppo di ingresso. Per DID, il Rapporto percorso deve essere il modello DID che si desidera inviare la chiamata al. Per Hangup, il Rapporto percorso può essere il nome di un file audio di giocare prima di appendere la chiamata. Per estensione, il valore Route deve essere l-estensione dialplan che si desidera inviare la chiamata a, e la Strada del valore di contesto è il contesto che l-estensione in cui si trova, se lasciato in bianco il contesto sarà di default per difetto. Per telefono, il Rapporto percorso deve essere il valore login telefono cellulare per l-entrata telefoni che si desidera inviare la chiamata al. Per VoiceMail, il Rapporto percorso deve essere il numero di casella vocale, il mesage disponibile verrà riprodotto. Per AGI, il Rapporto percorso deve essere lo script AGI e tutti i valori che devono essere passati a esso. + +
+
+
+ Route Value Opzione - Questo campo è dove si immette il valore che definisce il punto della opzione selezionata percorso che la chiamata è di essere diretto a. + +
+
+
+ Opzione Route valore di contesto - Questo campo è opzionale e solo utilizzati come percorsi di opzione di proroga. + +
+
+
+ Custom Dilplan Entry - Questo campo consente di inserire in ogni dialplan elementi che si desidera per il menu di chiamata. @@ -3912,1127 +4634,1415 @@ if ($SSoutbound_autodial_active > 0)



- ESTADOS AUTO DEL DIAL DE VICIDIAL ALT

-
+ VICIDIAL_REMOTE_AGENTS TABELLA

+

- Si se fija el campo que marca del Alt-Nu`mero auto, despue`s losplomos que son dispositioned bajo estos estados del dial del alt delautomo`vil tendrán su alt_phone y-o los campos address3 marcadosdespue`s de que cualesquiera de estos ninguno-contesten a estados sefijan. - - - - - -



- -VICIDIAL CODICI PAUSA OPERATORE

-
-
-Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos co`digos de la pausa cuandochascan encendido el boton de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El co`digode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del co`digo de la pausa puede estar nomás de largo de 30 caracteres. - - - - - -



- -VICIDIAL_USER_GROUPS TABELLA

-
-
-Grupo de usuario - este es el nombre corto de un grupo de usuario de Vicidial, intento para no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 20 del campo, mínimo de 2 caracteres. - -
-
-
-Nombre de grupo - esta es la descripcio`n del máximo vicidial del grupo de usuario de 40 caracteres. - -
-
-
-Forza orologio Login - Questa opzione permette di non lasciare che un agente ad accedere al VICIDIAL agente interfaccia se non hanno effettuato laccesso al orologio. Il valore predefinito è N. Vi è la possibilità di esentare admin utenti, i livelli 8 e 9. - -
-
-
-Maiusc esecuzione - Questa impostazione consente di limitare agente login basata su turni che sono selezionati in appresso. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è OFF. - -
-
-
-Gruppo Turni - Si tratta di un elenco dei turni selezionabili che possono limitare il tempo di accesso agenti sul sistema. - -
-
-
-Campañas permitidas - esta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesio`n. La opcio`n de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesio`n a cualquiercampaña en el sistema. - - 0) - { - ?> -
-
-
- QC ammessi Campagne - Si tratta di un elenco di campagne selezionabili che membri di questo gruppo di utenti sarà in grado di QC. The All-CAMPAGNE opzione consente agli utenti di questo gruppo di QC una campagna sul sistema. + Comienzo de la identificacio`n del usuario - esta es la identificacio`n del usuario que comienza se utiliza que cuando las entradas alejadas del agente se insertan en el sistema. Si el número de líneas se fija más altamente de 1, este número es incrementado por uno hasta que cada línea tiene una entrada. Se cerciora de usted crear una nueva cuenta del usuario de VICIDIAL con un nivel de usuario de 4 o grande si usted quisiera que pudieran utilizar la página de vdremote.php para el acceso alejado de la tela de esta cuenta.
-
+
- QC ammessi Inbound Gruppi - Si tratta di un elenco di ingresso selezionabile gruppi che membri di questo gruppo di utenti sarà in grado di QC. TUTTI I GRUPPI opzione consente agli utenti di questo gruppo di utenti di qualsiasi entrata CQ gruppo sul sistema. - + Número de líneas - el define cuánto crea el agente alejado las entradas el sistema, y se determina cuántas líneas piensa que puede enviar con seguridad al número debajo. + +
+
+
+ IP del servidor - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea. + +
+
+
+ Extension externa - este es el número que usted desea las llamadas remitidas a. Cercio`rese de que sea un número dial plan completo y que si usted necesita 9 al principio usted lo pone adentro aquí. Pruebe marcando este número de un telefono en el sistema. + +
+
+
+ Estado - aquí es donde usted da vuelta al agente alejado por intervalos. Tan pronto como el agente sea activo el sistema asume que puede enviarle llamadas. Puede tomar hasta 30 segundos una vez que usted cambie el estado a inactivo para parar el recibir de llamadas. + +
+
+
+ Campaña - aquí es donde usted selecciona la campaña que estos agentes alejados serán registrados en. Necesidades de entrada de utilizar la campaña MÁS CERCANA y de seleccionar las campañas de entrada debajo de e`sa que usted desea recibir llamadas de. + +
+
+
+ Grupos de entrada - aquí es donde usted selecciona a grupos de entrada que usted desea recibir llamadas de si usted ha seleccionado la campaña MÁS CERCANA. - - -



- -VICIDIAL_SCRIPT TABELLA

-
-
-Identificacio`n de la escritura - este es el nombre corto de una escritura de Vicidial. este necesita ser un identificador único. Intente no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. - -
-
-Nombre de la escritura - este es el título de una escritura de Vicidial. este es un resumen corto de los caracteres del máximo 50 de la escritura, mínimo de 2 caracteres. No debe haber espacios o puntuacio`n de la clase en campo de los theis. - -
-
-Comentarios de la escritura - este es tal como donde usted puede poner los comentarios para una escritura de Vicidial - cambiantes para liberar mejora de sept. el 23 -. caracteres del máximo 255, mínimo de 2 caracteres. - -
-
-Testo Script - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: - -
-<iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&phone=--A--phone--B--" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> -</iframe> -
- -
-
-
-Activo - esto se determina si esta escritura se puede seleccionar para ser utilizado por una campaña. - - - - - - 0) - { - ?>



- VICIDIAL_LEAD_FILTRI TABELLA

-
+ VICIDIAL_CAMPAIGN_LISTE

+

- Identificacio`n del filtro - este es el nombre corto de un filtro del plomo de Vicidial. este necesita ser un identificador único. No utilice ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. + Las listas dentro de esta campaña se enumeran aquí, si son activas son denotadas por la Y o N y usted pueden ir a la pantalla de la lista chascando en la identificacio`n de la lista en la primera columna. + +



+ + VICIDIAL_CAMPAIGN_STATUSES TABELLA

+

-
- Nombre del filtro - este es un nombre más descriptivo del filtro. este es un resumen corto de los caracteres del máximo 30 del filtro, mínimo de 2 caracteres. + Con el uso de los estados de encargo de la campaña, usted puede tener estados que existan solamente para una campaña específica. El estado debe ser 1-8 caracteres en longitud, la descripcio`n debe ser 2-30 caracteres en longitud y seleccionable define si demuestra para arriba en VICIDIAL como disposicion. Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas. La opcio`n de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico. -
-
- El filtro comenta - aquí es tal como donde usted puede poner los comentarios para un filtro de Vicidial - las llamadas todos los plomos de California -. los caracteres del máximo 255, mínimo de 2 caracteres. -
-
- Filtro SQL - Aquí es adonde usted pone el fragmento de la pregunta del SQL que usted desea filtrar cerca no comienza o el extremo con Y, eso será agregado por la escritura del cron de la tolva automáticamente. una pregunta del SQL del ejemplo que trabajaría aquí es el called_count 4 y called_count. - + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS TABELLA

+
+
+ Con el uso de los hot keys de encargo de la campaña, los agentes que utilizan el retraso vicidial de la lata del tela-cliente y la disposicion llama apenas presionando una sola llave en su teclado. Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de telefono alterno que marca, ALTPH2 de HotKey - el dialcaliente del telefono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen. -



-VICIDIAL_ORARI CHIAMATA TABELLA

-
-
-Identificacio`n del tiempo de la llamada - este es el nombre corto deuna definicio`n del tiempo de la llamada de Vicidial. este necesitaser un identificador único. No utilice ningunos espacios opuntuacio`n para los caracteres de este máximo 10 del campo, mínimode 2 caracteres. +



-
-
-Nombre del tiempo de la llamada - este es un nombre más descriptivode la definicio`n del tiempo de la llamada. este es un resumen cortode los caracteres del máximo 30 de la definicio`n del tiempo de lallamada, mínimo de 2 caracteres. - -
-
-El tiempo de la llamada comenta - aquí es donde usted puede poner loscomentarios para una definicio`n del tiempo de la llamada de Vicidialtal como -10am hasta los 4pm con restricciones adicionales del estadode la llamada -. los caracteres del máximo 255. - -
-
-Tiempos del comienzo y de parada del defecto - este es el tiempo dedefecto paran que el llamar será permitido que sea comenzado o dentrode esta definicio`n del tiempo de la llamada si la hora de salida dela di`a-de-$$$-SEMANA no se define. 0 es medianoche. Evitar el llamarfijo` totalmente este campo a 2400 y fijo` el tiempo de parada deldefecto a 2400. Permitir el llamar 24 horas al día fijo` la hora desalida a 0 y el tiempo de parada a 2400. - -
-
-Tiempos del comienzo y de parada del día laborable - estos son lostiempos de encargo por el día que se puede fijar para la definicio`ndel tiempo de la llamada que las mismas reglas se aplican como con lostiempos del comienzo y de parada del defecto. - -
-
-Definiciones del tiempo de la llamada del estado - esta es la listade las definiciones específicas del tiempo de la llamada del estadoque se siguen en esta definicio`n del tiempo de la llamada. - -
-
-Estado del tiempo de la llamada del estado - este es el co`digo dedos letras para el estado que esta definicio`n del tiempo que llamaestá para. Para que esto sea en efecto la llamada local mida eltiempo que se fija en la campaña debe tener este expediente deltiempo de la llamada del estado en e`l así como todos los plomos quetienen dos co`digos del estado de la letra en ellos. + VICIDIAL_LEAD_RECYCLE TABELLA

+
+
+ Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. -



-VICIDIAL_SHIFTS TABELLA

-
-
-Maiusc ID - Questo è il nome breve di un Vicidial Maiusc Definizione. Questo deve essere un identificatore unico. Non utilizzare spazi o segni di punteggiatura in questo campo. max 20 caratteri, minimo di 2 caratteri. +



-
-
-Nome Shift - Questo è un nome più descrittivo della Maiuscole Definizione. Questa è una breve sintesi della Maiuscole definizione. max 50 caratteri, minimo di 2 caratteri. + ESTADOS AUTO DEL DIAL DE VICIDIAL ALT

+
+
+ Si se fija el campo que marca del Alt-Nu`mero auto, despue`s losplomos que son dispositioned bajo estos estados del dial del alt delautomo`vil tendrán su alt_phone y-o los campos address3 marcadosdespue`s de que cualesquiera de estos ninguno-contesten a estados sefijan. -
-
-Start Time Shift - Questo è il tempo che la campagna ha inizio turno. Deve essere solo numeri, 9:30 AM sarebbe 5:00 PM 0930 e 1700 sarebbe. - -
-
-Maiusc Lunghezza - Questo è il tempo in ore e minuti che la campagna a turni dura. 8 ore sarebbe 08:00 e 7 ore e 30 minuti sarebbero 07:30. - -
-
-Maiusc Weekdays - In questa sezione si deve scegliere il giorno della settimana che questo spostamento è attivo. - - - - 0) - { + + +



- FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE VICIDIAL

-
+ VICIDIAL CODICI PAUSA OPERATORE

+

- El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidacio`n de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. Tambien, cercio`rese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo: -
    -
  1. Co`digo del plomo del vendedor - demuestra para arriba en el campo de la identificacio`n del vendedor del GUI -
  2. Co`digo de fuente - uso interno solamente para los admins y DBAs -
  3. Identificacio`n de la lista - el número de la lista que estos plomos demostrarán para arriba debajo -
  4. Co`digo del telefono - el prefijo para el telefono number(1 para los E.E.U.U., 01144 para Reino Unido, 01161 para AUS, el etc) -
  5. Número de telefono - debe ser por lo menos 8 dígitos de largo -
  6. Título - título del customer(Mr. Ms señ., etc...) -
  7. Nome -
  8. Secondo Nome -
  9. Cognome -
  10. Indirizzo, linea 1 -
  11. Indirizzo, linea 2 -
  12. Indirizzo, linea 3 -
  13. Citta` -
  14. Stato - limitato a 2 caratteri -
  15. Provincia -
  16. CAP -
  17. Stato -
  18. Sesso -
  19. Data di Nascita -
  20. Numero di Telefono Alternativo -
  21. Email -
  22. Frase De Seguridad -
  23. Note -
+ Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos co`digos de la pausa cuandochascan encendido el boton de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El co`digode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del co`digo de la pausa puede estar nomás de largo de 30 caracteres. -
NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. Tambien, los mo`dulos de un Perl de los pares sedeben cargar para ella para trabajar Tambien -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en estos mirando suarchivo del error_log de apache. Tambien, para los cheques deduplicacio`n contra gampaign enumera, la lista que tiene nuevos plomosel entrar e`l necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos.



- - - - - -TABELLA TELEFONI

-
-
-Extension del telefono - este campo es donde usted pone los nombres del telefono que aparecen al marcar con asterisco no incluyendo el protocolo o la barra vertical del principio. Por ejemplo: para el telefono SIP/test101 del SIP la extension del telefono sería test101. Tambien, para los telefonos IAX2 compruebe que usted utiliza el nombre del telefono completo: IAX2/IAXphone1@IAXphone1 sería IAXphone1@IAXphone1. Para zap los telefonos compruebe que usted pone el canal completo: Zap/25-1 sería 25-1. Otra nota, compruebe que usted fija el protocolo abajo correctamente para su tipo de telefono. - -
-
-
-Número del Dial plan - este campo está para el número que usted marca para tener el anillo del telefono. Este número se define en el archivo de extensions.conf de su servidor asterisco - -
-
-
-Caja de Buzon de Voz - este campo es para la caja del Buzon de voz donde van los mensajes para al usuario de este telefono. Utilizamos esto para comprobar los mensajes del Buzon de voz y para que el usuario pueda acceder al Buzon de Voz desde astGUIclient. - -
-
-
-CallerID de salida - este campo es donde usted incorporara el número del callerID que usted quiera que aparezca en las llamadas de salida. Esto no funciona en las líneas RTB(non-PRI) T1/E1. - -
-
-
-Direccion IP del telefono - This field is for the phone's IP address if it is a VOIP phone. This is an optional field - -
-
-
-Direccion IP del ordenador - This field is for the user's computer IP address. This is an optional field - -
-
-
-IP del servidor - Este menú es donde usted selecciona en que servidor está el telefono activo. - -
-
-
-conexion - la conexion usada para el usuario del telefono a laconexion a los usos del cliente. - -
-
-
-Contraseña - la contraseña usada para el usuario del telefono a laconexion a los usos del cliente. - -
-
-
-Estado - el estado del telefono en el sistema, puede ser ACTIVO y ADMIN permiten que los clientes del GUI trabajen. ADMIN permite el acceso a este Web site de administracion. El resto de los estados no permiten el acceso al GUI o al Web de Admin. - -
-
-
-Cuenta activa - si el telefono está activado ponerla en la lista del cliente del GUI. - -
-
-
-Tipo de telefono - solamente para informacion administrativas. - -
-
-
-Nombre completo - usado por el GUIclient en la lista de telefonos activos. - -
-
-
-Compañía - solamente para las notas administrativas. - -
-
-
-Cuadro - todavía no puesto en ejecucio`n. - -
-
-
-Nuevos mensajes - número de los nuevos mensajes del Buzon de Voz para este telefono en el servidor del asterisco. - -
-
-
-Viejos mensajes - número de los viejos mensajes del Buzon de Voz para este telefono en el servidor del asterisco. - -
-
-
-Protocolo del cliente - el protocolo que el telefono utiliza para conectar con el servidor del asterisco: El Sip, IAX2, Zap. Tambien, para los números External remotos o los números SpeedDial que usted desea enumerar como telefonos. - -
-
-
-GMT local - La diferencia a partir del tiempo malo del ZULÚ del time(or de Greenwich) donde se localiza el telefono. NO AJUSTE POR TIEMPO DE LOS AHORROS DE LA LUZ DEL DÍA. Esto es utilizada por la campaña de VICIDIAL para exhibir exactamente el tiempo y el tiempo del cliente. - -
-
-
-conexion del encargado - esta es la conexion que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor. - -
-
-
-Secreto del encargado - esta es la contraseña que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor. - -
-
-
-Usuario del defecto de VICIDIAL - este debe poner un valor prefijado en el campo del usuario de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún usuario. - -
-
-
-Paso del defecto de VICIDIAL - este debe poner un valor prefijado en el campo de la contraseña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún paso. - -
-
-
-Campaña del defecto de VICIDIAL - este debe poner un valor prefijado en el campo de la campaña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ninguna campaña. - -
-
-
-Parque Exten - esta es la extension del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. - -
-
-
-Extension de la conferencia - esta es la extension del parque de la conferencia del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. - -
-
-
-Parque Exten de VICIDIAL - esta es la extension del estacionamiento del defecto para el cliente app de VICIDIAL. Verifique que diverso trabaje antes de que usted cambie esto. - -
-
-
-Archivo del parque de VICIDIAL - este es el nombre del archivo de la extension del parque del defecto VICIDIAL para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie este limitado a 10 caracteres. - -
-
-
-Prefijo del monitor - este es el prefijo dial plan para supervisar de zap los canales automáticamente dentro del app astGUIclient. Cambie solamente según los expedientes de extensiones de extensions.conf ZapBarge. - -
-
-
-grabacion Exten - esta es la extension dial plan para la extension de la grabacion que se utiliza para caer en conferencias del meetme para registrarlas. Dura generalmente hasta que una hora si no parada verifica con el archivo de extensions.conf antes de cambiar. - -
-
-
-VMAIL Exten principal - esta es la extension dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar. - -
-
-
-VMAIL Dump Exten - This is the dial plan prefix used to send calls directly to a user's voicemail from a live call in the astGUIclient app. verify with extensions.conf file before changing. - -
-
-
-Contexto de Exten - este es el contexto dial plan que este telefono utiliza sobre todo. Se asume que todos los números marcados por los apps del cliente están utilizando este contexto así que es una buena idea cerciorarse de que este es el contexto más amplio posible verifica con el archivo de extensions.conf antes de cambiar. - -
-
-
-DTMF envían el canal - esta es la secuencia del canal usada para enviar sonidos de DTMF en conferencias del meetme de los apps del cliente. Verifique que exten y contexto con el archivo de extensions.conf. - -
-
-
-Grupo de salida de la llamada - este es el grupo de canal que las llamadas de salida de este telefono están puestas de. Hay rutinas de un par en los apps del cliente que utilizan esto. Para zap los canales que usted desea utilizar algo como Zap/g2, porque los troncos IAX2 usted desearía utilizar el prefijo completo de IAX como IAX2/VICItest1:secret@10.10.10.15:4569. Verifique que los troncos con el file(it de extensions.conf sean generalmente lo que usted ha definido como la variable global del TRUNK en la tapa del archivo). - -
-
-
-Localizacio`n del browser - esto es aplicable solamente a los clientes de UNIX/LINUX, el camino absoluto a Mozilla o el browser de Firefox en la máquina verifica esto lanzándolo manualmente. - -
-
-
-Instale el directorio - este es el lugar en donde las escrituras astGUIclient y de astVICIDIAL están situadas en su máquina. Para Win32 debe ser algo como C:\AST_VICI y para UNIX debe ser algo como /usr/local/perl_TK. verifica esto manualmente. - -
-
-
-URL de CallerID - Ústa es la Direccion de la tela de la página usada para hacer operaciones de búsqueda de encargo del callerID que es la Direccion de prueba del defecto: http://astguiclient.sf.net/test_callerid_output.php - -
-
-
-URL del defecto de VICIDIAL - esta es la Direccion de la tela de la página usada para hacer preguntas de encargo de la forma del Web de VICIDIAL que es la Direccion de prueba del defecto: http://astguiclient.sf.net/test_VICIDIAL_output.php - -
-
-
-Call Logging - This is set to true if the call_log.agi file is in place in the extensions.conf file for all outbound and hang up 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly. - -
-
-
-Cambio de Usuario - Set to true to allow user to switch to another user account. NOTE: If user switches they can initiate recording on the new user's phone conversation - -
-
-
-Comunicacio`n - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas. - -
-
-
-Retraso del Admin - sistema a verdad para permitir que el usuario pueda al retraso cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. - -
-
-
-Secuestro del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados. - -
-
-
-Monitor del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados y como herramienta del entrenamiento. - -
-
-
-Parque de llamada - el sistema a verdad para permitir que el usuario pueda parquear invita el asimiento astGUIclient para ser tomado por cualquier otro usuario astGUIclient en el sistema. Las llamadas permanecen en el asimiento para hasta que un retraso de la media-hora entonces. Permitido generalmente para todos. - -
-
-
-Cheque de Updater - fije para verdad para exhibir una advertencia del popup que el tiempo del updater no ha cambiado en 20 segundos. Útil para los usuarios del Admin. - -
-
-
-AF Logging - Set to true to log many actions of astGUIclient usage to a text file on the user's computer. - -
-
-
-La coleta permitio` - al sistema verdad para hacer que los apps del cliente utilicen el sistema central de la coleta del asterisco. Requerido para VICIDIAL y recomendado para todos los usuarios. - -
-
-
-Ventana emergente del CallerID - sistema a verdad para tener en cuenta los números definidos en el archivo de extensions.conf para enviar las pantallas del popup de CallerID a los usuarios astGUIclient. - -
-
-
-Boto`n de VMail - fije para verdad para exhibir el boton de VOICEMAIL y los mensajes cuentan la exhibicio`n en astGUIclient. - -
-
-
-Rápido restaure - fije para verdad para permitir un nuevo índice de restauran de la informacion de la llamada para el astGUIclient. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. - -
-
-
-Rápido restaure la tarifa - en milisegundos. Utilizado solamente si es rápido restaure se permite. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. - -
-
-
-Persistant MySQL - si está permitida la conexion astGUIclient seguirá conectada en vez de conectar cada segundo. Útil si usted hace que un rápido restaure la tarifa fijada. Aumentará el número de conexiones en su máquina de MySQL. - -
-
-
-Número siguiente del dial auto - si está permitido el cliente de VICIDIAL marcará el número siguiente en la lista automáticamente sobre la disposicion de una llamada a menos que seleccionaran "para parar el marcar" en la pantalla de la disposicion. - -
-
-
-Pare Rec despue`s de cada llamada - si está permitido el cliente de VICIDIAL parará se está encendiendo cualquier grabacion despue`s de que haya sido cada llamada dispositioned. Útil si usted está haciendo muchos de la grabacion o usted están utilizando una forma de la tela para accionar la grabacion. - -
-
-
-Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.La característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. - -
-
-
-Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. - -
-
-
-Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. - -
-
-
-Usuario de DBX - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. - -
-
-
-Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. - -
-
-
-DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. - -
-
-
-Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. Secondario server, non utilizzato attualmente. - -
-
-
-Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. Secondario server, non utilizzato attualmente. - -
-
-
-Usuario de DBY - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. Secondario server, non utilizzato attualmente. - -
-
-
-Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. Secondario server, non utilizzato attualmente. - -
-
-
-DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. Secondario server, non utilizzato attualmente. - -
-
-
-ID Alias - LID del alias utilizzati per consentire di telefono carico equilibrato login. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza. - -
-
-
-Alias Nome - Il nome utilizzato per descrivere un alias cellulari, deve essere compresa tra 2 e 50 caratteri di lunghezza. - -
-
-
-Cellulari Login Lista - Lelenco separato da virgole di telefono cellulare utilizzato dati di accesso quando un agente accede tramite telefono cellulare carico equilibrato login. Lagente si trova lapplicazione server attivo con il minor numero di agenti e registrati in una chiamata da tale server di agenti su login. - -
-
-
-Cellulari e-mail - Lindirizzo email associato a questo telefono cellulare entrata. Questo è utilizzato per le impostazioni della segreteria. - -
-
-
-Template ID - Questo è il file di conf che questo modello di telefono cellulare ID entrata utilizzerà per i suoi Asterisk impostazioni. Il valore di default è - INSUSSISTENZA --. - -
-
-
-Conf Override Settings - If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. - -
-
-
-Alias ID gruppo - LID del gruppo alias utilizzati da agenti di effettuare chiamate in uscita le chiamate dalla VICIDIAL agente di interfaccia con le diverse Caller ID. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza. - -
-
-
-Gruppo Alias Nome - Il nome utilizzato per designare un gruppo di alias, deve essere compresa tra 2 e 50 caratteri di lunghezza. - -
-
-
-Numero ID chiamante - Il numero ID del chiamante utilizzato in questo gruppo di Alias. Deve essere solo cifre. - -
-
-
-Caller ID Nome - Il Caller ID nome che possono essere inviati con questo gruppo di Alias. Per quanto ne sappiamo questo funziona solo in Canada e il PRI circuiti IAX loop utilizzando un tronco attraverso Asterisk. - - - - -



- -TABELLA SERVER

-
-
-ID Del Servidor - Este campo es donde usted pone el nombre del servidor del asterisco, no tiene que ser un submarino oficial del dominio, apenas un apodo para identificar el servidor a los usuarios del Admin. - -
-
-
-Descripcio`n del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco. - -
-
-
-IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco. - -
-
-
-Activo - fije si el servidor del asterisco es activo o inactivo. - -
-
-
-Sistema di carico - Queste due statistiche mostrano il loadavg di un sistema di 100 volte e la percentuale di utilizzo della CPU del server e viene aggiornato ogni minuto. Il loadavg dovrebbe essere in media al di sotto di 100, moltiplicato per il numero di CPU core il sistema è, per ottenere prestazioni ottimali. La percentuale di utilizzo della CPU dovrebbe rimanere al di sotto del 50 per ottenere prestazioni ottimali. - -
-
-
-Live Canali - Questo campo indica il numero attuale di Asterisk canali che sono in diretta su il sistema adesso. È importante notare che il numero di canali Asterisk è di solito molto più elevato rispetto al numero effettivo di chiamate su un sistema. Questo campo è aggiornato una volta ogni minuto. - -
-
-
-Utilizzo del disco - Questo campo mostra lutilizzo del disco per ogni partizione su questo server. Questo campo è aggiornato una volta ogni minuto. - -
-
-
-Versione Di Asterisk - Set the version of Asterisk that you have installed on this server. Examples: '1.2', '1.0.8', '1.0.7', 'CVS_HEAD', 'REALLY OLD', etc... This is used because versions 1.0.8 and 1.0.9 have a different method of dealing with Local/ channels, a bug that has been fixed in CVS v1.0, and need to be treated differently when handling their Local/ channels. Also, current CVS_HEAD and the 1.2 release tree uses different manager and command output so it must be treated differently as well. - -
-
-
-Troncos máximos de VICIDIAL - este campo determinará el número de las líneas máximo que el auto-dialer de VICIDIAL procurará invitar este servidor. Si usted desea dedicar dos PRI llenos T1 a VICIDIALing en un servidor entonces usted fijaría esto a 46. E1 defecto es 96. - -
-
-
-Max chiede al secondo - Questa impostazione determina il numero massimo di chiamate che possono essere immessi in uscita dalla selezione automatica di script sul server al secondo. Deve essere da 1 a 100. Il valore predefinito è 20. - -
-
-
-Host Telnet - This is the address or name of the Asterisk server and is how the manager applications connect to it from where they are running. If they are running on the Asterisk server, then the default of 'localhost' is fine. - -
-
-
-Porta Telnet - This is the port of the Asterisk server Manager connection and is how the manager applications connect to it from where they are running. The default of '5038' is fine for a standard install. - -
-
-
-Usuario Del Manager - The username or login used to connect genericly to the Asterisk server manager. Default is 'cron' - -
-
-
-Contraseña del Manager - The secret or password used to connect genericly to the Asterisk server manager. Default is '1234' - -
-
-
-Usuario del Updater del Manager - The username or login used to connect to the Asterisk server manager optimized for the Update scripts. Default is 'updatecron' and assumes the same secret as the generic user. - -
-
-
-Usuario Listen del Manager - The username or login used to connect to the Asterisk server manager optimized for scripts that only listen for output. Default is 'listencron' and assumes the same secret as the generic user. - -
-
-
-Usuario Send del Manager - The username or login used to connect to the Asterisk server manager optimized for scripts that only send Actions to the manager. Default is 'sendcron' and assumes the same secret as the generic user. - -
-
-
-Server GMT offset - The difference in hours from GMT time not adjusted for Daylight-Savings-Time of the server. Default is '-5' - -
-
-
-Extension de Vmail Dump - The extension prefix used on this server to send calls directly through agc to a specific voicemail box. Default is '85026666666666' - -
-
-
-Extension del AD de VICIDIAL - The default extension if none is present in the campaign to send calls to for VICIDIAL auto dialing. Default is '8365' - -
-
-
-Contexto por Defecto - The default dial plan context used for scripts that operate for this server. Default is 'default' - -
-
-
-Funcionamiento del sistema - fijar esta opcio`n a Y permitirá laregistracion del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N. - -
-
-
-Registros del servidor - fijar esta opcio`n a Y permitirá laregistracion de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, Tambien laregistracion de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y. - -
-
-
-AGI hecho salir - fijar esta opcio`n a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO. - -
-
-
-El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N. - -
-
-
-Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0. - -
-
-
-Registrazione Web Link - Questa impostazione consente di ignorare limpostazione predefinita della visualizzazione della registrazione in collegamento lamministratore pagine web. Il valore di default è SERVER_IP. - -
-
-
-Supplente di registrazione IP Server - Questa impostazione è dove si può mettere un server IP o nome di altre macchine che possono essere utilizzati al posto del server_ip tra i link alle registrazioni ai admin pagine web. Il valore di default è vuota. - -
-
-
-Attivo Server Asterisk - Asterisk Se non è in esecuzione su questo server, o se VICIDIAL non dovrebbero utilizzare questo server, o se sono solo utilizzando questo server per altri script come la tramoggia di carico script si desidera impostare questo N. Il valore di default è Y. - -
-
-
-Genera file conf - Se si desidera il sistema di auto-generare asterisco conf file basati su telefoni voci, le voci del vettore e di impostazione di bilanciamento del carico allinterno VICIDIAL quindi impostare ad Y. Il valore di default è Y. - -
-
-
-Ricostruire conf - Se si desidera forzare una ricostruzione del Asterisk conf file o se uno dei telefoni cellulari o vettore voci hanno cambiato allora questo deve essere impostato a Y. Dopo il file di configurazione sono stati generati e Asterisk ha stati ricaricati quindi questo sarà cambiato in N. Il valore di default è Y. - - - - - -



- -vicidial_conf_templates TABELLA

-
-
-Template ID - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per identificare il modello di conf in tutto il sistema. - -
-
-
-Nome modello - Questo è il nome descrittivo del file di conf modello entrata. - -
-
-
-Template Sommario - Questo campo è possibile entrare nello specifico delle impostazioni per essere utilizzati da tutti i telefoni o e-vettori che sono impostate per lutilizzo di questo modello conf. I campi che non dovrebbero essere inclusi in questa casella sono i seguenti: segreto, accountcode, account, nome utente e la casella e-mail. - - - - - -



- -vicidial_server_carriers TABELLA

-
-
-ID Vettore - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per individuare il vettore per questo specifico entrata in tutto il sistema. - -
-
-
-Nome Vettore - Questo è il nome descrittivo del vettore entrata. - -
-
-
-Registrazione Stringa - Questo campo è possibile immettere nella stringa esatta necessaria la SIP IAX o file di configurazione per la registrazione al provider. Opzionale, ma altamente raccomandato se il vettore consente di registrazione. - -
-
-
-Template ID - Questo campo opzionale vi permette di scegliere un file di configurazione per questo modello vettore entrata. - -
-
-
-Conto Entrata - Questo campo è utilizzato se non hai selezionato un modello da utilizzare, ed è dove si può entrare nello specifico le impostazioni da utilizzare per questo vettore. Se si sarà tenuto a chiamate in entrata da questo vettore tronco che si desidera impostare il contesto trunkinbound = allinterno di questo settore, in modo che si può utilizzare il processo di trattamento allinterno DID VICIDIAL. - -
-
-
-Protocollo - Questo campo permette di definire il protocollo da utilizzare per lingresso del vettore. Attualmente solo SIP e IAX sono supportati. - -
-
-
-Globals Stringa - Questo campo opzionale permette di definire una variabile globale da utilizzare per il vettore in dialplan. - -
-
-
-Entrata Dialplan - Questo campo opzionale permette di definire una serie di dialplan voci da utilizzare per questo vettore. - -
-
-
-IP Server - Questo è il server che questo specifico vettore record è associato con. - -
-
-
-Attiva - Questo definisce se il vettore sarà incluso nel generata automaticamente conf file o non. - - - - - -



- -TABLA DE CONFERENCIAS

-
-
-Número de la conferencia - este campo es donde usted pone el número del dialpna de la conferencia del meetme. Tambien se recomienda que el número del meetme en meetme.conf empareja este número para cada entrada. Esto está para las conferencias en astGUIclient y se utiliza para la funcionalidad de leave-3way-call en VICIDIAL. - -
-
-
-IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido. - - - - - 0) - { + VICIDIAL_USER_GROUPS TABELLA

+
+
+ Grupo de usuario - este es el nombre corto de un grupo de usuario de Vicidial, intento para no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 20 del campo, mínimo de 2 caracteres. + +
+
+
+ Nombre de grupo - esta es la descripcio`n del máximo vicidial del grupo de usuario de 40 caracteres. + +
+
+
+ Forza orologio Login - Questa opzione permette di non lasciare che un agente ad accedere al VICIDIAL agente interfaccia se non hanno effettuato laccesso al orologio. Il valore predefinito è N. Vi è la possibilità di esentare admin utenti, i livelli 8 e 9. + +
+
+
+ Maiusc esecuzione - Questa impostazione consente di limitare agente login basata su turni che sono selezionati in appresso. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è OFF. + +
+
+
+ Gruppo Turni - Si tratta di un elenco dei turni selezionabili che possono limitare il tempo di accesso agenti sul sistema. + +
+
+
+ Campañas permitidas - esta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesio`n. La opcio`n de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesio`n a cualquiercampaña en el sistema. + +
+
+
+ Stato agente Viewable Gruppi - Questa è una lista selezionabile di gruppi di utenti e funzioni di utente a cui i membri di questo gruppo utente può visualizzare lo stato delle chiamate, nonché il trasferimento verso l-interno dello schermo agente. The All-GRUPPI opzione consente agli utenti in questo gruppo da vedere e trasferire le chiamate a qualsiasi utente del sistema. LA CAMPAGNA AGENTI opzione consente agli utenti in questo gruppo da vedere e trasferire le chiamate a qualsiasi utente nella campagna che si è registrato in. + +
+
+
+ Visualizza stato agente Time - Questa opzione definisce se l-agente vedrà la quantità di tempo che gli utenti nella loro sidebar agenti sono stati nel loro stato attuale. Di default è N per nulla o portatori di handicap. + + 0) + { + ?> +
+
+
+ QC ammessi Campagne - Si tratta di un elenco di campagne selezionabili che membri di questo gruppo di utenti sarà in grado di QC. The All-CAMPAGNE opzione consente agli utenti di questo gruppo di QC una campagna sul sistema. + +
+
+
+ QC ammessi Inbound Gruppi - Si tratta di un elenco di ingresso selezionabile gruppi che membri di questo gruppo di utenti sarà in grado di QC. TUTTI I GRUPPI opzione consente agli utenti di questo gruppo di utenti di qualsiasi entrata CQ gruppo sul sistema. + + + + +



- VICIDIAL_SERVER_Bauli TABELLA

-
+ VICIDIAL_SCRIPT TABELLA

+

- Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opcio`npara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL. - + Identificacio`n de la escritura - este es el nombre corto de una escritura de Vicidial. este necesita ser un identificador único. Intente no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. + +
+
+ Nombre de la escritura - este es el título de una escritura de Vicidial. este es un resumen corto de los caracteres del máximo 50 de la escritura, mínimo de 2 caracteres. No debe haber espacios o puntuacio`n de la clase en campo de los theis. + +
+
+ Comentarios de la escritura - este es tal como donde usted puede poner los comentarios para una escritura de Vicidial - cambiantes para liberar mejora de sept. el 23 -. caracteres del máximo 255, mínimo de 2 caracteres. + +
+
+ Testo Script - This is where you place the content of a Vicidial Script. Minimum of 2 characters. You can have customer information be auto-populated in this script using "--A--field--B--" where field is one of the following fieldnames: vendor_lead_code, source_id, list_id, gmt_offset_now, called_since_last_reset, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

Hello, can I speak with --A--first_name--B-- --A--last_name--B-- please? Well hello --A--title--B-- --A--last_name--B-- how are you today?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Activo - esto se determina si esta escritura se puede seleccionar para ser utilizado por una campaña. -



-SYSTEM_SETTINGS TABELLA

-
-
-Uso No-Latino - esta opcio`n permite que usted omita la escritura dela exhibicio`n de la tela los caracteres del uso UTF8 y que no haganinguna expresio`n regular de la latino-cara`cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0. + 0) + { + ?> +



-
-
-
-Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificacio`n seancolocados en el webroot en su web server. El defecto es 1. + VICIDIAL_LEAD_FILTRI TABELLA

+
+
+ Identificacio`n del filtro - este es el nombre corto de un filtro del plomo de Vicidial. este necesita ser un identificador único. No utilice ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. -
-
-
-El agente de VICIDIAL inhabilita la exhibicio`n - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesio`n ha sido inhabilitada por el sistema, una accio`n del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia. +
+
+ Nombre del filtro - este es un nombre más descriptivo del filtro. este es un resumen corto de los caracteres del máximo 30 del filtro, mínimo de 2 caracteres. -
-
-
-Permita los mensajes de SIPSAK - si el sistema a 1, este permite queel ajuste de la tabla de los telefonos trabaje correctamente, elservidor enviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. +
+
+ El filtro comenta - aquí es tal como donde usted puede poner los comentarios para un filtro de Vicidial - las llamadas todos los plomos de California -. los caracteres del máximo 255, mínimo de 2 caracteres. -
-
-
-Agente attivo API - Se è impostato a 1, questo permetterà lagente interfaccia API di funzionare. Il valore di default è 0. - -
-
-
-URL casero del Admin - esta es la Direccion del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php. - -
-
-
-Permita el logfile de la transferencia del agente - esta opcio`nregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado. - -
-
-
-Orologio End Of Day - Questa impostazione definisce il momento in cui tutti gli utenti devono essere registrati automaticamente dal sistema orologio. Funziona solo una volta al giorno. deve essere solo il 4 cifre 2 cifre 2 cifre ora e 24 minuti in ora di tempo. Il valore di default è 0000. - -
-
-
-Ultimo orologio automatico Logout - Questo campo visualizza la data degli ultimi auto-logout. - -
-
-
-Agente Screen Header Data Format - Questo menu consente di scegliere il formato della data che compare nella parte superiore della schermata VICIDIAL agente. Le opzioni di questa impostazione sono: il default è MS_DASH_24HR
-MS_DASH_24HR 2008-06-24 23:59:59 - Default data con formato giorno mese anno seguita da 24 ore di tempo
-US_SLASH_24HR 06/24/2008 23:59:59 - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 24 ore di tempo
-EU_SLASH_24HR 24/06/2008 23:59:59 - Europeo con il formato della data giorno mese anno seguita da 24 ore di tempo
-AL_TEXT_24HR JUN 24 23:59:59 - Testo abbreviato con il formato della data giorno mese seguita da 24 ore di tempo
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default data con formato giorno mese anno seguita da 12 ore di tempo
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 12 ore di tempo
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europeo con il formato della data giorno mese anno seguita da 12 ore di tempo
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Testo abbreviato con il formato della data giorno mese seguita da 12 ore di tempo
- -
-
-
-Cliente di agente Screen Formato data - Questo menu consente di scegliere il formato del cliente fuso orario data che compare nella parte superiore della sezione Informazioni per i clienti del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è AL_TEXT_AMPM
-MS_DASH_24HR 2008-06-24 23:59:59 - Default data con formato giorno mese anno seguita da 24 ore di tempo
-US_SLASH_24HR 06/24/2008 23:59:59 - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 24 ore di tempo
-EU_SLASH_24HR 24/06/2008 23:59:59 - Europeo con il formato della data giorno mese anno seguita da 24 ore di tempo
-AL_TEXT_24HR JUN 24 23:59:59 - Testo abbreviato con il formato della data giorno mese seguita da 24 ore di tempo
-MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default data con formato giorno mese anno seguita da 12 ore di tempo
-US_SLASH_AMPM 06/24/2008 11:59:59 PM - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 12 ore di tempo
-EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europeo con il formato della data giorno mese anno seguita da 12 ore di tempo
-AL_TEXT_AMPM JUN 24 11:59:59 PM - Testo abbreviato con il formato della data giorno mese seguita da 12 ore di tempo
- -
-
-
-Agente Telefono Formato schermo clienti - Questo menu consente di scegliere il formato del cliente, numero di telefono che compare nella sezione status del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è US_PARN
-US_DASH 000-000-0000 - USA dash separati numero di telefono
-US_PARN (000)000-0000 - USA dash separati numero con prefisso parentesi
-MS_NODS 0000000000 - N. formattazione
-UK_DASH 00 0000-0000 - UK dash separati numero di telefono con lo spazio dopo il codice di città
-AU_SPAC 000 000 000 - Australia spazio separato numero telefonico
-IT_DASH 0000-000-000 - Italy dash separati numero di telefono
-FR_SPAC 00 00 00 00 00 - France spazio separato numero telefonico
- -
-
-
-Agent interface API Access Attivo - This option allows you to enable or disable the agent interface API. Default is 0. - -
-
-
-Caratteristiche di Attivo QC - Questa opzione consente di attivare o disattivare la qualità o le caratteristiche di controllo della qualità. Il valore di default è 0 per inattive. - -
-
-
-Outbound Auto-Dial Attivo - Questa opzione consente di attivare o disattivare la connessione automatica in uscita entro VICIDIAL, limpostazione di questo campo a 0 rimuove gli elenchi e le sezioni FILTRI e molti campi della campagna Modifica schermi. Manuale per lingresso di selezione sarà ancora consentita lagente da schermo, ma nessuna lista di selezione sarà possibile. Il valore di default è 1, per attività di. - -
-
-
-Max COMPILA invita al secondo - Questa impostazione determina il numero massimo di chiamate che possono essere messi da parte lauto-fill-in uscita di selezione automatica di script per tutti i server, al secondo. Deve essere da 1 a 200. Il valore predefinito è 40. - -
-
-
-Permita la registracion de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0. - -
-
-
-IP del servidor de QueueMetrics - este es el IP address de la base dedatos para su instalacio`n de QueueMetrics. - -
-
-
-Nombre de la base de datos de QueueMetrics - este es el nombre de labase de datos para su base de datos de QueueMetrics. - -
-
-
-conexion de la base de datos de QueueMetrics - este es el nombre delusuario usado para abrirse una sesio`n a su base de datos deQueueMetrics. - -
-
-
-Contraseña de la base de datos de QueueMetrics - esta es lacontraseña usada para abrirse una sesio`n a su base de datos deQueueMetrics. - -
-
-
-URL de QueueMetrics - esta es la Direccion del URL o del Web siteusada para conseguir a su instalacio`n de QueueMetrics. - -
-
-
-Identificacio`n del registro de QueueMetrics - esta es laidentificacio`n del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente. - -
-
-
-QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de telefono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa. - -
-
-
-Attiva Vtiger Integrazione - Questa impostazione consente di attivare Vtiger integrazione con VICIDIAL. Attualmente i collegamenti a Vtiger admin e di ricerca così come utente di replica sono gli unici disponibili funzioni di integrazione. Il valore di default è 0. - -
-
-
-Vtiger DB IP Server - Questo è lindirizzo IP della banca dati per la vostra installazione Vtiger. - -
-
-
-Vtiger Nome Database - Questo è il nome del database per il vostro database Vtiger. - -
-
-
-Vtiger Database Login - Questo è il nome utente utilizzato per accedere al vostro database Vtiger. - -
-
-
-Vtiger Database Password - Questa è la password utilizzata per accedere al tuo database Vtiger. - -
-
-
-Vtiger URL - Questo è lURL o lindirizzo del sito web utilizzato per accedere al tuo Vtiger installazione. - - -



- -VICIDIAL_STATUSES TABELLA

-
-
-Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripcio`n debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposicion del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opcio`n de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico. - - -



- -VICIDIAL_STATUS_CATEGORIES TABELLA

-
-
-Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificacio`n de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripcio`n es opcional y la exhibicio`nde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD. La vendita e Dead Categoria Categoria di piombo sono entrambi utilizzati dal sistema quando Elenco Suggerimento analisi statistiche elenco. - - - 0) - { +
+
+ Filtro SQL - Aquí es adonde usted pone el fragmento de la pregunta del SQL que usted desea filtrar cerca no comienza o el extremo con Y, eso será agregado por la escritura del cron de la tolva automáticamente. una pregunta del SQL del ejemplo que trabajaría aquí es el called_count 4 y called_count. + + + + +



- QC VICIDIAL Codici di stato

-
+ VICIDIAL_ORARI CHIAMATA TABELLA

+

- Il Controllo Qualità-QC VICIDIAL sistema ha il proprio set di codici di stato separato da coloro che, nelle funzioni di gestione delle chiamate VICIDIAL. QC statuse codici deve essere compresa tra 2 e 8 caratteri e non contengono caratteri speciali, come uno spazio o due punti. Il codice di stato, QC descrizione deve essere compresa tra 2 e 30 caratteri di lunghezza. - Identificacio`n del tiempo de la llamada - este es el nombre corto deuna definicio`n del tiempo de la llamada de Vicidial. este necesitaser un identificador único. No utilice ningunos espacios opuntuacio`n para los caracteres de este máximo 10 del campo, mínimode 2 caracteres. + +
+
+ Nombre del tiempo de la llamada - este es un nombre más descriptivode la definicio`n del tiempo de la llamada. este es un resumen cortode los caracteres del máximo 30 de la definicio`n del tiempo de lallamada, mínimo de 2 caracteres. + +
+
+ El tiempo de la llamada comenta - aquí es donde usted puede poner loscomentarios para una definicio`n del tiempo de la llamada de Vicidialtal como -10am hasta los 4pm con restricciones adicionales del estadode la llamada -. los caracteres del máximo 255. + +
+
+ Tiempos del comienzo y de parada del defecto - este es el tiempo dedefecto paran que el llamar será permitido que sea comenzado o dentrode esta definicio`n del tiempo de la llamada si la hora de salida dela di`a-de-$$$-SEMANA no se define. 0 es medianoche. Evitar el llamarfijo` totalmente este campo a 2400 y fijo` el tiempo de parada deldefecto a 2400. Permitir el llamar 24 horas al día fijo` la hora desalida a 0 y el tiempo de parada a 2400. + +
+
+ Tiempos del comienzo y de parada del día laborable - estos son lostiempos de encargo por el día que se puede fijar para la definicio`ndel tiempo de la llamada que las mismas reglas se aplican como con lostiempos del comienzo y de parada del defecto. + +
+
+ Definiciones del tiempo de la llamada del estado - esta es la listade las definiciones específicas del tiempo de la llamada del estadoque se siguen en esta definicio`n del tiempo de la llamada. + +
+
+ Estado del tiempo de la llamada del estado - este es el co`digo dedos letras para el estado que esta definicio`n del tiempo que llamaestá para. Para que esto sea en efecto la llamada local mida eltiempo que se fija en la campaña debe tener este expediente deltiempo de la llamada del estado en e`l así como todos los plomos quetienen dos co`digos del estado de la letra en ellos. + + + + +



+ + VICIDIAL_SHIFTS TABELLA

+
+
+ Maiusc ID - Questo è il nome breve di un Vicidial Maiusc Definizione. Questo deve essere un identificatore unico. Non utilizzare spazi o segni di punteggiatura in questo campo. max 20 caratteri, minimo di 2 caratteri. + +
+
+ Nome Shift - Questo è un nome più descrittivo della Maiuscole Definizione. Questa è una breve sintesi della Maiuscole definizione. max 50 caratteri, minimo di 2 caratteri. + +
+
+ Start Time Shift - Questo è il tempo che la campagna ha inizio turno. Deve essere solo numeri, 9:30 AM sarebbe 5:00 PM 0930 e 1700 sarebbe. + +
+
+ Maiusc Lunghezza - Questo è il tempo in ore e minuti che la campagna a turni dura. 8 ore sarebbe 08:00 e 7 ore e 30 minuti sarebbero 07:30. + +
+
+ Maiusc Weekdays - In questa sezione si deve scegliere il giorno della settimana che questo spostamento è attivo. + + + + + +



+
+ Audio Store - Questa utility consente di caricare file audio per il web server in modo che possano essere distribuite a tutti i server ViciDial in un multi-cluster di server. Una nota importante, solo due tipi di file audio funziona, i file. Wav che sono PCM 16bit 8k e file. GSM che sono 8BIT 8K. Si prega di verificare che i file siano correttamente formattato prima di caricarli qui. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD TABELLA

+
+
+ Music On Hold ID - Questo è il nome breve di un Music On Hold entrata. Questo deve essere un identificatore univoco. Non usare spazi o punteggiatura per questo campo. max 100 caratteri, minimo di 2 caratteri. + +
+
+ Music On Hold Nome - Questo è un nome più descrittivo del Music On Hold entrata. Questo è un breve sunto della Music On Hold contesto e mostrerà come un commento nel musiconhold file vicidial.conf. max 255 caratteri, minimo di 2 caratteri. + +
+
+ Attivo - Questa opzione consente di impostare la musica su attesa ingresso attivo o inattivo. Inattivi rimuovere la voce dal file di conf. + +
+
+ Ordine casuale - Questa opzione permette di definire la riproduzione dei file audio in ordine casuale. Se impostato su N quindi l-ordine definito saranno utilizzati. + +
+
+ Filename - Per aggiungere un nuovo file audio ad un Music On Hold ingresso il file deve essere prima nel negozio di audio, quindi è possibile selezionare il file e fare clic su per aggiungerlo alla lista dei file. Musica in attesa viene aggiornato una volta al minuto, se ci sono state le modifiche apportate. Tutti i file che non figurano in una musica d-ingresso sostengono che sono presenti nella cartella di musica su attesa saranno eliminati. + + + + +



+ + VICIDIAL_TTS_PROMPTS TABELLA

+
+
+ TTS ID - Questo è il nome breve di una voce di TTS. Questo deve essere un identificatore univoco. Non usare spazi o punteggiatura per questo campo. caratteri max 50, minimo di 2 caratteri. + +
+
+ TTS Nome - Questo è un nome più descrittivo della voce di TTS. Questo è un breve sunto della definizione TTS. max 100 caratteri, minimo di 2 caratteri. + +
+
+ Attivo - Questa opzione consente di impostare la voce TTS di attivi o inattivi. + +
+
+ TTS Text - Questo è il testo effettivo ai dati Discorso campo che viene inviato al Cepstral per la creazione del file audio da riprodurre al cliente. è possibile utilizzare Speech Synthesis Markup Language-SSML-in questo campo, per esempio, <break time='1000ms'/> per una pausa di 1 secondo. È inoltre possibile utilizzare diverse variabili, quali nome, cognome e titolo come variabili ViciDial proprio come si fa in uno script: - A first_name - - B -. Ecco una lista delle variabili disponibili:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL TABELLA

+
+
+ Casella Vocale ID - Questo è l-identificativo di tutti i numeri di questa cassetta postale. Questo non deve essere un duplicato di una segreteria telefonica esistente ID o la segreteria telefonica ID di un telefono cellulare sul sistema, minimo di 2 caratteri. + +
+
+ Name - Questo nome è associato a questa casella vocale. max 100 caratteri, minimo di 2 caratteri. + +
+
+ Password - Questa è la password che viene utilizzata per ottenere l-accesso alla casella vocale, quando chiamate in ingresso per controllare i messaggi max 10 caratteri, minimo di 2 caratteri. + +
+
+ Attivo - Questa opzione consente di impostare la casella vocale di attivo o inattivo. Se la casella è attiva non è possibile lasciare dei messaggi su di essa e non è possibile controllare i messaggi in esso. + +
+
+ Email - Questa impostazione consente di avere i messaggi vocali inviati a un account di posta elettronica, se il vostro sistema è configurato per inviare e-mail. Se questo campo è vuoto quindi non e-mail verrà inviato. + +
+
+ Eliminare Casella Vocale Dopo Email - Questa impostazione consente di avere i messaggi vocali eliminato dal sistema dopo che sono state inviate fuori. Di default è N. + + + + + 0) + { + ?> + +



+ + FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE VICIDIAL

+
+
+ El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidacio`n de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. Tambien, cercio`rese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo: +
    +
  1. Co`digo del plomo del vendedor - demuestra para arriba en el campo de la identificacio`n del vendedor del GUI +
  2. Co`digo de fuente - uso interno solamente para los admins y DBAs +
  3. Identificacio`n de la lista - el número de la lista que estos plomos demostrarán para arriba debajo +
  4. Co`digo del telefono - el prefijo para el telefono number(1 para los E.E.U.U., 01144 para Reino Unido, 01161 para AUS, el etc) +
  5. Número de telefono - debe ser por lo menos 8 dígitos de largo +
  6. Título - título del customer(Mr. Ms señ., etc...) +
  7. Nome +
  8. Secondo Nome +
  9. Cognome +
  10. Indirizzo, linea 1 +
  11. Indirizzo, linea 2 +
  12. Indirizzo, linea 3 +
  13. Citta` +
  14. Stato - limitato a 2 caratteri +
  15. Provincia +
  16. CAP +
  17. Stato +
  18. Sesso +
  19. Data di Nascita +
  20. Numero di Telefono Alternativo +
  21. Email +
  22. Frase De Seguridad +
  23. Note +
+ +
NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. Tambien, los mo`dulos de un Perl de los pares sedeben cargar para ella para trabajar Tambien -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en estos mirando suarchivo del error_log de apache. Tambien, para los cheques deduplicacio`n contra gampaign enumera, la lista que tiene nuevos plomosel entrar e`l necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos. + + + + +



+ + + + + + + TABELLA TELEFONI

+
+
+ Extension del telefono - este campo es donde usted pone los nombres del telefono que aparecen al marcar con asterisco no incluyendo el protocolo o la barra vertical del principio. Por ejemplo: para el telefono SIP/test101 del SIP la extension del telefono sería test101. Tambien, para los telefonos IAX2 compruebe que usted utiliza el nombre del telefono completo: IAX2/IAXphone1@IAXphone1 sería IAXphone1@IAXphone1. Para zap los telefonos compruebe que usted pone el canal completo: Zap/25-1 sería 25-1. Otra nota, compruebe que usted fija el protocolo abajo correctamente para su tipo de telefono. + +
+
+
+ Número del Dial plan - este campo está para el número que usted marca para tener el anillo del telefono. Este número se define en el archivo de extensions.conf de su servidor asterisco + +
+
+
+ Caja de Buzon de Voz - este campo es para la caja del Buzon de voz donde van los mensajes para al usuario de este telefono. Utilizamos esto para comprobar los mensajes del Buzon de voz y para que el usuario pueda acceder al Buzon de Voz desde astGUIclient. + +
+
+
+ CallerID de salida - este campo es donde usted incorporara el número del callerID que usted quiera que aparezca en las llamadas de salida. Esto no funciona en las líneas RTB(non-PRI) T1/E1. + +
+
+
+ Direccion IP del telefono - This field is for the phone's IP address if it is a VOIP phone. This is an optional field + +
+
+
+ Direccion IP del ordenador - This field is for the user's computer IP address. This is an optional field + +
+
+
+ IP del servidor - Este menú es donde usted selecciona en que servidor está el telefono activo. + +
+
+
+ conexion - la conexion usada para el usuario del telefono a laconexion a los usos del cliente. + +
+
+
+ Contraseña - la contraseña usada para el usuario del telefono a laconexion a los usos del cliente. IMPORTANTE, questa è la password solo per il web agent login telefono di interfaccia, per cambiare il sip.conf o la password iax.conf, o segreto, per questo dispositivo cellulare è necessario modificare la conf campo segreto più in basso in questa pagina. + +
+
+
+ Estado - el estado del telefono en el sistema, puede ser ACTIVO y ADMIN permiten que los clientes del GUI trabajen. ADMIN permite el acceso a este Web site de administracion. El resto de los estados no permiten el acceso al GUI o al Web de Admin. + +
+
+
+ Cuenta activa - si el telefono está activado ponerla en la lista del cliente del GUI. + +
+
+
+ Tipo de telefono - solamente para informacion administrativas. + +
+
+
+ Nombre completo - usado por el GUIclient en la lista de telefonos activos. + +
+
+
+ Compañía - solamente para las notas administrativas. + +
+
+
+ Cellulari e-mail - Lindirizzo email associato a questo telefono cellulare entrata. Questo è utilizzato per le impostazioni della segreteria. + +
+
+ Eliminare Casella Vocale Dopo Email - Questa impostazione consente di avere i messaggi vocali eliminato dal sistema dopo che sono state inviate fuori. Di default è N. + +
+
+
+ Cuadro - todavía no puesto en ejecucio`n. + +
+
+
+ Nuevos mensajes - número de los nuevos mensajes del Buzon de Voz para este telefono en el servidor del asterisco. + +
+
+
+ Viejos mensajes - número de los viejos mensajes del Buzon de Voz para este telefono en el servidor del asterisco. + +
+
+
+ Protocolo del cliente - el protocolo que el telefono utiliza para conectar con el servidor del asterisco: El Sip, IAX2, Zap. Tambien, para los números External remotos o los números SpeedDial que usted desea enumerar como telefonos. + +
+
+
+ GMT local - La diferencia a partir del tiempo malo del ZULÚ del time(or de Greenwich) donde se localiza el telefono. NO AJUSTE POR TIEMPO DE LOS AHORROS DE LA LUZ DEL DÍA. Esto es utilizada por la campaña de VICIDIAL para exhibir exactamente el tiempo y el tiempo del cliente. + +
+
+
+ Phone Ring Timeout - Questa è la quantità di tempo, in secondi, che il telefono squilla nel dialplan prima di inviare la chiamata alla segreteria telefonica. Predefinito è 60 secondi. + +
+
+
+ conexion del encargado - esta es la conexion que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor. + +
+
+
+ Secreto del encargado - esta es la contraseña que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor. + +
+
+
+ Usuario del defecto de VICIDIAL - este debe poner un valor prefijado en el campo del usuario de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún usuario. + +
+
+
+ Paso del defecto de VICIDIAL - este debe poner un valor prefijado en el campo de la contraseña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún paso. + +
+
+
+ Campaña del defecto de VICIDIAL - este debe poner un valor prefijado en el campo de la campaña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ninguna campaña. + +
+
+
+ Parque Exten - esta es la extension del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Extension de la conferencia - esta es la extension del parque de la conferencia del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Parque Exten de VICIDIAL - esta es la extension del estacionamiento del defecto para el cliente app de VICIDIAL. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Archivo del parque de VICIDIAL - este es el nombre del archivo de la extension del parque del defecto VICIDIAL para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie este limitado a 10 caracteres. + +
+
+
+ Prefijo del monitor - este es el prefijo dial plan para supervisar de zap los canales automáticamente dentro del app astGUIclient. Cambie solamente según los expedientes de extensiones de extensions.conf ZapBarge. + +
+
+
+ grabacion Exten - esta es la extension dial plan para la extension de la grabacion que se utiliza para caer en conferencias del meetme para registrarlas. Dura generalmente hasta que una hora si no parada verifica con el archivo de extensions.conf antes de cambiar. + +
+
+
+ VMAIL Exten principal - esta es la extension dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar. + +
+
+
+ VMAIL Dump Exten - This is the dial plan prefix used to send calls directly to a user's voicemail from a live call in the astGUIclient app. verify with extensions.conf file before changing. + +
+
+
+ Contexto De Exten - Questo è il contesto dial plan che le domande agente, come ViciDial, in primo luogo l-uso. Si presume che tutti i numeri composti dalle applicazioni client utilizzano questo contesto, quindi è una buona idea per assicurarsi che questo è il contesto più ampio possibile. verificare con il file extensions.conf prima di modificare. di default è di default. + +
+
+
+ Telefono Contesto - Questo è il contesto dial plan che questo telefono cellulare sarà utilizzato per effettuare chiamate in uscita. Se si esegue un call center e non volete che i vostri agenti per essere in grado di effettuare chiamate in uscita al di fuori della domanda ViciDial per esempio, allora devi impostare questo campo ad un contesto dialplan che non esiste, qualcosa come agente-nodial. di default è di default. + +
+
+
+ Conf file segreto - Questo è il segreto, o la password, per il telefono cellulare in auto o IAX SIP-generated conf file per questo telefono. Limite è dash 20 caratteri alfanumerici e underscore accettato. Di default è di prova. + +
+
+
+ DTMF envían el canal - esta es la secuencia del canal usada para enviar sonidos de DTMF en conferencias del meetme de los apps del cliente. Verifique que exten y contexto con el archivo de extensions.conf. + +
+
+
+ Grupo de salida de la llamada - este es el grupo de canal que las llamadas de salida de este telefono están puestas de. Hay rutinas de un par en los apps del cliente que utilizan esto. Para zap los canales que usted desea utilizar algo como Zap/g2, porque los troncos IAX2 usted desearía utilizar el prefijo completo de IAX como IAX2/VICItest1:secret@10.10.10.15:4569. Verifique que los troncos con el file(it de extensions.conf sean generalmente lo que usted ha definido como la variable global del TRUNK en la tapa del archivo). + +
+
+
+ Localizacio`n del browser - esto es aplicable solamente a los clientes de UNIX/LINUX, el camino absoluto a Mozilla o el browser de Firefox en la máquina verifica esto lanzándolo manualmente. + +
+
+
+ Instale el directorio - este es el lugar en donde las escrituras astGUIclient y de astVICIDIAL están situadas en su máquina. Para Win32 debe ser algo como C:\AST_VICI y para UNIX debe ser algo como /usr/local/perl_TK. verifica esto manualmente. + +
+
+
+ URL de CallerID - Ústa es la Direccion de la tela de la página usada para hacer operaciones de búsqueda de encargo del callerID que es la Direccion de prueba del defecto: http://astguiclient.sf.net/test_callerid_output.php + +
+
+
+ URL del defecto de VICIDIAL - esta es la Direccion de la tela de la página usada para hacer preguntas de encargo de la forma del Web de VICIDIAL que es la Direccion de prueba del defecto: http://astguiclient.sf.net/test_VICIDIAL_output.php + +
+
+
+ Call Logging - This is set to true if the call_log.agi file is in place in the extensions.conf file for all outbound and hang up 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly. + +
+
+
+ Cambio de Usuario - Set to true to allow user to switch to another user account. NOTE: If user switches they can initiate recording on the new user's phone conversation + +
+
+
+ Comunicacio`n - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas. + +
+
+
+ Retraso del Admin - sistema a verdad para permitir que el usuario pueda al retraso cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. + +
+
+
+ Secuestro del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados. + +
+
+
+ Monitor del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension cualquier línea en la voluntad con astGUIclient. Buena idea de permitir solamente esto para los usuarios del Admin. Pero es muy útil para los encargados y como herramienta del entrenamiento. + +
+
+
+ Parque de llamada - el sistema a verdad para permitir que el usuario pueda parquear invita el asimiento astGUIclient para ser tomado por cualquier otro usuario astGUIclient en el sistema. Las llamadas permanecen en el asimiento para hasta que un retraso de la media-hora entonces. Permitido generalmente para todos. + +
+
+
+ Cheque de Updater - fije para verdad para exhibir una advertencia del popup que el tiempo del updater no ha cambiado en 20 segundos. Útil para los usuarios del Admin. + +
+
+
+ AF Logging - Set to true to log many actions of astGUIclient usage to a text file on the user's computer. + +
+
+
+ La coleta permitio` - al sistema verdad para hacer que los apps del cliente utilicen el sistema central de la coleta del asterisco. Requerido para VICIDIAL y recomendado para todos los usuarios. + +
+
+
+ Ventana emergente del CallerID - sistema a verdad para tener en cuenta los números definidos en el archivo de extensions.conf para enviar las pantallas del popup de CallerID a los usuarios astGUIclient. + +
+
+
+ Boto`n de VMail - fije para verdad para exhibir el boton de VOICEMAIL y los mensajes cuentan la exhibicio`n en astGUIclient. + +
+
+
+ Rápido restaure - fije para verdad para permitir un nuevo índice de restauran de la informacion de la llamada para el astGUIclient. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. + +
+
+
+ Rápido restaure la tarifa - en milisegundos. Utilizado solamente si es rápido restaure se permite. La tarifa inhabilitada defecto es el ms 1000 (1 segundo). Puede aumentar la carga de sistema si usted baja este número. + +
+
+
+ Persistant MySQL - si está permitida la conexion astGUIclient seguirá conectada en vez de conectar cada segundo. Útil si usted hace que un rápido restaure la tarifa fijada. Aumentará el número de conexiones en su máquina de MySQL. + +
+
+
+ Número siguiente del dial auto - si está permitido el cliente de VICIDIAL marcará el número siguiente en la lista automáticamente sobre la disposicion de una llamada a menos que seleccionaran "para parar el marcar" en la pantalla de la disposicion. + +
+
+
+ Pare Rec despue`s de cada llamada - si está permitido el cliente de VICIDIAL parará se está encendiendo cualquier grabacion despue`s de que haya sido cada llamada dispositioned. Útil si usted está haciendo muchos de la grabacion o usted están utilizando una forma de la tela para accionar la grabacion. + +
+
+
+ Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.La característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. + +
+
+
+ Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. + +
+
+
+ Usuario de DBX - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. + +
+
+
+ Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. + +
+
+
+ DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. + +
+
+
+ Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. Secondario server, non utilizzato attualmente. + +
+
+
+ Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. Secondario server, non utilizzato attualmente. + +
+
+
+ Usuario de DBY - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. Secondario server, non utilizzato attualmente. + +
+
+
+ Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. Secondario server, non utilizzato attualmente. + +
+
+
+ DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. Secondario server, non utilizzato attualmente. + +
+
+
+ ID Alias - LID del alias utilizzati per consentire di telefono carico equilibrato login. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza. + +
+
+
+ Alias Nome - Il nome utilizzato per descrivere un alias cellulari, deve essere compresa tra 2 e 50 caratteri di lunghezza. + +
+
+
+ Cellulari Login Lista - Lelenco separato da virgole di telefono cellulare utilizzato dati di accesso quando un agente accede tramite telefono cellulare carico equilibrato login. Lagente si trova lapplicazione server attivo con il minor numero di agenti e registrati in una chiamata da tale server di agenti su login. + +
+
+
+ Template ID - Questo è il file di conf che questo modello di telefono cellulare ID entrata utilizzerà per i suoi Asterisk impostazioni. Il valore di default è - INSUSSISTENZA --. + +
+
+
+ Conf Override Settings - If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Alias ID gruppo - LID del gruppo alias utilizzati da agenti di effettuare chiamate in uscita le chiamate dalla VICIDIAL agente di interfaccia con le diverse Caller ID. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza. + +
+
+
+ Gruppo Alias Nome - Il nome utilizzato per designare un gruppo di alias, deve essere compresa tra 2 e 50 caratteri di lunghezza. + +
+
+
+ Numero ID chiamante - Il numero ID del chiamante utilizzato in questo gruppo di Alias. Deve essere solo cifre. + +
+
+
+ Caller ID Nome - Il Caller ID nome che possono essere inviati con questo gruppo di Alias. Per quanto ne sappiamo questo funziona solo in Canada e il PRI circuiti IAX loop utilizzando un tronco attraverso Asterisk. + + + + +



+ + TABELLA SERVER

+
+
+ ID Del Servidor - Este campo es donde usted pone el nombre del servidor del asterisco, no tiene que ser un submarino oficial del dominio, apenas un apodo para identificar el servidor a los usuarios del Admin. + +
+
+
+ Descripcio`n del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco. + +
+
+
+ IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco. + +
+
+
+ Activo - fije si el servidor del asterisco es activo o inactivo. + +
+
+
+ Sistema di carico - Queste due statistiche mostrano il loadavg di un sistema di 100 volte e la percentuale di utilizzo della CPU del server e viene aggiornato ogni minuto. Il loadavg dovrebbe essere in media al di sotto di 100, moltiplicato per il numero di CPU core il sistema è, per ottenere prestazioni ottimali. La percentuale di utilizzo della CPU dovrebbe rimanere al di sotto del 50 per ottenere prestazioni ottimali. + +
+
+
+ Live Canali - Questo campo indica il numero attuale di Asterisk canali che sono in diretta su il sistema adesso. È importante notare che il numero di canali Asterisk è di solito molto più elevato rispetto al numero effettivo di chiamate su un sistema. Questo campo è aggiornato una volta ogni minuto. + +
+
+
+ Utilizzo del disco - Questo campo mostra lutilizzo del disco per ogni partizione su questo server. Questo campo è aggiornato una volta ogni minuto. + +
+
+
+ Versione Di Asterisk - Set the version of Asterisk that you have installed on this server. Examples: '1.2', '1.0.8', '1.0.7', 'CVS_HEAD', 'REALLY OLD', etc... This is used because versions 1.0.8 and 1.0.9 have a different method of dealing with Local/ channels, a bug that has been fixed in CVS v1.0, and need to be treated differently when handling their Local/ channels. Also, current CVS_HEAD and the 1.2 release tree uses different manager and command output so it must be treated differently as well. + +
+
+
+ Troncos máximos de VICIDIAL - este campo determinará el número de las líneas máximo que el auto-dialer de VICIDIAL procurará invitar este servidor. Si usted desea dedicar dos PRI llenos T1 a VICIDIALing en un servidor entonces usted fijaría esto a 46. E1 defecto es 96. + +
+
+
+ Max chiede al secondo - Questa impostazione determina il numero massimo di chiamate che possono essere immessi in uscita dalla selezione automatica di script sul server al secondo. Deve essere da 1 a 100. Il valore predefinito è 20. + +
+
+
+ Host Telnet - This is the address or name of the Asterisk server and is how the manager applications connect to it from where they are running. If they are running on the Asterisk server, then the default of 'localhost' is fine. + +
+
+
+ Porta Telnet - This is the port of the Asterisk server Manager connection and is how the manager applications connect to it from where they are running. The default of '5038' is fine for a standard install. + +
+
+
+ Usuario Del Manager - The username or login used to connect genericly to the Asterisk server manager. Default is 'cron' + +
+
+
+ Contraseña del Manager - The secret or password used to connect genericly to the Asterisk server manager. Default is '1234' + +
+
+
+ Usuario del Updater del Manager - The username or login used to connect to the Asterisk server manager optimized for the Update scripts. Default is 'updatecron' and assumes the same secret as the generic user. + +
+
+
+ Usuario Listen del Manager - The username or login used to connect to the Asterisk server manager optimized for scripts that only listen for output. Default is 'listencron' and assumes the same secret as the generic user. + +
+
+
+ Usuario Send del Manager - The username or login used to connect to the Asterisk server manager optimized for scripts that only send Actions to the manager. Default is 'sendcron' and assumes the same secret as the generic user. + +
+
+
+ Conf file segreto - Questo è il segreto, o la password, per il server in automatico IAX-generated conf file per questo server su altri server. Limite è dash 20 caratteri alfanumerici e underscore accettato. Di default è di prova. + +
+
+
+ Server GMT offset - The difference in hours from GMT time not adjusted for Daylight-Savings-Time of the server. Default is '-5' + +
+
+
+ Extension de Vmail Dump - The extension prefix used on this server to send calls directly through agc to a specific voicemail box. Default is '85026666666666' + +
+
+
+ Extension del AD de VICIDIAL - The default extension if none is present in the campaign to send calls to for VICIDIAL auto dialing. Default is '8365' + +
+
+
+ Contexto por Defecto - The default dial plan context used for scripts that operate for this server. Default is 'default' + +
+
+
+ Funcionamiento del sistema - fijar esta opcio`n a Y permitirá laregistracion del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N. + +
+
+
+ Registros del servidor - fijar esta opcio`n a Y permitirá laregistracion de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, Tambien laregistracion de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y. + +
+
+
+ AGI hecho salir - fijar esta opcio`n a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO. + +
+
+
+ El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N. + +
+
+
+ VICIDIAL Balance Rank - Questo campo consente di impostare l-ordine in cui il server deve essere utilizzato per chiamate di equilibrio, se l-equilibrio di composizione è abilitato. Il server con il rango più alto sarà utilizzato prima immissione Balance riempire le chiamate. Di default è 0. + +
+
+
+ Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0. + +
+
+
+ Registrazione Web Link - Questa impostazione consente di ignorare limpostazione predefinita della visualizzazione della registrazione in collegamento lamministratore pagine web. Il valore di default è SERVER_IP. + +
+
+
+ Supplente di registrazione IP Server - Questa impostazione è dove si può mettere un server IP o nome di altre macchine che possono essere utilizzati al posto del server_ip tra i link alle registrazioni ai admin pagine web. Il valore di default è vuota. + +
+
+
+ Attivo Server Asterisk - Asterisk Se non è in esecuzione su questo server, o se VICIDIAL non dovrebbero utilizzare questo server, o se sono solo utilizzando questo server per altri script come la tramoggia di carico script si desidera impostare questo N. Il valore di default è Y. + +
+
+
+ Attivo Server Agent - L-impostazione di questa opzione per N impedirà agenti di essere in grado di accedere al server attraverso lo schermo vicidial agente. Questo è molto utile quando si utilizza un telefono cellulare carico login setup equilibrata. Di default è Y. + +
+
+
+ Genera file conf - Se si desidera il sistema di auto-generare asterisco conf file basati su telefoni voci, le voci del vettore e di impostazione di bilanciamento del carico allinterno VICIDIAL quindi impostare ad Y. Il valore di default è Y. + +
+
+
+ Ricostruire conf - Se si desidera forzare una ricostruzione del Asterisk conf file o se uno dei telefoni cellulari o vettore voci hanno cambiato allora questo deve essere impostato a Y. Dopo il file di configurazione sono stati generati e Asterisk ha stati ricaricati quindi questo sarà cambiato in N. Il valore di default è Y. + +
+
+
+ Ricostruire Music On Hold - Se si vuole imporre una ricostruzione della musica su file di attesa o se la musica su voci di attesa o voci di server hanno cambiato allora questo dovrebbe essere impostato su Y. Dopo la musica in attesa dei file sono state sincronizzate e ricaricate allora questo sarà cambiato N. Il valore predefinito è Y. + +
+
+
+ Suoni Update - Se si vuole forzare un controllo dei file audio su questo server, e l-archivio centrale audio è abilitato come impostazione di sistema, quindi questo settore permetterà i suoni di aggiornamento per eseguire in cima successiva del minuto. Ogni volta che un file audio viene caricato tramite l-interfaccia web questa viene automaticamente impostato su Y per tutti i server che sono attivi Asterisk. Di default è N. + +
+
+
+ ViciDial Limite di registrazione - Questo campo è dove si imposta il numero massimo di minuti che una registrazione di chiamata da parte ViciDial può essere. Predefinito è 60 minuti. + +
+
+
+ Carrier Logging Attivo - Questa impostazione consente di registrare tutti i codici hangup ritorno per qualsiasi composizione lista delle chiamate in uscita che si sta ponendo. Predefinito è N. + + + + + + +



+ + vicidial_conf_templates TABELLA

+
+
+ Template ID - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per identificare il modello di conf in tutto il sistema. + +
+
+
+ Nome modello - Questo è il nome descrittivo del file di conf modello entrata. + +
+
+
+ Template Sommario - Questo campo è possibile entrare nello specifico delle impostazioni per essere utilizzati da tutti i telefoni o e-vettori che sono impostate per lutilizzo di questo modello conf. I campi che non dovrebbero essere inclusi in questa casella sono i seguenti: segreto, accountcode, account, nome utente e la casella e-mail. + + + + + +



+ + vicidial_server_carriers TABELLA

+
+
+ ID Vettore - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per individuare il vettore per questo specifico entrata in tutto il sistema. + +
+
+
+ Nome Vettore - Questo è il nome descrittivo del vettore entrata. + +
+
+
+ Carrier Descrizione - Questo è messo nei commenti dei file asterisco conf sopra il dialplan e le voci del conto. Massimo 255 caratteri. + +
+
+
+ Registrazione Stringa - Questo campo è possibile immettere nella stringa esatta necessaria la SIP IAX o file di configurazione per la registrazione al provider. Opzionale, ma altamente raccomandato se il vettore consente di registrazione. + +
+
+
+ Template ID - Questo campo opzionale vi permette di scegliere un file di configurazione per questo modello vettore entrata. + +
+
+
+ Conto Entrata - Questo campo è utilizzato se non hai selezionato un modello da utilizzare, ed è dove si può entrare nello specifico le impostazioni da utilizzare per questo vettore. Se si sarà tenuto a chiamate in entrata da questo vettore tronco che si desidera impostare il contesto trunkinbound = allinterno di questo settore, in modo che si può utilizzare il processo di trattamento allinterno DID VICIDIAL. + +
+
+
+ Protocollo - Questo campo permette di definire il protocollo da utilizzare per lingresso del vettore. Attualmente solo SIP e IAX sono supportati. + +
+
+
+ Globals Stringa - Questo campo opzionale permette di definire una variabile globale da utilizzare per il vettore in dialplan. + +
+
+
+ Entrata Dialplan - Questo campo opzionale permette di definire una serie di dialplan voci da utilizzare per questo vettore. + +
+
+
+ IP Server - Questo è il server che questo specifico vettore record è associato con. + +
+
+
+ Attiva - Questo definisce se il vettore sarà incluso nel generata automaticamente conf file o non. + + + + + +



+ + TABLA DE CONFERENCIAS

+
+
+ Número de la conferencia - este campo es donde usted pone el número del dialpna de la conferencia del meetme. Tambien se recomienda que el número del meetme en meetme.conf empareja este número para cada entrada. Esto está para las conferencias en astGUIclient y se utiliza para la funcionalidad de leave-3way-call en VICIDIAL. + +
+
+
+ IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_Bauli TABELLA

+
+
+ Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opcio`npara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL. + + + + + +



+ + SYSTEM_SETTINGS TABELLA

+
+
+ Uso No-Latino - esta opcio`n permite que usted omita la escritura dela exhibicio`n de la tela los caracteres del uso UTF8 y que no haganinguna expresio`n regular de la latino-cara`cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0. + +
+
+
+ Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificacio`n seancolocados en el webroot en su web server. El defecto es 1. + +
+
+
+ El agente de VICIDIAL inhabilita la exhibicio`n - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesio`n ha sido inhabilitada por el sistema, una accio`n del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia. + +
+
+
+ Permita los mensajes de SIPSAK - si el sistema a 1, este permite queel ajuste de la tabla de los telefonos trabaje correctamente, elservidor enviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Agente attivo API - Se è impostato a 1, questo permetterà lagente interfaccia API di funzionare. Il valore di default è 0. + +
+
+
+ URL casero del Admin - esta es la Direccion del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php. + +
+
+
+ Permita el logfile de la transferencia del agente - esta opcio`nregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado. + +
+
+
+ Orologio End Of Day - Questa impostazione definisce il momento in cui tutti gli utenti devono essere registrati automaticamente dal sistema orologio. Funziona solo una volta al giorno. deve essere solo il 4 cifre 2 cifre 2 cifre ora e 24 minuti in ora di tempo. Il valore di default è 0000. + +
+
+
+ Ultimo orologio automatico Logout - Questo campo visualizza la data degli ultimi auto-logout. + +
+
+
+ Agente Screen Header Data Format - Questo menu consente di scegliere il formato della data che compare nella parte superiore della schermata VICIDIAL agente. Le opzioni di questa impostazione sono: il default è MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Default data con formato giorno mese anno seguita da 24 ore di tempo
+ US_SLASH_24HR 06/24/2008 23:59:59 - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 24 ore di tempo
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europeo con il formato della data giorno mese anno seguita da 24 ore di tempo
+ AL_TEXT_24HR JUN 24 23:59:59 - Testo abbreviato con il formato della data giorno mese seguita da 24 ore di tempo
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default data con formato giorno mese anno seguita da 12 ore di tempo
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 12 ore di tempo
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europeo con il formato della data giorno mese anno seguita da 12 ore di tempo
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Testo abbreviato con il formato della data giorno mese seguita da 12 ore di tempo
+ +
+
+
+ Cliente di agente Screen Formato data - Questo menu consente di scegliere il formato del cliente fuso orario data che compare nella parte superiore della sezione Informazioni per i clienti del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Default data con formato giorno mese anno seguita da 24 ore di tempo
+ US_SLASH_24HR 06/24/2008 23:59:59 - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 24 ore di tempo
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europeo con il formato della data giorno mese anno seguita da 24 ore di tempo
+ AL_TEXT_24HR JUN 24 23:59:59 - Testo abbreviato con il formato della data giorno mese seguita da 24 ore di tempo
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default data con formato giorno mese anno seguita da 12 ore di tempo
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 12 ore di tempo
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europeo con il formato della data giorno mese anno seguita da 12 ore di tempo
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Testo abbreviato con il formato della data giorno mese seguita da 12 ore di tempo
+ +
+
+
+ Agente Telefono Formato schermo clienti - Questo menu consente di scegliere il formato del cliente, numero di telefono che compare nella sezione status del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è US_PARN
+ US_DASH 000-000-0000 - USA dash separati numero di telefono
+ US_PARN (000)000-0000 - USA dash separati numero con prefisso parentesi
+ MS_NODS 0000000000 - N. formattazione
+ UK_DASH 00 0000-0000 - UK dash separati numero di telefono con lo spazio dopo il codice di città
+ AU_SPAC 000 000 000 - Australia spazio separato numero telefonico
+ IT_DASH 0000-000-000 - Italy dash separati numero di telefono
+ FR_SPAC 00 00 00 00 00 - France spazio separato numero telefonico
+ +
+
+
+ Agent interface API Access Attivo - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Solo agente di richiamata Campagna Lock - Questa opzione definisce se richiamate AGENTONLY sono bloccati per la campagna che l-agente originariamente creato sotto. Impostare questo a 1 significa che l-agente non può che chiamarli dalla campagna sono stati fissati nel quadro, 0 significa che l-agente può accedervi non importa quale campagna sono collegato. Di default è 1. + +
+
+
+ Centrale Sound Control Attivo - Questa opzione definisce se il sistema audio di sincronizzazione è attivo su tutti i server. Di default è 0 per inattivo. + +
+
+
+ Suoni Web Server - Questo è il nome del server o l-indirizzo IP del server Web che sarà la gestione dei file audio su questo sistema, questo deve corrispondere il nome del server o IP della macchina che si sta tentando di accedere alla pagina web audio_store.php o non funzionerà . Di default è 127.0.0.1. + +
+
+
+ Suoni Web Directory - Questa auto-generata nome della directory è creata in modo casuale dal sistema come il luogo che l-archivio audio saranno mantenute. Tutti i file audio risiede in questa directory. + +
+
+
+ Attivo Server Casella Vocale - Nei sistemi multi-server, questo è il server che consente di gestire tutte le caselle di posta vocale. Questo server è anche il luogo dove il dial-in generati prompt saranno caricati dai, il 8.168 registrazioni. + +
+
+
+ Outbound Auto-Dial Attivo - Questa opzione consente di attivare o disattivare la connessione automatica in uscita entro VICIDIAL, limpostazione di questo campo a 0 rimuove gli elenchi e le sezioni FILTRI e molti campi della campagna Modifica schermi. Manuale per lingresso di selezione sarà ancora consentita lagente da schermo, ma nessuna lista di selezione sarà possibile. Il valore di default è 1, per attività di. + +
+
+
+ Ratio Dial Limit - Questo è il limite massimo del livello di linea automatica nella schermata di campagna. + +
+
+
+ Max COMPILA invita al secondo - Questa impostazione determina il numero massimo di chiamate che possono essere messi da parte lauto-fill-in uscita di selezione automatica di script per tutti i server, al secondo. Deve essere da 1 a 200. Il valore predefinito è 40. + +
+
+
+ Consentire Custom Dialplan Entries - Questa opzione consente di immettere le linee personalizzate dialplan in Call menu. Di default è 0 per inattivo. + +
+
+
+ Territori Utente Attivo - Questa impostazione consente di attivare l-utente Territori setttings dalla schermata di modifica degli utenti. Questa caratteristica è stata aggiunta per consentire una maggiore integrazione con un-installazione personalizzata Vtiger, ma può avere applicazioni in un sistema di puro ViciDial pure. Di default è 0 per disabili. + +
+
+
+ Consentire Webform Seconda - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Consentire l-integrazione TTS - Questa impostazione consente di attivare Text To Speech integrazione con Cepstral. Questo è attualmente disponibile solo per le campagne di tipo uscita Indagine. Di default è 0 per disabili. + +
+
+
+ Caratteristiche di Attivo QC - Questa opzione consente di attivare o disattivare la qualità o le caratteristiche di controllo della qualità. Il valore di default è 0 per inattive. + +
+
+
+ Permita la registracion de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0. + +
+
+
+ IP del servidor de QueueMetrics - este es el IP address de la base dedatos para su instalacio`n de QueueMetrics. + +
+
+
+ Nombre de la base de datos de QueueMetrics - este es el nombre de labase de datos para su base de datos de QueueMetrics. + +
+
+
+ conexion de la base de datos de QueueMetrics - este es el nombre delusuario usado para abrirse una sesio`n a su base de datos deQueueMetrics. + +
+
+
+ Contraseña de la base de datos de QueueMetrics - esta es lacontraseña usada para abrirse una sesio`n a su base de datos deQueueMetrics. + +
+
+
+ URL de QueueMetrics - esta es la Direccion del URL o del Web siteusada para conseguir a su instalacio`n de QueueMetrics. + +
+
+
+ Identificacio`n del registro de QueueMetrics - esta es laidentificacio`n del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente. + +
+
+
+ QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de telefono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa. + +
+
+
+ Attiva Vtiger Integrazione - Questa impostazione consente di attivare Vtiger integrazione con VICIDIAL. Attualmente i collegamenti a Vtiger admin e di ricerca così come utente di replica sono gli unici disponibili funzioni di integrazione. Il valore di default è 0. + +
+
+
+ Vtiger DB IP Server - Questo è lindirizzo IP della banca dati per la vostra installazione Vtiger. + +
+
+
+ Vtiger Nome Database - Questo è il nome del database per il vostro database Vtiger. + +
+
+
+ Vtiger Database Login - Questo è il nome utente utilizzato per accedere al vostro database Vtiger. + +
+
+
+ Vtiger Database Password - Questa è la password utilizzata per accedere al tuo database Vtiger. + +
+
+
+ Vtiger URL - Questo è lURL o lindirizzo del sito web utilizzato per accedere al tuo Vtiger installazione. + + +



+ + VICIDIAL_STATUSES TABELLA

+
+
+ Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripcio`n debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposicion del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opcio`n de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico. Ci sono anche 5 impostazioni aggiuntive che definiscono il tipo di stato: in vendita, DNC, contatto con i clienti, non interessati, impraticabile. + + + +



+ + VICIDIAL_STATUS_CATEGORIES TABELLA

+
+
+ Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificacio`n de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripcio`n es opcional y la exhibicio`nde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD. La vendita e Dead Categoria Categoria di piombo sono entrambi utilizzati dal sistema quando Elenco Suggerimento analisi statistiche elenco. + + + 0) + { + ?> +



+ + QC VICIDIAL Codici di stato

+
+
+ Il Controllo Qualità-QC VICIDIAL sistema ha il proprio set di codici di stato separato da coloro che, nelle funzioni di gestione delle chiamate VICIDIAL. QC statuse codici deve essere compresa tra 2 e 8 caratteri e non contengono caratteri speciali, come uno spazio o due punti. Il codice di stato, QC descrizione deve essere compresa tra 2 e 30 caratteri di lunghezza. + + + + +







+







+ FINE +
+ - - - -







-







-FINE -
-\n"; - echo "\n"; - echo "\n"; - echo ""; - - $stmt="SELECT dial_statuses,local_call_time,lead_filter_id from vicidial_campaigns where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $dial_statuses = $row[0]; - $local_call_time = $row[1]; - if ($lead_filter_id=='') { - $lead_filter_id = $row[2]; - if ($lead_filter_id=='') + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') { - $lead_filter_id='NONE'; + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Demuestre La Cuenta De los Plomos De Dialable -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTE: $camp_lists
\n"; + echo "ESITI: $dial_statuses
\n"; + echo "FILTRO: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; } - - $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; - $rslt=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rslt); - $camp_lists=''; - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; - if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} - } - $camp_lists = eregi_replace(".$","",$camp_lists); - - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} else - {$fSQL = '';} - - - echo "

\n"; - echo "Demuestre La Cuenta De los Plomos De Dialable -

\n"; - echo "CAMPAIGN: $campaign_id
\n"; - echo "LISTE: $camp_lists
\n"; - echo "ESITI: $dial_statuses
\n"; - echo "FILTRO: $lead_filter_id
\n"; - echo "CALL TIME: $local_call_time

\n"; - - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - - echo "

\n"; - echo "\n"; - - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } - else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; - } -} ###################### @@ -5141,7 +6154,7 @@ if ($ADD==7111111) $country_code = 'USA'; $gender = 'M'; $date_of_birth = '1970-01-01'; - $alt_phone = '3125551212'; + $alt_phone = '3125551111'; $email = 'test@test.com'; $security_phrase = 'SECUTIRY'; $comments = 'COMMENTS FIELD'; @@ -5159,17 +6172,32 @@ if ($ADD==7111111) $RGserver_ip = '10.10.10.15'; $RGSIPexten = 'SIP/gs102'; $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; echo "\n"; echo "\n"; echo "\n"; echo ""; - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $script_name = $row[1]; - $script_text = $row[3]; + $script_text = stripslashes($row[3]); if (eregi("iframe src",$script_text)) { @@ -5210,6 +6238,21 @@ if ($ADD==7111111) $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); } $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); @@ -5250,6 +6293,21 @@ if ($ADD==7111111) $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); $script_text = eregi_replace("\n","
",$script_text); @@ -5289,6 +6347,17 @@ if ($ADD=="1") { if ($LOGmodify_users==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; @@ -5296,7 +6365,14 @@ if ($ADD=="1") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Numero Utente: $NWB#vicidial_users-user$NWE
Numero Utente: Auto-Generated $NWB#vicidial_users-user$NWE
Numero Utente: $NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Nome Completo: $NWB#vicidial_users-full_name$NWE
Livello Utente:
\n"; echo ""; @@ -5352,7 +6439,14 @@ if ($ADD=="1A") echo "\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -5394,26 +6488,99 @@ if ($ADD==11) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
Numero Utente: $NWB#vicidial_users-user$NWE
Numero Utente: Auto-Generated $NWB#vicidial_users-user$NWE
Numero Utente: $NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Nome Completo: $NWB#vicidial_users-full_name$NWE
\n"; echo ""; echo "
NUOVA CAMPAGNA
\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; @@ -5424,7 +6591,11 @@ if ($ADD==11) echo "\n"; - echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID Campagna: $NWB#vicidial_campaigns-campaign_id$NWE
ID Campagna: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Campagna: $NWB#vicidial_campaigns-campaign_id$NWE
Nome Campagna: $NWB#vicidial_campaigns-campaign_name$NWE
Descrizione Campagna: $NWB#vicidial_campaigns-campaign_description$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Extension del parking: $NWB#vicidial_campaigns-park_ext$NWE
Nombre de fichero Del Parking: $NWB#vicidial_campaigns-park_file_name$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_campaigns-next_agent_call$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_campaigns-next_agent_call$NWE
Orario Chiamate: $NWB#vicidial_campaigns-local_call_time$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_campaigns-get_call_launch$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; } @@ -5444,13 +6615,31 @@ if ($ADD==12) { if ($LOGmodify_campaigns==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
COPIA UNA CAMPAGNA\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID Campagna: $NWB#vicidial_campaigns-campaign_id$NWE
ID Campagna: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Campagna: $NWB#vicidial_campaigns-campaign_id$NWE
Nome Campagna: $NWB#vicidial_campaigns-campaign_name$NWE
Campagna da copiare:
\n"; echo ""; echo "
AGGIUNGI NUOVA LISTA\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
ID Lista: (solo cifre)$NWB#vicidial_lists-list_id$NWE
ID Lista: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID Lista: (solo cifre)$NWB#vicidial_lists-list_id$NWE
Nome Lista: $NWB#vicidial_lists-list_name$NWE
Descrizione Lista: $NWB#vicidial_lists-list_description$NWE
Campagna: \n"; echo "
\n"; echo "\n"; echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } echo "\n"; echo "
List:
Numeri di telefono:

(uno per ogni riga il numero di telefono unico)
$NWB#vicidial_list-dnc$NWE
Aggiungere o eliminare:
\n"; } @@ -5628,24 +6898,45 @@ if ($ADD==1111) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
NUOVO GRUPPO INBOUND\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; echo "\n"; echo "
ID Gruppo: (senza spazi)$NWB#vicidial_inbound_groups-group_id$NWE
ID Gruppo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Gruppo: (senza spazi)$NWB#vicidial_inbound_groups-group_id$NWE
Nome Gruppo: $NWB#vicidial_inbound_groups-group_name$NWE
Colore Gruppo: $NWB#vicidial_inbound_groups-group_color$NWE
Attivo: $NWB#vicidial_inbound_groups-active$NWE
Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Casella Vocale: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; } @@ -5665,13 +6956,31 @@ if ($ADD==1211) { if ($LOGmodify_ingroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
COPIA GRUPPO INBOUND\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "
ID Gruppo: (senza spazi)$NWB#vicidial_inbound_groups-group_id$NWE
ID Gruppo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Gruppo: (senza spazi)$NWB#vicidial_inbound_groups-group_id$NWE
Nome Gruppo: $NWB#vicidial_inbound_groups-group_name$NWE
ID Gruppo Da Copiare:
\n"; + echo ""; + + echo "
AGGIUNGI UN NUOVO CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (senza spazi or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Nome: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPIA CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (senza spazi or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Nome: $NWB#vicidial_call_menu-menu_name$NWE
Fonte Menu: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + ###################### # ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN ###################### @@ -5821,13 +7238,31 @@ if ($ADD==111111) { if ($LOGmodify_usergroups==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
NUOVO GRUPPO UTENTI\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "
Gruppo: (senza spazi e punteggiatura)$NWB#vicidial_user_groups-user_group$NWE
Gruppo: Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Gruppo: (senza spazi e punteggiatura)$NWB#vicidial_user_groups-user_group$NWE
Descrizione: (Descrizione del gruppo)$NWB#vicidial_user_groups-group_name$NWE
\n"; @@ -5848,13 +7283,32 @@ if ($ADD==1111111) { if ($LOGmodify_scripts==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
\n"; echo ""; echo "
AGGIUNGI NUOVO SCRIPT\n"; echo "\n"; + echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -5898,6 +7352,16 @@ if ($ADD==1111111) echo ""; echo ""; echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; echo ""; echo "
"; # END Insert Field @@ -5921,13 +7385,31 @@ if ($ADD==11111111) { if ($LOGmodify_filters==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
ID Script:: (senza spazi e punteggiatura)$NWB#vicidial_scripts-script_id$NWE
ID Script:: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
ID Script:: (senza spazi e punteggiatura)$NWB#vicidial_scripts-script_id$NWE
Nome Script: (titolo script)$NWB#vicidial_scripts-script_name$NWE
Note Script: $NWB#vicidial_scripts-script_comments$NWE
Attivo: $NWB#vicidial_scripts-active$NWE
\n"; echo ""; echo "
AGGIUNGI NUOVO FILTRO\n"; echo "\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6051,6 +7533,17 @@ if ($ADD==11111111111) { if ($LOGast_admin_access==1) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + echo "
ID Filtro: (senza spazi e punteggiatura)$NWB#vicidial_lead_filters-lead_filter_id$NWE
ID Filtro:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
ID Filtro: (senza spazi e punteggiatura)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nome Del Filtro: (breve descrizione del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commenti Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; echo ""; @@ -6059,7 +7552,14 @@ if ($ADD==11111111111) echo "
\n"; echo "
\n"; - echo "\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -6231,6 +7731,7 @@ if ($ADD==141111111111) echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "
Interno Telefono: $NWB#phones-extension$NWE
Interno Telefono: Auto-Generated $NWB#phones-extension$NWE
Interno Telefono: $NWB#phones-extension$NWE
Numero De Dial plan: (solo cifre)$NWB#phones-dialplan_number$NWE
Buzon de voz: (solo cifre)$NWB#phones-voicemail_id$NWE
CallerID De salida: (solo cifre)$NWB#phones-outbound_cid$NWE
Vettore ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Nome del vettore: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Descrizione: $NWB#vicidial_server_carriers-carrier_description$NWE
Stringa di registrazione: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID:
\n"; + echo ""; + + echo "
ADD NEW ENTRY TTS\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Nome: $NWB#vicidial_tts_prompts-tts_name$NWE
Attivo:
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC IN ATTESA INGRESSO\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $NWB#vicidial_music_on_hold-moh_id$NWE
Music On Hold Nome: $NWB#vicidial_music_on_hold-moh_name$NWE
Ordine casuale:
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW VOICEMAIL BOX\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Casella Vocale ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Attivo:
Email:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + ###################### # ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN ###################### @@ -6359,6 +7952,20 @@ if ($ADD==11111111111111) if ($ADD=="2") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6371,13 +7978,14 @@ if ($ADD=="2") { $user = 'AUTOGENERA'; } - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) { - echo "
UTENTE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
il nome e la password devono essere lunghi almeno 2 caratteri\n"; + echo "
UTENTE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
il nome e la password devono essere lunghi almeno 2 caratteri\n"; + echo "
è necessario selezionare un gruppo di utenti\n"; } - else + else { if (ereg('AUTOGENERA',$user)) { @@ -6495,8 +8103,8 @@ if ($ADD=="2") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6504,7 +8112,7 @@ if ($ADD=="2") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6626,6 +8234,20 @@ if ($ADD=="2") if ($ADD=="2A") { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); @@ -6634,14 +8256,14 @@ if ($ADD=="2A") {echo "
UTENTE NON AGGIUNTO - Esiste gia` un utente nel sistema con questo numero utente\n";} else { - if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) { - echo "
UTENTE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
user id must be between 2 and 10 characters long\n"; - echo "
il nome e la password devono essere lunghi almeno 2 caratteri\n"; - echo "\n"; + echo "
UTENTE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
il nome e la password devono essere lunghi almeno 2 caratteri\n"; + echo "\n"; } - else + else { if (ereg('AUTOGEN',$user)) { @@ -6680,7 +8302,7 @@ if ($ADD=="2A") $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; $rslt=mysql_query($stmt, $link); } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -6763,8 +8385,8 @@ if ($ADD=="2A") else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -6772,7 +8394,7 @@ if ($ADD=="2A") if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -6899,6 +8521,20 @@ if ($ADD=="2A") if ($ADD==21) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6914,17 +8550,17 @@ if ($ADD==21) {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) { - echo "
CAMPAGNA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; - echo "
il nome della campagna deve essere lungo tra i 6 e i 40 caratteri\n"; + echo "
CAMPAGNA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; + echo "
il nome della campagna deve essere lungo tra i 6 e i 40 caratteri\n"; } - else + else { echo "
CAMPAGNA AGGIUNTA: $campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED');"; + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,active,dial_status_a,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,campaign_script,get_call_launch,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$active','NEW','DOWN','$park_ext','$park_file_name','" . mysql_real_escape_string($web_form_address) . "','$allow_closers','$hopper_level','$auto_dial_level','$next_agent_call','$local_call_time','$voicemail_ext','$script_id','$get_call_launch','$SQLdate','Y','DISABLED','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; @@ -6949,6 +8585,20 @@ if ($ADD==21) if ($ADD==20) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); @@ -6957,41 +8607,49 @@ if ($ADD==20) {echo "
CAMPAGNA NON AGGIUNTA - Esiste gia` una campagna nel sistema con questo ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else { - echo "
CAMPAGNA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; - echo "
source L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; - } - else - { - echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
CAMPAGNA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; + echo "
source L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias from vicidial_campaigns where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=31; @@ -7018,17 +8676,17 @@ if ($ADD==22) {echo "
ESITO CAMPAGNA NON AGGIUNTO - esiste gia` un esito globale con questo nome\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
ESITO CAMPAGNA NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; - echo "
il nome dell`esito deve essere lungo tra i 2 e i 30 caratteri\n"; + echo "
ESITO CAMPAGNA NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; + echo "
il nome dell`esito deve essere lungo tra i 2 e i 30 caratteri\n"; } - else + else { echo "
STATO PERSONALIZZATO PER CAMPAGNA AGGIUNTO: $campaign_id - $status\n"; - $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -7064,13 +8722,13 @@ if ($ADD==23) {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
CAMPAÚA HOT KEY NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
hotkey must be a single character between 1 and 9 \n"; - echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; + echo "
CAMPAÚA HOT KEY NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; } - else + else { echo "
HOTKEY AGGIUNTA: $campaign_id - $status - $hotkey\n"; @@ -7106,14 +8764,14 @@ if ($ADD==25) {echo "
El PLOMO de la CAMPAÑA RECICLA NO AGREGADO - hay ya unconducir-reciclaje para esta campaña con este estado\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; - echo "
la tentativa retrasa debe ser por lo menos 120 segundos e meno di 43200 secondi o 12 ore\n"; - echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos e meno di 43200 secondi o 12 ore\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; } - else + else { echo "
EL PLOMO DE LA CAMPAÑA RECICLA AGREGADO: $campaign_id - $status - $attempt_delay\n"; @@ -7149,12 +8807,12 @@ if ($ADD==26) {echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - hay ya una entrada para esta campaña con este estado\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
ESTADO AUTO DEL DIAL DEL ALT AGREGADO: $campaign_id - $status\n"; @@ -7195,13 +8853,13 @@ if ($ADD==27) {echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO AGREGADO - hay ya una entrada para esta campaña con este code de la pausa\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
pause code must be between 1 and 6 characters in length\n"; - echo "
pause nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; + echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; } - else + else { echo "
EL Co`DIGO DE LA PAUSA DEL AGENTE AGREGo`: $campaign_id - $pause_code - $pause_code_name\n"; @@ -7237,12 +8895,12 @@ if ($ADD==28) {echo "
ESITO CHIAMATA PER CAMPAGNA NON AGGIUNTO - hay ya una entrada para esta campaña con este estado\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ESITO CHIAMATA PER CAMPAGNA NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
ESITO CHIAMATA PER CAMPAGNA NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
ESITO CHIAMATA PER CAMPAGNA AGGIUNTO: $campaign_id - $status\n"; @@ -7275,6 +8933,20 @@ if ($ADD==28) if ($ADD==211) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); @@ -7283,14 +8955,14 @@ if ($ADD==211) {echo "
LISTA NON AGGIUNTA - Esiste gia` una lista nel sistema con questo ID\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) { - echo "
LISTA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
La ID de la lista debe estar entre 2 y 8 caracteres en longitud\n"; - echo "
El nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; - echo "
ID Lista must be greater than 100\n"; - } - else + echo "
LISTA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La ID de la lista debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
El nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + echo "
ID Lista must be greater than 100\n"; + } + else { echo "
LISTA AGGIUNTA: $list_id\n"; @@ -7317,6 +8989,20 @@ if ($ADD==211) if ($ADD==2111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7332,15 +9018,15 @@ if ($ADD==2111) {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) { - echo "
GRUPPO NON AGGIUNTO - per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
L`ID deve essere lungo tra i 2 e i 20 caratteri e non deve contenere ' -+'.\n"; - echo "
Il nome ed il colore del gruppo devono essere lunghi almeno 2 caratteri\n"; + echo "
GRUPPO NON AGGIUNTO - per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID deve essere lungo tra i 2 e i 20 caratteri e non deve contenere ' -+'.\n"; + echo "
Il nome ed il colore del gruppo devono essere lunghi almeno 2 caratteri\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch');"; + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,web_form_address_two,start_call_url,dispo_call_url) values('$group_id','$group_name','$group_color','$active','" . mysql_real_escape_string($web_form_address) . "','$voicemail_ext','$next_agent_call','$fronter_display','$script_id','$get_call_launch','','','');"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; @@ -7368,6 +9054,20 @@ if ($ADD==2111) if ($ADD==2011) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); @@ -7376,26 +9076,34 @@ if ($ADD==2011) {echo "
GRUPPO NON AGGIUNTO - l`ID specificato e` associato ad un gruppo gia` presente in sistema\n";} else { - if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else { - echo "
GRUPPO NON AGGIUNTO - per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
L`ID deve essere lungo tra i 2 e i 20 caratteri e non deve contenere ' -+'.\n"; - echo "
Il nome ed il colore del gruppo devono essere lunghi almeno 2 caratteri\n"; - } - else - { - $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias from vicidial_inbound_groups where group_id=\"$source_group_id\";"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPPO NON AGGIUNTO - per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID deve essere lungo tra i 2 e i 20 caratteri e non deve contenere ' -+'.\n"; + echo "
Il nome ed il colore del gruppo devono essere lunghi almeno 2 caratteri\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_groups (group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); - echo "
GRUPPO AGGIUNTO: $group_id\n"; + echo "
GRUPPO AGGIUNTO: $group_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN COPIA GRUPPO INBOUND', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN COPIA GRUPPO INBOUND', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } $ADD=3111; @@ -7423,12 +9131,12 @@ if ($ADD==2311) {echo "
NON HA AGGIUNTO - vi è già un fatto per il sistema con questa estensione\n";} else { - if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) { - echo "
NON HA AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
NON HA AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; $rslt=mysql_query($stmt, $link); @@ -7468,14 +9176,14 @@ if ($ADD==2411) {echo "
NON HA AGGIUNTO - vi è già un fatto per il sistema con questa estensione\n";} else { - if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) { - echo "
NON HA AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
NON HA AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; } - else + else { - $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code from vicidial_inbound_dids where did_id=\"$source_did\";"; + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; $rslt=mysql_query($stmt, $link); $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; @@ -7498,6 +9206,115 @@ if ($ADD==2411) } +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL menu non AGGIUNTI - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL menu non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Call Menu ID deve essere compresa tra 2 e 50 caratteri di lunghezza e non contengono ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU AGGIUNTO: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL menu non AGGIUNTI - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL menu non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Call Menu ID deve essere compresa tra 2 e 50 caratteri di lunghezza e non contengono ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL MENU AGGIUNTO: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + ###################### # ADD=21111 adds new remote agents to the system ###################### @@ -7512,12 +9329,12 @@ if ($ADD==21111) {echo "
AGENTES ALEJADOS NO AGREGADOS - hay ya una entrada alejada de los agentes comenzando con esta ID del usuario\n";} else { - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
AGENTES ALEJADOS NO AGREGADOS - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
AGENTES ALEJADOS NO AGREGADOS - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; $rslt=mysql_query($stmt, $link); @@ -7542,6 +9359,20 @@ if ($ADD==21111) if ($ADD==211111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; $rslt=mysql_query($stmt, $link); @@ -7550,12 +9381,12 @@ if ($ADD==211111) {echo "
GRUPO de USUARIO NO AGREGADO - hay ya una entrada del grupo de usuario con este nombre\n";} else { - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
GRUPO de USUARIO NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
GRUPO de USUARIO NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; $rslt=mysql_query($stmt, $link); @@ -7621,8 +9452,8 @@ if ($ADD==211111) else { #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); $row=mysql_fetch_row($rslt); @@ -7630,7 +9461,7 @@ if ($ADD==211111) if (!$rslt) {die('Could not execute: ' . mysql_error());} # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} @@ -7656,6 +9487,20 @@ if ($ADD==211111) if ($ADD==2111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; $rslt=mysql_query($stmt, $link); @@ -7664,16 +9509,16 @@ if ($ADD==2111111) {echo "
SCRIPT NON AGGIUNTO - hay ya una entrada de la escritura con este nombre\n";} else { - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
SCRIPT NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
El nombre, la descripcio`n y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
SCRIPT NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre, la descripcio`n y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else { - $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','$script_text','$active');"; + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; $rslt=mysql_query($stmt, $link); - + if ($DB > 0) {echo "|$stmt|";} echo "
SCRIPT AGGIUNTO: $script_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7695,6 +9540,20 @@ if ($ADD==2111111) if ($ADD==21111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; $rslt=mysql_query($stmt, $link); @@ -7703,16 +9562,17 @@ if ($ADD==21111111) {echo "
FILTRO NON AGGIUNTO - Esiste gia` un altro filtro con questo ID\n";} else { - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTRO NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
ID Filtro, nome e SQL devono essere lunghi almeno 2 caratteri\n"; - } - else + echo "
FILTRO NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Filtro, nome e SQL devono essere lunghi almeno 2 caratteri\n"; + } + else { - $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='$lead_filter_sql';"; + $stmt="INSERT INTO vicidial_lead_filters SET lead_filter_id='$lead_filter_id',lead_filter_name='$lead_filter_name',lead_filter_comments='$lead_filter_comments',lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
FILTRO AGGIUNTO: $lead_filter_id\n"; ### LOG INSERTION Admin Log Table ### @@ -7742,15 +9602,16 @@ if ($ADD==211111111) {echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificacio`n\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
La identificacio`n del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; - } - else + echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La identificacio`n del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
ORARIO CHIAMATE AGGIUNTO: $call_time_id\n"; @@ -7781,15 +9642,16 @@ if ($ADD==2111111111) {echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificacio`n\n";} else { - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Indique que identificacio`n del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; - } - else + echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Indique que identificacio`n del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else { $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
ORARIO CHIAMATE PER STATO AGGIUNTO: $call_time_id\n"; @@ -7812,6 +9674,20 @@ if ($ADD==2111111111) if ($ADD==231111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; $rslt=mysql_query($stmt, $link); @@ -7821,14 +9697,14 @@ if ($ADD==231111111) else { $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - echo "
SHIFT DEFINIZIONE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Maiusc ID e il nome deve essere di almeno 2 caratteri\n"; - echo "
Start Time Shift 4 cifre devono essere di lunghezza e da tempo una valida\n"; - echo "
Maiusc Lunghezza deve essere di 5 caratteri di lunghezza e di 24 ore o meno\n"; - } - else + echo "
SHIFT DEFINIZIONE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Maiusc ID e il nome deve essere di almeno 2 caratteri\n"; + echo "
Start Time Shift 4 cifre devono essere di lunghezza e da tempo una valida\n"; + echo "
Maiusc Lunghezza deve essere di 5 caratteri di lunghezza e di 24 ore o meno\n"; + } + else { $p=0; $shift_weekdays_ct = count($shift_weekdays); @@ -7839,6 +9715,7 @@ if ($ADD==231111111) } $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} echo "
SHIFT AGGIUNTI:$shift_id\n"; @@ -7861,6 +9738,20 @@ if ($ADD==231111111) if ($ADD==21111111111) { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + echo ""; $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; $rslt=mysql_query($stmt, $link); @@ -7883,25 +9774,36 @@ if ($ADD==21111111111) {echo "
PHONE NOT ADDED - vi è già un alias Telefono nel sistema con questo login\n";} else { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
telefonO NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a Casella Vocale ID in the system with this ID\n";} + else { - echo "
TELEFONO AGGIUNTO\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
telefonO NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
I seguenti campi devono disporre di dati: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
TELEFONO AGGIUNTO\n"; - $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; - $rslt=mysql_query($stmt, $link); + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } @@ -7931,9 +9833,9 @@ if ($ADD==22111111111) {echo "
ALIAS TELEFONO NON AGGIUNTO - vi è già un Telefono Login nel sistema con questo ID\n";} else { - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) {echo "
ALIAS TELEFONO NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { echo "
TELEFONO ALIAS AGGIUNTO\n"; @@ -7972,9 +9874,9 @@ if ($ADD==23111111111) {echo "
ALIAS GRUPPO NON AGGIUNTO - non è possibile utilizzare le parole riservate nel gruppo alias\n";} else { - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) {echo "
ALIAS GRUPPO NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { echo "
GRUPPO ALIAS AGGIUNTO\n"; @@ -8009,16 +9911,16 @@ if ($ADD==211111111111) {echo "
SERVER NON AGGIUNTO - Esiste gia` un altro server nel sistema con questo ID\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) {echo "
SERVER NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { echo "
SERVER AGGIUNTO\n"; $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; $rslt=mysql_query($stmtA, $link); ### LOG INSERTION Admin Log Table ### @@ -8064,14 +9966,14 @@ if ($ADD==221111111111) {echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - hay ya un expediente del servidor-tronco para esta campaña\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; - echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; - echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; } - else + else { echo "
EL EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL AGREGo`: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; @@ -8106,9 +10008,9 @@ if ($ADD==231111111111) {echo "
CONF TEMPLATE NON AGGIUNTO - vi è già un modello del sistema con questo ID\n";} else { - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) {echo "
CONF TEMPLATE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { echo "
CONF TEMPLATE AGGIUNTO\n"; @@ -8142,13 +10044,13 @@ if ($ADD==241111111111) {echo "
Vettore non AGGIUNTO - vi è già un elemento portante del sistema con questo ID\n";} else { - if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) {echo "
Vettore non AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { echo "
CARRIER ADDED\n"; - $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N');"; + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; $rslt=mysql_query($stmt, $link); $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; @@ -8167,6 +10069,130 @@ if ($ADD==241111111111) } +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS iscrizione non AGGIUNTI - c-è già una voce TTS nel sistema con questo ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS iscrizione non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
TTS Entry Aggiunto\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Music On Hold iscrizione non AGGIUNTI - c-è già una voce moh nel sistema con questo ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music On Hold iscrizione non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
Music On Hold Entry Aggiunto\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VOICEMAIL BOX NON AGGIUNTI - vi è già una casella di posta vocale nel sistema con questo ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VOICEMAIL BOX NON AGGIUNTI - c-è già un telefono cellulare nel sistema, con questo messaggio vocale ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
VOICEMAIL BOX NON AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
VOICEMAIL BOX AGGIUNTO\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + ###################### # ADD=2111111111111 adds new conference to the system ###################### @@ -8181,9 +10207,9 @@ if ($ADD==2111111111111) {echo "
CONFERENZA NON AGGIUNTA - Esiste gia` una conferenza nel sistema con questo ID e server\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
CONFERENZA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { echo "
CONFERENZA AGGIUNTA\n"; @@ -8209,9 +10235,9 @@ if ($ADD==21111111111111) {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} else { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) {echo "
VICIDIAL CONFERENZA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { echo "
VICIDIAL CONFERENZA AGGIUNTA\n"; @@ -8244,17 +10270,17 @@ if ($ADD==221111111111111) {echo "
ESITO DI DEFAULT NON AGGIUNTO - there is already a global-status in the system with this name\n";} else { - if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) { - echo "
ESITO DI DEFAULT NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; - echo "
il nome dell`esito deve essere lungo tra i 2 e i 30 caratteri\n"; + echo "
ESITO DI DEFAULT NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; + echo "
il nome dell`esito deve essere lungo tra i 2 e i 30 caratteri\n"; } - else + else { echo "
ESITO DI DEFAULT AGGIUNTO: $status_name - $status\n"; - $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category) values('$status','$status_name','$selectable','$human_answered','$category');"; + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -8285,13 +10311,13 @@ if ($ADD==231111111111111) {echo "
CATEGORIA DI ESITI NON AGGIUNTA - Esiste gia` una categoria di esiti con questo ID: $row[0]\n";} else { - if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) { - echo "
CATEGORIA DI ESITI NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
L` ID deve essere lungo tra i 2 e i 50 caratteri\n"; - echo "
il nome deve essere lungo tra i 2 e i 50 caratteri\n"; + echo "
CATEGORIA DI ESITI NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L` ID deve essere lungo tra i 2 e i 50 caratteri\n"; + echo "
il nome deve essere lungo tra i 2 e i 50 caratteri\n"; } - else + else { echo "
STATUS CATEGORIA ADDED: $vsc_id - $vsc_name\n"; @@ -8335,13 +10361,13 @@ if ($ADD==241111111111111) {echo "
QC CODICE STATO NON AGGIUNTO- vi è già un qc codice di stato del sistema con questo nome: $row[0]\n";} else { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) { - echo "
QC CODICE STATO NON AGGIUNTO- Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
codice deve essere compreso tra 1 e 8 caratteri di lunghezza\n"; - echo "
nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; + echo "
QC CODICE STATO NON AGGIUNTO- Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
codice deve essere compreso tra 1 e 8 caratteri di lunghezza\n"; + echo "
nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; } - else + else { echo "
QC STATUS CODICE AGGIUNTO:$code_name - $code\n"; @@ -8375,232 +10401,232 @@ if ($ADD==241111111111111) ###################### if ($ADD=="4A") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; } - echo "
UTENTE MODIFICATO - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Attivo'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
UTENTE MODIFICATO - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### @@ -8608,233 +10634,232 @@ $ADD=3; # go to user modification below ###################### if ($ADD=="4B") -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; - } - else - { - if ($SSoutbound_autodial_active < 1) + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $closer_default_blended = '0'; - $delete_filters = '0'; - $load_leads = '0'; + echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; } - echo "
UTENTE MODIFICATO - ADMIN: $user\n"; - - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); - - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Attivo'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); - - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + if ($SSoutbound_autodial_active < 1) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; } + echo "
UTENTE MODIFICATO - ADMIN: $user\n"; - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3; # go to user modification below } - else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; - } -$ADD=3; # go to user modification below -} - ###################### @@ -8842,233 +10867,233 @@ $ADD=3; # go to user modification below ###################### if ($ADD==4) -{ - if ($LOGmodify_users==1) { - echo ""; - - if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + if ($LOGmodify_users==1) { - echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; - } - else - { - echo "
UTENTE MODIFICATO: $user\n"; + echo ""; - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active' where user='$user';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; + echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# - - if ($enable_vtiger_integration > 0) + else { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
UTENTE MODIFICATO: $user\n"; - $user_name = $user; - $user_password = $pass; - $last_name = $full_name; - $is_admin = 'off'; - $roleid = 'H5'; - $status = 'Attivo'; - $groupid = '1'; - if ($user_level >= 7) {$roleid = 'H3';} - if ($user_level >= 8) {$roleid = 'H4';} - if ($user_level >= 9) {$roleid = 'H2';} - if ($user_level >= 9) {$is_admin = 'on';} - $salt = substr($user_name, 0, 2); - $salt = '$1$' . $salt . '$'; - $encrypted_password = crypt($user_password, $salt); + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# - ### user doesn't exist in vtiger, insert it - else + if ($enable_vtiger_integration > 0) { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### - - ###################################### - ##### BEGIN Add/Update user info in Vtiger - $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $found_count = $row[0]; - - ### user exists in vtiger, update it - if ($found_count > 0) - { - $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $userid = $row[0]; + $group_found_count = $row[0]; - $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $usergroupcount = $row[0]; - - $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - if ($usergroupcount < 1) + ### group exists in vtiger, update it + if ($group_found_count > 0) { - $stmt="SELECT user_group FROM vicidial_user_groups;"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} - $VD_groups_ct = mysql_num_rows($rslt); - $k=0; - $VD_groups_list=''; - while ($k < $VD_groups_ct) - { - $row=mysql_fetch_row($rslt); - $VD_groups_list .= "'$row[0]',"; - $k++; - } - $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } - $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; if ($DB) {echo "|$stmtC|\n";} $rslt=mysql_query($stmtC, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} - $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; if ($DB) {echo "|$stmtD|\n";} $rslt=mysql_query($stmtD, $linkV); if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER } + ##### END Add/Update user info in Vtiger + ###################################### } + ### END vtiger integration - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW USER RECORD IN VTIGER - $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $userid = mysql_insert_id($linkV); - - $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; - if ($DB) {echo "|$stmtB|\n";} - $rslt=mysql_query($stmtB, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; - if ($DB) {echo "|$stmtC|\n";} - $rslt=mysql_query($stmtC, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; - if ($DB) {echo "|$stmtD|\n";} - $rslt=mysql_query($stmtD, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW USER RECORD IN VTIGER - } - ##### END Add/Update user info in Vtiger - ###################################### } - ### END vtiger integration - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3; # go to user modification below } -$ADD=3; # go to user modification below -} ###################### # ADD=41 submit campaign modifications to the system - DETAIL ###################### if ($ADD==41) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9082,7 +11107,7 @@ if ($ADD==41) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9117,6 +11142,7 @@ if ($ADD==41) $survey_xfer_exten = '8300'; $voicemail_ext = ''; $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; } if (ereg('list_activation',$stage)) { @@ -9146,20 +11172,31 @@ if ($ADD==41) } else { - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; - echo "
|$campaign_name|$active|\n"; + echo "
CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + echo "
|$campaign_name|$active|\n"; } - else + else { echo "
CAMPAGNA MODIFICATA: $campaign_id\n"; + if ( ($dial_method != 'MANUAL') and ($dial_method != 'INBOUND_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } if ($dial_method == 'MANUAL') { $auto_dial_level='0'; $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; } else { @@ -9188,7 +11225,7 @@ if ($ADD==41) if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) {$hopper_level='100';} - $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias' where campaign_id='$campaign_id';"; + $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -9217,124 +11254,127 @@ if ($ADD==41) } } } - else + else { echo "Non hai l`autorizzazione per accedere a questa pagina\n"; exit; } -$ADD=31; # go to campaign modification form below -} + $ADD=31; # go to campaign modification form below + } + ###################### # ADD=42 modify/delete campaign status in the system ###################### if ($ADD==42) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) - { - echo "
ESTADO de la CAMPAÚA NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; - echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; - } - else - { - if (ereg('delete',$stage)) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { - echo "
ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO: $campaign_id - $status\n"; - - $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); - - $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmtA, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
ESTADO de la CAMPAÚA NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; } - if (ereg('modify',$stage)) + else { - echo "
ESITO PERSONALIZZATO PER CAMPAGNA MODIFICATO: $campaign_id - $status\n"; + if (ereg('delete',$stage)) + { + echo "
ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO: $campaign_id - $status\n"; - $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
ESITO PERSONALIZZATO PER CAMPAGNA MODIFICATO: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below } -$SUB=22; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=43 delete campaign hotkey in the system ###################### if ($ADD==43) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) { - echo "
CAMPAÚA HOT KEY NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; - echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; - echo "
the campaign hotkey needs to be at least 1 characters in length\n"; - } - else - { - echo "
LA CAMPAÚA DE ENCARGO HOT KEY SUPRIMIÚ: $campaign_id - $status - $hotkey\n"; + echo ""; - $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
CAMPAÚA HOT KEY NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
LA CAMPAÚA DE ENCARGO HOT KEY SUPRIMIÚ: $campaign_id - $status - $hotkey\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Esito: $status|HotKey: $hotkey';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Esito: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below } -$SUB=23; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=44 submit campaign modifications to the system - Basic View ###################### if ($ADD==44) -{ + { if ($LOGmodify_campaigns==1) { echo ""; @@ -9348,7 +11388,7 @@ if ($ADD==44) $adaptive_maximum_level = '1.0'; $agent_extended_alt_dial = 'N'; $alt_number_dialing = 'N'; - $am_message_exten = '8300'; + $am_message_exten = '8320'; $amd_send_to_vmx = 'N'; $auto_alt_dial = 'N'; $auto_dial_level = '1.0'; @@ -9400,13 +11440,12 @@ if ($ADD==44) } else { - - if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) { - echo "
CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + echo "
CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; } - else + else { echo "
CAMPAGNA MODIFICATA: $campaign_id\n"; @@ -9464,153 +11503,155 @@ if ($ADD==44) } } } - else + else { echo "Non hai l`autorizzazione per accedere a questa pagina\n"; exit; } -$ADD=34; # go to campaign modification form below -} + $ADD=34; # go to campaign modification form below + } + ###################### # ADD=45 modify campaign lead recycle in the system ###################### if ($ADD==45) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) { - echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; - echo "
la tentativa retrasa debe ser por lo menos 120 segundos e meno di 43200 secondi o 12 ore\n"; - echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; - } - else - { - echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + echo ""; - $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos e meno di 43200 secondi o 12 ore\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below } -$SUB=25; -$ADD=31; # go to campaign modification form below -} + ###################### # ADD=47 modify agent pause code in the system ###################### if ($ADD==47) -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) { - echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
pause_code must be between 1 and 6 characters in length\n"; - echo "
pause_nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; - } - else - { - echo "
AGENT PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + echo ""; - $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; + } + else + { + echo "
AGENT PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below } -$SUB=27; -$ADD=31; # go to campaign modification form below -} ###################### # ADD=48 modify campaign QC settings in the system ###################### if ($ADD==48) -{ + { if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
QC IMPOSTAZIONI NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if (strlen($campaign_id) < 2) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
QC IMPOSTAZIONI NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
IMPOSTAZIONI CQ MODIFICATI: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
IMPOSTAZIONI CQ MODIFICATI: $campaign_id\n"; - - $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below } -$SUB=28; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9618,39 +11659,39 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD=='40A') -{ + { if ($LOGmodify_campaigns==1) - { - echo ""; - - if (strlen($campaign_id) < 2) { - echo "
INDAGINE IMPOSTAZIONI NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; - } - else - { - echo "
INDAGINE SETTINGS MODIFICATI: $campaign_id\n"; + echo ""; - $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); + if (strlen($campaign_id) < 2) + { + echo "
INDAGINE IMPOSTAZIONI NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + } + else + { + echo "
INDAGINE SETTINGS MODIFICATI: $campaign_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below } -$SUB='20A'; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9658,143 +11699,70 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==49) -{ - if ($LOGmodify_campaigns==1) { - ##### MODIFY a list mix container entry ##### + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### if ($stage=='MODIFY') - { - echo ""; - - $Flist_mix_container = "list_mix_container_$vcl_id"; - $Fmix_method = "mix_method_$vcl_id"; - $Fstatus = "status_$vcl_id"; - $Fvcl_name = "vcl_name_$vcl_id"; - - if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} - elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} - if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} - elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} - if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} - elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} - if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} - elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} - $list_mix_container = preg_replace("/:$/","",$list_mix_container); - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name name must be between 2 and 30 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; - echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $vcl_name\n"; - } - } + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); - ##### ADD a list mix container entry ##### - if ($stage=='ADD') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $OLDlist_mix_container = $row[0]; - $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; - - $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $list_id\n"; - } - } - - ##### REMOVE a list mix container entry ##### - if ($stage=='REMOVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) - { - echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
list_id must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $MIXentries = $MT; - $MIXentries = explode(":", $row[0]); - $Ms_to_print = (count($MIXentries) - 0); - - if ($Ms_to_print < 2) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) { - echo "
MIX LISTA NON MODIFICATO: Non puoi cancellare l`ultimo list_id da un mix di liste\n"; + echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); - $MIXpercentPCT = $MIXdetailsPCT[2]; - - $q=0; - while ($Ms_to_print > $q) - { - if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) - { - if ( ($q==0) and ($mix_container_item > 0) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - if ( ($q==1) and ($mix_container_item < 1) ) - { - $MIXdetailsONE = explode('|', $MIXentries[$q]); - $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); - $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; - } - else - { - $NEWlist_mix_container .= "$MIXentries[$q]:"; - } - } - } - $q++; - } - $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; $rslt=mysql_query($stmt, $link); @@ -9807,114 +11775,187 @@ if ($ADD==49) if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $list_id\n"; } } - } - ##### ADD a NEW list mix ##### - if ($stage=='NEWMIX') - { - echo ""; + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) - { - echo "
MIX LISTA NON AGGIUNTO- Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - echo "
vcl_name must be at least 2 characters in length\n"; - } - else - { - $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) { - echo "
MIX LISTA NON AGGIUNTO- Esiste gia` un mix di lista con questo ID\n"; + echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; } else { - $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
MIX LISTA NON MODIFICATO: Non puoi cancellare l`ultimo list_id da un mix di liste\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
MIX LISTA NON AGGIUNTO- Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
MIX LISTA NON AGGIUNTO- Esiste gia` un mix di lista con questo ID\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA AGGIUNTO: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MIX LISTA NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "
MIX LISTA AGGIUNTO: $campaign_id - $vcl_id - $vcl_name\n"; + echo "
MIX LISTA CANCELLATO: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MIX LISTA NON ATTIVATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA ATTIVATO: $campaign_id - $vcl_id - $vcl_name\n"; } } } - - ##### DELETE an existing list mix ##### - if ($stage=='DELMIX') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
MIX LISTA NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
MIX LISTA CANCELLATO: $campaign_id - $vcl_id - $vcl_name\n"; - } - } - - ##### Set list mix entry to active ##### - if ($stage=='SETACTIVE') - { - echo ""; - - if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) - { - echo "
MIX LISTA NON ATTIVATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
vcl_id must be between 1 and 20 characters in length\n"; - } - else - { - $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - echo "
MIX LISTA ATTIVATO: $campaign_id - $vcl_id - $vcl_name\n"; - } - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below } -$SUB=29; -$ADD=31; # go to campaign modification form below -} ###################### @@ -9922,60 +11963,62 @@ $ADD=31; # go to campaign modification form below ###################### if ($ADD==411) -{ - if ($LOGmodify_lists==1) { - echo ""; - - if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + if ($LOGmodify_lists==1) { - echo "
LISTA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - echo "
LISTA MODIFICATA: $list_id\n"; + echo ""; - $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate' where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - if ($reset_list == 'Y') + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) { - echo "
RESET ESITI CONTATTI DELLA LISTA CHIAMATI\n"; - $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; - $rslt=mysql_query($stmtB, $link); + echo "
LISTA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTA MODIFICATA: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } - if ($campaign_id != "$old_campaign_id") - { - echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($old_campaign_id)\n"; - $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; - $rslt=mysql_query($stmtC, $link); + + if ($reset_list == 'Y') + { + echo "
RESET ESITI CONTATTI DELLA LISTA CHIAMATI\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311; # go to list modification form below } -$ADD=311; # go to list modification form below -} ###################### @@ -9983,58 +12026,88 @@ $ADD=311; # go to list modification form below ###################### if ($ADD==4111) -{ + { if ($LOGmodify_ingroups==1) - { - echo ""; - - if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - echo "
GRUPO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
el color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $p=0; - $qc_statuses_ct = count($qc_statuses); - while ($p < $qc_statuses_ct) + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) { - $QC_statuses .= " $qc_statuses[$p]"; - $p++; + echo "
GRUPO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; } - $p=0; - $qc_lists_ct = count($qc_lists); - while ($p < $qc_lists_ct) + else { - $QC_lists .= " $qc_lists[$p]"; - $p++; + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GRUPPO MODIFICATO: $group_id\n"; + + $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); } - - if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} - if (strlen($QC_lists)>0) {$QC_lists .= " -";} - - echo "
GRUPPO MODIFICATO: $group_id\n"; - - $stmt="UPDATE vicidial_inbound_groups set group_name='$group_name', group_color='$group_color', active='$active', web_form_address='" . mysql_real_escape_string($web_form_address) . "', voicemail_ext='$voicemail_ext', next_agent_call='$next_agent_call', fronter_display='$fronter_display', ingroup_script='$script_id', get_call_launch='$get_call_launch', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number', xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias' where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111; # go to in-group modification form below } -$ADD=3111; # go to in-group modification form below -} - ###################### @@ -10042,81 +12115,222 @@ $ADD=3111; # go to in-group modification form below ###################### if ($ADD==4311) -{ + { if ($LOGmodify_dids==1) - { - echo ""; - - if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) { - echo "
NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
did_extension must be at least 1 character in length\n"; - } - else - { - echo "
HA MODIFICATO: $did_pattern\n"; + echo ""; - $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code' where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
HA MODIFICATO: $did_pattern\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3311; # go to did modification form below } -$ADD=3311; # go to did modification form below -} +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL MENU MODIFICATI: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + ###################### # ADD=41111 modify remote agents info in the system ###################### if ($ADD==41111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo ""; - - if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) { - echo "
AGENTES ALEJADOS NO MODIFICADOS - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
LOS AGENTES ALEJADOS SE MODIFICARON\n"; + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENTES ALEJADOS NO MODIFICADOS - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
LOS AGENTES ALEJADOS SE MODIFICARON\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below } -$ADD=31111; # go to remote agents modification form below -} - ###################### @@ -10124,169 +12338,181 @@ $ADD=31111; # go to remote agents modification form below ###################### if ($ADD==411111) -{ + { if ($LOGmodify_usergroups==1) - { - echo ""; - - if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - echo "
GRUPO de USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $p=0; - $GROUP_shifts=' '; - $group_shifts_ct = count($group_shifts); - while ($p <= $group_shifts_ct) + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) { - $GROUP_shifts .= "$group_shifts[$p] "; - $p++; + echo "
GRUPO de USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud\n"; } - $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement' where user_group='$OLDuser_group';"; - $rslt=mysql_query($stmt, $link); - - echo "
GRUPPO UTENTI MODIFICATO\n"; - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY Utente Group', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - - ############################################################### - ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; - $rslt=mysql_query($stmt, $link); - if ($DB) {echo "$stmt\n";} - $ss_conf_ct = mysql_num_rows($rslt); - if ($ss_conf_ct > 0) + else { - $row=mysql_fetch_row($rslt); - $enable_vtiger_integration = $row[0]; - $vtiger_server_ip = $row[1]; - $vtiger_dbname = $row[2]; - $vtiger_login = $row[3]; - $vtiger_pass = $row[4]; - $vtiger_url = $row[5]; - } - ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### - ############################################################# + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); - if ($enable_vtiger_integration > 0) - { - ### connect to your vtiger database - $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); - if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} - echo 'Connected successfully'; - mysql_select_db("$vtiger_dbname", $linkV); + echo "
GRUPPO UTENTI MODIFICATO\n"; - ###################################### - ##### BEGIN Add/Update group info in Vtiger - $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; - $rslt=mysql_query($stmt, $linkV); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY Utente Group', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - $row=mysql_fetch_row($rslt); - $group_found_count = $row[0]; - - ### group exists in vtiger, update it - if ($group_found_count > 0) + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) { - $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; $rslt=mysql_query($stmt, $linkV); if ($DB) {echo "$stmt\n";} if (!$rslt) {die('Could not execute: ' . mysql_error());} $row=mysql_fetch_row($rslt); - $groupid = $row[0]; + $group_found_count = $row[0]; - $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### } - - ### user doesn't exist in vtiger, insert it - else - { - #### BEGIN CREATE NEW GROUP RECORD IN VTIGER - # Get next available id from vtiger_groups_seq to use as groupid - $stmt="SELECT id from vtiger_groups_seq;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $groupid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next available groupid with 1 so next record gets proper id - $stmt="UPDATE vtiger_groups_seq SET id = '$groupid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; - if ($DB) {echo "|$stmtA|\n";} - $rslt=mysql_query($stmtA, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #### END CREATE NEW GROUP RECORD IN VTIGER - } - ##### END Add/Update group info in Vtiger - ###################################### } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111; # go to user group modification form below } -$ADD=311111; # go to user group modification form below -} + ###################### # ADD=4111111 modify script in the system ###################### if ($ADD==4111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo ""; - - if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) { - echo "
SCRIPT NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
El nombre, la descripcio`n y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='$script_text', active='$active' where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
SCRIPT MODIFICATO\n"; + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
SCRIPT NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre, la descripcio`n y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="UPDATE vicidial_scripts set script_name='$script_name', script_comments='$script_comments', script_text='" . mysql_real_escape_string($script_text) . "', active='$active' where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPT', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
SCRIPT MODIFICATO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPT', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111111; # go to script modification form below } -$ADD=3111111; # go to script modification form below -} ###################### @@ -10294,39 +12520,41 @@ $ADD=3111111; # go to script modification form below ###################### if ($ADD==41111111) -{ + { if ($LOGmodify_filters==1) - { - echo ""; - - if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) { - echo "
FILTRO NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
ID Filtro, nome e SQL devono essere lunghi almeno 2 caratteri\n"; - } - else - { - $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='$lead_filter_sql' where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); + echo "\n"; + echo "\n"; + echo ""; - echo "
FILTRO MODIFICATO\n"; + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRO NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Filtro, nome e SQL devono essere lunghi almeno 2 caratteri\n"; + } + else + { + $stmt="UPDATE vicidial_lead_filters set lead_filter_name='$lead_filter_name', lead_filter_comments='$lead_filter_comments', lead_filter_sql='" . mysql_real_escape_string($lead_filter_sql) . "' where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRI', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
FILTRO MODIFICATO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRI', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111111; # go to filter modification form below } -$ADD=31111111; # go to filter modification form below -} ###################### @@ -10334,55 +12562,55 @@ $ADD=31111111; # go to filter modification form below ###################### if ($ADD==411111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) { - echo "
TIEMPO DE LA LLAMADA NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
La identificacio`n del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
TIEMPO DE LA LLAMADA MODIFICADO\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La identificacio`n del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
TIEMPO DE LA LLAMADA MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111111; # go to call time modification form below } -$ADD=311111111; # go to call time modification form below -} ###################### @@ -10390,55 +12618,55 @@ $ADD=311111111; # go to call time modification form below ###################### if ($ADD==4111111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; - - if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) { - echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Indique que identificacio`n del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; - } - else - { - $ct_default_start = preg_replace('/\D/', '', $ct_default_start); - $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); - $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); - $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); - $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); - $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); - $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); - $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); - $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); - $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); - $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); - $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); - $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); - $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); - $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); - $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); - $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); + echo ""; - echo "
TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO\n"; + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Indique que identificacio`n del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below } -$ADD=3111111111; # go to state call time modification form below -} ###################### @@ -10446,50 +12674,50 @@ $ADD=3111111111; # go to state call time modification form below ###################### if ($ADD==431111111) -{ + { if ($LOGmodify_call_times==1) - { - echo ""; + { + echo ""; - $shift_length_test = eregi_replace(':','',$shift_length); - if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) - { - echo "
SHIFT DEFINITION NOT MODIFIED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Maiusc ID e il nome deve essere di almeno 2 caratteri\n"; - echo "
Start Time Shift 4 cifre devono essere di lunghezza e da tempo una valida\n"; - echo "
Maiusc Lunghezza deve essere di 5 caratteri di lunghezza e di 24 ore o meno\n"; - } - else - { - $p=0; - $shift_weekdays_ct = count($shift_weekdays); - while ($p <= $shift_weekdays_ct) + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) { - $SHIFT_weekdays .= "$shift_weekdays[$p]"; - $p++; + echo "
SHIFT DEFINITION NOT MODIFIED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Maiusc ID e il nome deve essere di almeno 2 caratteri\n"; + echo "
Start Time Shift 4 cifre devono essere di lunghezza e da tempo una valida\n"; + echo "
Maiusc Lunghezza deve essere di 5 caratteri di lunghezza e di 24 ore o meno\n"; } - $shift_start_time = preg_replace('/\D/', '', $shift_start_time); - $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); - echo "
SHIFT MODIFICATI\n"; + echo "
SHIFT MODIFICATI\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=331111111; # go to shift modification form below } -$ADD=331111111; # go to shift modification form below -} ###################### @@ -10497,47 +12725,47 @@ $ADD=331111111; # go to shift modification form below ###################### if ($ADD==41111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) - {echo "
TELEFONO NON MODIFICATO - Esiste gia` un Telefono nel sistema con questo interno\/server\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) - {echo "
TELEFONO NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELEFONO NON MODIFICATO - Esiste gia` un Telefono nel sistema con questo interno\/server\n";} + else { - echo "
TELEFONO MODIFICATO: $extension\n"; + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELEFONO NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
TELEFONO MODIFICATO: $extension\n"; - $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override' where extension='$old_extension' and server_ip='$old_server_ip';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones set extension='$extension', dialplan_number='$dialplan_number', voicemail_id='$voicemail_id', phone_ip='$phone_ip', computer_ip='$computer_ip', server_ip='$server_ip', login='$login', pass='$pass', status='$status', active='$active', phone_type='$phone_type', fullname='$fullname', company='$company', picture='$picture', protocol='$protocol', local_gmt='$local_gmt', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', login_user='$login_user', login_pass='$login_pass', login_campaign='$login_campaign', park_on_extension='$park_on_extension', conf_on_extension='$conf_on_extension', VICIDIAL_park_on_extension='$VICIDIAL_park_on_extension', VICIDIAL_park_on_filename='$VICIDIAL_park_on_filename', monitor_prefix='$monitor_prefix', recording_exten='$recording_exten', voicemail_exten='$voicemail_exten', voicemail_dump_exten='$voicemail_dump_exten', ext_context='$ext_context', dtmf_send_extension='$dtmf_send_extension', call_out_number_group='$call_out_number_group', client_browser='$client_browser', install_directory='$install_directory', local_web_callerID_URL='" . mysql_real_escape_string($local_web_callerID_URL) . "', VICIDIAL_web_URL='" . mysql_real_escape_string($VICIDIAL_web_URL) . "', AGI_call_logging_enabled='$AGI_call_logging_enabled', user_switching_enabled='$user_switching_enabled', conferencing_enabled='$conferencing_enabled', admin_hangup_enabled='$admin_hangup_enabled', admin_hijack_enabled='$admin_hijack_enabled', admin_monitor_enabled='$admin_monitor_enabled', call_parking_enabled='$call_parking_enabled', updater_check_enabled='$updater_check_enabled', AFLogging_enabled='$AFLogging_enabled', QUEUE_ACTION_enabled='$QUEUE_ACTION_enabled', CallerID_popup_enabled='$CallerID_popup_enabled', voicemail_button_enabled='$voicemail_button_enabled', enable_fast_refresh='$enable_fast_refresh', fast_refresh_rate='$fast_refresh_rate', enable_persistant_mysql='$enable_persistant_mysql', auto_dial_next_number='$auto_dial_next_number', VDstop_rec_after_each_call='$VDstop_rec_after_each_call', DBX_server='$DBX_server', DBX_database='$DBX_database', DBX_user='$DBX_user', DBX_pass='$DBX_pass', DBX_port='$DBX_port', DBY_server='$DBY_server', DBY_database='$DBY_database', DBY_user='$DBY_user', DBY_pass='$DBY_pass', DBY_port='$DBY_port', outbound_cid='$outbound_cid', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFICAR EL telefonO', event_sql=\"$SQL_log\", event_notes='IP Server: $server_ip';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFICAR EL telefonO', event_sql=\"$SQL_log\", event_notes='IP Server: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below } -$ADD=31111111111; # go to phone modification form below -} ###################### @@ -10545,39 +12773,39 @@ $ADD=31111111111; # go to phone modification form below ###################### if ($ADD==42111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) - {echo "
ALIAS TELEFONO NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else { - echo "
TELEFONO ALIAS MODIFICATI: $alias_id\n"; + echo ""; - $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
ALIAS TELEFONO NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
TELEFONO ALIAS MODIFICATI: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFICA ALIAS TELEFONO', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFICA ALIAS TELEFONO', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below } -$ADD=32111111111; # go to phone alias modification form below -} ###################### @@ -10585,39 +12813,39 @@ $ADD=32111111111; # go to phone alias modification form below ###################### if ($ADD==43111111111) -{ + { if ($LOGast_admin_access==1) - { - echo ""; - - $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) - {echo "
ALIAS GRUPPO NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else { - echo "
GRUPPO ALIAS MODIFICATI: $alias_id\n"; + echo ""; - $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS GRUPPO NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
GRUPPO ALIAS MODIFICATI: $alias_id\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFICA GRUPPO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFICA GRUPPO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below } -$ADD=33111111111; # go to group alias modification form below -} ###################### @@ -10625,55 +12853,55 @@ $ADD=33111111111; # go to group alias modification form below ###################### if ($ADD==411111111111) -{ - if ($LOGmodify_servers==1) { - echo ""; - - $stmt="SELECT count(*) from servers where server_id='$server_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_id != $old_server_id) ) - {echo "
SERVER NOT MODIFIED - there is already a server in the system with this server_id\n";} - else + if ($LOGmodify_servers==1) { - $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) - {echo "
SERVIDOR NO MODIFICADO - hay ya un servidor en el sistema con este server_ip\n";} + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
SERVER NOT MODIFIED - there is already a server in the system with this server_id\n";} else { - if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) - {echo "
SERVIDOR NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
SERVIDOR NO MODIFICADO - hay ya un servidor en el sistema con este server_ip\n";} + else { - echo "
SERVER MODIFICATO: $server_ip\n"; + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVIDOR NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); - $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second' where server_id='$old_server_id';"; - $rslt=mysql_query($stmt, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + echo "
SERVER MODIFICATO: $server_ip\n"; - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFICAR EL SERVIDOR', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFICAR EL SERVIDOR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111111111; # go to server modification form below } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10681,57 +12909,57 @@ $ADD=311111111111; # go to server modification form below ###################### if ($ADD==421111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $MAXvicidial_trunks = $rowx[0]; - - $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); - - if ($SUMvicidial_trunks > $MAXvicidial_trunks) { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERBauli', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFICAR EL SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='Campagna: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } } else { - if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) - { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; - echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; - echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; - } - else - { - echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; - - $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERBauli', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFICAR EL SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='Campagna: $campaign_id';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; } + $ADD=311111111111; # go to server modification form below } - else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; - } -$ADD=311111111111; # go to server modification form below -} ###################### @@ -10739,39 +12967,39 @@ $ADD=311111111111; # go to server modification form below ###################### '$template_id','$template_name','$template_contents' if ($ADD==431111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) - {echo "
CONF TEMPLATE NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else { - echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + echo ""; - $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF TEMPLATE NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFICA TEMPLATE CONF', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFICA TEMPLATE CONF', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below } -$ADD=331111111111; # go to conf template modification form below -} ###################### @@ -10779,39 +13007,222 @@ $ADD=331111111111; # go to conf template modification form below ###################### if ($ADD==441111111111) -{ + { if ($LOGmodify_servers==1) - { - echo ""; - - if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) - {echo "
VETTORE NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else { - echo "
VETTORE MODIFICATI: $carrier_id\n"; + echo ""; - $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active' where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
VETTORE NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); - $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; - $rslt=mysql_query($stmtA, $link); + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFICA DEL VETTORE', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + echo "
VETTORE MODIFICATI: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFICA DEL VETTORE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS iscrizione non MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS voce modificata: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music On Hold iscrizione non MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music On Hold voce modificata: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music On Hold iscrizione non MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music On Hold voce modificata: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
VOICEMAIL BOX NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
VOICEMAIL BOX MODIFICATI: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below } -$ADD=341111111111; # go to carrier modification form below -} ###################### @@ -10819,36 +13230,36 @@ $ADD=341111111111; # go to carrier modification form below ###################### if ($ADD==4111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
CONFERENCIA - hay ya una conferencia en el sistema con esta extension - servidor NO MODIFICADO\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
CONFERENCIA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else - { - echo "
CONFERENCIA MODIFICADA: $conf_exten\n"; + echo ""; - $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
CONFERENCIA - hay ya una conferencia en el sistema con esta extension - servidor NO MODIFICADO\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCIA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
CONFERENCIA MODIFICADA: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below } -$ADD=3111111111111; # go to conference modification form below -} ###################### @@ -10856,38 +13267,37 @@ $ADD=3111111111111; # go to conference modification form below ###################### if ($ADD==41111111111111) -{ - if ($LOGast_admin_access==1) { - echo ""; - - $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) - {echo "
VICIDIAL CONFERENCIA - hay ya una conferencia en el sistema con esta extension - servidor NO MODIFICADO\n";} - else + if ($LOGast_admin_access==1) { - if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) - {echo "
VICIDIAL CONFERENCIA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL CONFERENCIA - hay ya una conferencia en el sistema con esta extension - servidor NO MODIFICADO\n";} + else { - echo "
VICIDIAL CONFERENCIA MODIFICADA: $conf_exten\n"; + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCIA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
VICIDIAL CONFERENCIA MODIFICADA: $conf_exten\n"; - $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below } -$ADD=31111111111111; # go to vicidial conference modification form below -} - ###################### @@ -10902,7 +13312,7 @@ if ($ADD==411111111111111) echo "
IMPOSTAZIONI DI SISTEMA MODIFICATE\n"; - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second';"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -10971,7 +13381,7 @@ if ($ADD==421111111111111) { echo "
ESITO DI DEFAULT MODIFICATO: $status\n"; - $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category' where status='$status';"; + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -11003,13 +13413,13 @@ if ($ADD==431111111111111) { echo ""; - if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) { echo "
CATEGORIA ESITI NON MODIFICATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; echo "
la categoria di esiti non puo` essere una categoria riservata: UNDEFINED\n"; echo "
il nome delle categorie di esiti deve essere lungo almeno 2 caratteri\n"; } - else + else { if (ereg('delete',$stage)) { @@ -11066,67 +13476,67 @@ if ($ADD==431111111111111) ###################### if ($ADD==441111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) - { - echo ""; - - if (ereg('delete',$stage)) { - if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + echo ""; + + if (ereg('delete',$stage)) { - echo "
QC CODICE STATO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
the qc status code cannot be a reserved esito: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; - echo "
qc il codice di stato deve essere di almeno 1 caratteri di lunghezza\n"; + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC CODICE STATO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
the qc status code cannot be a reserved esito: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
qc il codice di stato deve essere di almeno 1 caratteri di lunghezza\n"; + } + else + { + echo "
QC STATUS CODICE DELETED:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } - else + if (ereg('modify',$stage)) { - echo "
QC STATUS CODICE DELETED:$code\n"; + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC CODICE STATO NON MODIFICATI- Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
qc il codice di stato deve essere di almeno 1 caratteri di lunghezza\n"; + echo "
qc stato il nome in codice deve essere di almeno 1 caratteri di lunghezza\n"; + } + else + { + echo "
QC CODICE STATO MODIFICATO:$code\n"; - $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; - $rslt=mysql_query($stmt, $link); + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } } } - if (ereg('modify',$stage)) - { - if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) - { - echo "
QC CODICE STATO NON MODIFICATI- Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
qc il codice di stato deve essere di almeno 1 caratteri di lunghezza\n"; - echo "
qc stato il nome in codice deve essere di almeno 1 caratteri di lunghezza\n"; - } - else - { - echo "
QC CODICE STATO MODIFICATO:$code\n"; - - $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; - $rslt=mysql_query($stmt, $link); - - ### LOG INSERTION Admin Log Table ### - $SQL_log = "$stmt|"; - $SQL_log = ereg_replace(';','',$SQL_log); - $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - } - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below } -$ADD=341111111111111; # go to qc status code modification form below -} @@ -11143,336 +13553,358 @@ $ADD=341111111111111; # go to qc status code modification form below ###################### if ($ADD==5) -{ + { echo ""; - if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) { - echo "
UTENTE NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Utente be at least 2 characters in length\n"; + echo "
UTENTE NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Utente be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DEL USUARIO: $user\n"; echo "

Clicca qui per cancellare questo utente $user


\n"; } -$ADD='3'; # go to user modification below -} + $ADD='3'; # go to user modification below + } ###################### # ADD=51 confirmation before deletion of campaign ###################### if ($ADD==51) -{ + { echo ""; - if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) { - echo "
CAMPAGNA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Campagna_id be at least 2 characters in length\n"; + echo "
CAMPAGNA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DE LA CAMPAÑA: $campaign_id\n"; echo "

Clicca qui per cancellare la campagna $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=52 confirmation before logging all agents out of campaign of campaign ###################### if ($ADD==52) -{ + { echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
OPERATORI NON DISCONNESSI DALLA CAMPAGNA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Campagna_id be at least 2 characters in length\n"; + echo "
OPERATORI NON DISCONNESSI DALLA CAMPAGNA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; } - else + else { echo "
CONFERMA DISCONNESSIONE OPERATORE: $campaign_id\n"; - echo "

Clicca qui per disconnettere tutti gli operatori $campaign_id


\n"; + echo "

Clicca qui per disconnettere tutti gli operatori $campaign_id


\n"; } -$ADD='31'; # go to campaign modification below -} + $ADD='31'; # go to campaign modification below + } ###################### # ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record ###################### if ($ADD==53) -{ + { if (eregi('IN',$stage)) {$group_id=$campaign_id;} echo ""; - if (strlen($campaign_id) < 2) + if (strlen($campaign_id) < 2) { - echo "
VDAC NO DESPEJo` PARA LA CAMPAÑA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Campagna_id be at least 2 characters in length\n"; + echo "
VDAC NO DESPEJo` PARA LA CAMPAÑA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N CLARA DE VDAC: $campaign_id\n"; echo "

Chasque aquí para suprimir el más viejo VIVEN expediente en VDACpara $campaign_id


\n"; } -# go to campaign modification below -if (eregi('IN',$stage)) - {$ADD='3111';} -else - {$ADD='31';} -} + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } ###################### # ADD=511 confirmation before deletion of list ###################### if ($ADD==511) -{ + { echo ""; - if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) { - echo "
LISTA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
List_id be at least 2 characters in length\n"; + echo "
LISTA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
List_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DE LA LISTA: $list_id\n"; echo "

Clicca qui per cancellare la lista e tutti i suoi contatti $list_id


\n"; } -$ADD='311'; # go to campaign modification below -} + $ADD='311'; # go to campaign modification below + } ###################### # ADD=5111 confirmation before deletion of in-group ###################### if ($ADD==5111) -{ + { echo ""; - if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) { - echo "
GRUPPO INBOUND NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Group_id be at least 2 characters in length\n"; + echo "
GRUPPO INBOUND NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Group_id be at least 2 characters in length\n"; } - else + else { echo "
CONFERMA ELIMINAZIONE GRUPPO INBOUND: $group_id\n"; echo "

Clicca qui per cancellare il gruppo inbound $group_id


\n"; } -$ADD='3111'; # go to in-group modification below -} + $ADD='3111'; # go to in-group modification below + } ###################### # ADD=5311 confirmation before deletion of did ###################### if ($ADD==5311) -{ + { echo ""; - if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) { - echo "
NON HA ELIMINATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
did_id be at least 1 characters in length\n"; + echo "
NON HA ELIMINATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
did_id be at least 1 characters in length\n"; } - else + else { - echo "
LO CONFERMA ELIMINAZIONE: $group_id\n"; + echo "
LO CONFERMA ELIMINAZIONE: $menu_id\n"; echo "

Clicca qui per cancellareDID $did_id


\n"; } -$ADD='3311'; # go to did modification below -} + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CALL menu di cancellazione CONFERMA: $menu_id\n"; + echo "

Clicca qui per cancellare CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } ###################### # ADD=51111 confirmation before deletion of remote agent record ###################### if ($ADD==51111) -{ + { echo ""; - if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) { - echo "
AGENTE ALEJADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Remote_agent_id be at least 2 characters in length\n"; + echo "
AGENTE ALEJADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N ALEJADA DE LA CANCELADURA DEL AGENTE: $remote_agent_id\n"; echo "

Chasque aquí para suprimir el agente alejado $remote_agent_id


\n"; } -$ADD='31111'; # go to remote agent modification below -} + $ADD='31111'; # go to remote agent modification below + } ###################### # ADD=511111 confirmation before deletion of user group record ###################### if ($ADD==511111) -{ + { echo ""; - if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) { - echo "
GRUPO DE USUARIO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Utente_group be at least 2 characters in length\n"; + echo "
GRUPO DE USUARIO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Utente_group be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DEL GRUPO DE USUARIO: $user_group\n"; echo "

Chasque aquí para suprimir a grupo de usuario $user_group


\n"; } -$ADD='311111'; # go to user group modification below -} + $ADD='311111'; # go to user group modification below + } ###################### # ADD=5111111 confirmation before deletion of script record ###################### if ($ADD==5111111) -{ + { echo ""; - if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) { - echo "
SCRIPT NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Script_id must be at least 2 characters in length\n"; + echo "
SCRIPT NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Script_id must be at least 2 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DE LA ESCRITURA: $script_id\n"; echo "

Clicca qui per cancellare lo script $script_id


\n"; } -$ADD='3111111'; # go to script modification below -} + $ADD='3111111'; # go to script modification below + } ###################### # ADD=51111111 confirmation before deletion of filter record ###################### if ($ADD==51111111) -{ + { echo ""; - if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) { - echo "
FILTRO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
ID Filtro deve essere lungo almeno 2 caratteri\n"; + echo "
FILTRO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Filtro deve essere lungo almeno 2 caratteri\n"; } - else + else { echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; echo "

Clicca qui per cancellare il filtro$lead_filter_id


\n"; } -$ADD='31111111'; # go to filter modification below -} + $ADD='31111111'; # go to filter modification below + } ###################### # ADD=511111111 confirmation before deletion of call time record ###################### if ($ADD==511111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; + echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA: $call_time_id\n"; echo "

Clicca qui per cancellarecall time $call_time_id


\n"; } -$ADD='311111111'; # go to call time modification below -} + $ADD='311111111'; # go to call time modification below + } ###################### # ADD=5111111111 confirmation before deletion of state call time record ###################### if ($ADD==5111111111) -{ + { echo ""; - if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO: $call_time_id\n"; echo "

Clicca qui per cancellarestate call time $call_time_id


\n"; } -$ADD='3111111111'; # go to state call time modification below -} + $ADD='3111111111'; # go to state call time modification below + } ###################### # ADD=531111111 confirmation before deletion of shift record ###################### if ($ADD==531111111) -{ + { echo ""; - if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) { - echo "
SHIFT non eliminati - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Shift ID must be at least 2 characters in length\n"; + echo "
SHIFT non eliminati - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Shift ID must be at least 2 characters in length\n"; } - else + else { echo "
SHIFT DELETION CONFERMA:$shift_id\n"; echo "

Clicca qui per cancellare turno $shift_id


\n"; } -$ADD='331111111'; # go to call time modification below -} + $ADD='331111111'; # go to call time modification below + } ###################### # ADD=51111111111 confirmation before deletion of phone record ###################### if ($ADD==51111111111) -{ + { echo ""; - if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
TELEFONO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Extension be at least 2 characters in length\n"; - echo "
IP Server be at least 7 characters in length\n"; + echo "
TELEFONO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; } - else + else { echo "
CONFIRMACIo`N DE LA CANCELADURA DEL telefonO: $extension - $server_ip\n"; echo "

Clicca qui per cancellare il telefono $extension - $server_ip


\n"; } -$ADD='31111111111'; # go to phone modification below -} + $ADD='31111111111'; # go to phone modification below + } ###################### @@ -11480,21 +13912,21 @@ $ADD='31111111111'; # go to phone modification below ###################### if ($ADD==52111111111) -{ + { echo ""; - if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
ALIAS TELEFONO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Alias ID must be at least 2 characters in length\n"; + echo "
ALIAS TELEFONO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Alias ID must be at least 2 characters in length\n"; } - else + else { echo "
TELEFONO ALIAS CONFERMA ELIMINAZIONE: $alias_id\n"; echo "

Clicca qui per cancellare telefono alias $alias_id


\n"; } -$ADD='32111111111'; # go to phone alias modification below -} + $ADD='32111111111'; # go to phone alias modification below + } ###################### @@ -11502,21 +13934,21 @@ $ADD='32111111111'; # go to phone alias modification below ###################### if ($ADD==53111111111) -{ + { echo ""; - if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) { - echo "
ALIAS GRUPPO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Gruppo Alias ID must be at least 2 characters in length\n"; + echo "
ALIAS GRUPPO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Gruppo Alias ID must be at least 2 characters in length\n"; } - else + else { echo "
ALIAS GRUPPO CONFERMA ELIMINAZIONE: $group_alias_id\n"; echo "

Clicca qui per eliminare gruppo alias $group_alias_id


\n"; } -$ADD='33111111111'; # go to group alias modification below -} + $ADD='33111111111'; # go to group alias modification below + } ###################### @@ -11524,22 +13956,22 @@ $ADD='33111111111'; # go to group alias modification below ###################### if ($ADD==511111111111) -{ + { echo ""; - if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
SERVER NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
ID Server be at least 2 characters in length\n"; - echo "
IP Server be at least 7 characters in length\n"; + echo "
SERVER NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Server be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; } - else + else { echo "
SERVER DELETION CONFIRMATION: $server_id - $server_ip\n"; echo "

Clicca qui per cancellare il telefono $server_id - $server_ip


\n"; } -$ADD='311111111111'; # go to server modification below -} + $ADD='311111111111'; # go to server modification below + } ###################### @@ -11547,21 +13979,21 @@ $ADD='311111111111'; # go to server modification below ###################### if ($ADD==531111111111) -{ + { echo ""; - if (strlen($template_id) < 2) + if (strlen($template_id) < 2) { - echo "
CONF TEMPLATE NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Template ID essere almeno 2 caratteri\n"; + echo "
CONF TEMPLATE NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Template ID essere almeno 2 caratteri\n"; } - else + else { echo "
CONF TEMPLATE CONFERMA ELIMINAZIONE: $template_id - $template_name\n"; echo "

Clicca qui per cancellare conf modello $template_id - $template_name


\n"; } -$ADD='331111111111'; # go to conf template modification below -} + $ADD='331111111111'; # go to conf template modification below + } ###################### @@ -11569,21 +14001,87 @@ $ADD='331111111111'; # go to conf template modification below ###################### if ($ADD==541111111111) -{ + { echo ""; - if (strlen($carrier_id) < 2) + if (strlen($carrier_id) < 2) { - echo "
Vettore non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Vettore ID essere almeno 2 caratteri\n"; + echo "
Vettore non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Vettore ID essere almeno 2 caratteri\n"; } - else + else { echo "
CONFERMA ELIMINAZIONE DEL VETTORE: $carrier_id - $carrier_name\n"; echo "

Clicca qui per cancellare vettore $carrier_id - $carrier_name


\n"; } -$ADD='341111111111'; # go to carrier modification below -} + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ENTRATA SOPPRESSIONE CONFERMA: $tts_id - $tts_name\n"; + echo "

Clicca qui per cancellare TTS entrata $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
Music On Hold iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
Music On Hold ENTRATA SOPPRESSIONE CONFERMA: $moh_id - $moh_name\n"; + echo "

Clicca qui per cancellare la musica in attesa dell-entrata $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
VOICEMAIL BOX non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Casella Vocale ID be at least 2 characters in length\n"; + } + else + { + echo "
VOICEMAIL BOX SOPPRESSIONE CONFERMA: $voicemail_id - $fullname\n"; + echo "

Clicca qui per cancellare casella di segreteria telefonica $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } ###################### @@ -11591,22 +14089,22 @@ $ADD='341111111111'; # go to carrier modification below ###################### if ($ADD==5111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP Server be at least 7 characters in length\n"; + echo "
CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; } - else + else { echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Clicca qui per cancellare il telefono $conf_exten - $server_ip


\n"; } -$ADD='3111111111111'; # go to conference modification below -} + $ADD='3111111111111'; # go to conference modification below + } ###################### @@ -11614,22 +14112,22 @@ $ADD='3111111111111'; # go to conference modification below ###################### if ($ADD==51111111111111) -{ + { echo ""; - if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) { - echo "
VICIDIAL CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Conference must be at least 2 characters in length\n"; - echo "
IP Server be at least 7 characters in length\n"; + echo "
VICIDIAL CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; } - else + else { echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; echo "

Clicca qui per cancellare il telefono $conf_exten - $server_ip


\n"; } -$ADD='31111111111111'; # go to vicidial conference modification below -} + $ADD='31111111111111'; # go to vicidial conference modification below + } @@ -11650,8 +14148,8 @@ if ($ADD==6) if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) { - echo "
UTENTE NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Utente be at least 2 characters in length\n"; + echo "
UTENTE NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Utente be at least 2 characters in length\n"; } else { @@ -11689,8 +14187,8 @@ if ($ADD==61) if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) { - echo "
CAMPAGNA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; - echo "
Campagna_id be at least 2 characters in length\n"; + echo "
CAMPAGNA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; } else { @@ -11749,6 +14247,7 @@ if ($ADD==61) $ADD='10'; # go to campaigns list } + ###################### # ADD=62 Logout all agents from a campaign ###################### @@ -11766,8 +14265,174 @@ if ($ADD==62) } else { - $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -11833,7 +14498,7 @@ if ($ADD==63) if (eregi('IN',$stage)) {$ADD='3111';} else - {$ADD='31';} + {$ADD='31';} } @@ -11896,12 +14561,12 @@ if ($ADD==66) {echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - este estado del dial del alt del automo`vil no está en esta campaña\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
ESTADO AUTO DEL DIAL DEL ALT SUPRIMIDO: $campaign_id - $status\n"; @@ -11932,6 +14597,7 @@ if ($ADD==66) $ADD=31; # go to campaign modification form below } + ###################### # ADD=67 delete agent pause code in the system ###################### @@ -11942,12 +14608,12 @@ if ($ADD==67) { echo ""; - if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) { echo "
Co`DIGO DE LA PAUSA DE LA CAMPAÑA NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; echo "
pause code must be between 1 and 6 characters in length\n"; } - else + else { echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; @@ -11989,12 +14655,12 @@ if ($ADD==68) {echo "
ESITO CAMPAGNA NON RIMOSSO - questo esito di chiamata non e` selezionato per questa campagna\n";} else { - if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) { echo "
ESITO CAMPAGNA NON RIMOSSO - Per favore torna indietro e ricontrolla i dati inseriti\n"; echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; } - else + else { echo "
ESITO CAMPAGNA RIMOSSO: $campaign_id - $status\n"; @@ -12108,6 +14774,7 @@ if ($ADD==6111) $ADD='1000'; # go to in-group list } + ###################### # ADD=6311 delete did record ###################### @@ -12141,6 +14808,42 @@ if ($ADD==6311) $ADD='1300'; # go to did list } +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CALL menu di cancellazione PRONTI: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + ###################### # ADD=61111 delete remote agent record ###################### @@ -12662,6 +15365,116 @@ if ($ADD==641111111111) } +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Music On Hold iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Music On Hold SOPPRESSIONE PRONTI: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
VOICEMAIL BOX non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Casella Vocale ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VOICEMAIL BOX SOPPRESSIONE PRONTI: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + ###################### # ADD=6111111111111 delete conference record ###################### @@ -12747,246 +15560,293 @@ if ($ADD==61111111111111) ###################### if ($ADD==3) -{ - if ($LOGmodify_users==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_users where user='$user';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_level = $row[4]; - $user_group = $row[5]; - $phone_login = $row[6]; - $phone_pass = $row[7]; - $delete_users = $row[8]; - $delete_user_groups = $row[9]; - $delete_lists = $row[10]; - $delete_campaigns = $row[11]; - $delete_ingroups = $row[12]; - $delete_remote_agents = $row[13]; - $load_leads = $row[14]; - $campaign_detail = $row[15]; - $ast_admin_access = $row[16]; - $ast_delete_phones = $row[17]; - $delete_scripts = $row[18]; - $modify_leads = $row[19]; - $hotkeys_active = $row[20]; - $change_agent_campaign =$row[21]; - $agent_choose_ingroups =$row[22]; - $scheduled_callbacks = $row[24]; - $agentonly_callbacks = $row[25]; - $agentcall_manual = $row[26]; - $vicidial_recording = $row[27]; - $vicidial_transfers = $row[28]; - $delete_filters = $row[29]; - $alter_agent_interface_options =$row[30]; - $closer_default_blended = $row[31]; - $delete_call_times = $row[32]; - $modify_call_times = $row[33]; - $modify_users = $row[34]; - $modify_campaigns = $row[35]; - $modify_lists = $row[36]; - $modify_scripts = $row[37]; - $modify_filters = $row[38]; - $modify_ingroups = $row[39]; - $modify_usergroups = $row[40]; - $modify_remoteagents = $row[41]; - $modify_servers = $row[42]; - $view_reports = $row[43]; - $vicidial_recording_override = $row[44]; - $alter_custdata_override = $row[45]; - $qc_enabled = $row[46]; - $qc_user_level = $row[47]; - $qc_pass = $row[48]; - $qc_finish = $row[49]; - $qc_commit = $row[50]; - $add_timeclock_log = $row[51]; - $modify_timeclock_log = $row[52]; - $delete_timeclock_log = $row[53]; - $alter_custphone_override = $row[54]; - $vdc_agent_api_access = $row[55]; - $modify_inbound_dids = $row[56]; - $delete_inbound_dids = $row[57]; - $active = $row[58]; - $alert_enabled = $row[59]; - $download_lists = $row[60]; - $agent_shift_enforcement_override = $row[61]; - $manager_shift_enforcement_override = $row[62]; - $export_reports = $row[64]; - - if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + if ($LOGmodify_users==1) { - echo "
Non hai l`autorizzazione per modificare questo utente: $row[1]\n"; - } - else - { - echo "
MODIFICA UN UTENTE: $row[1]\n"; - if ($LOGuser_level > 8) - {echo "\n";} + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -13371,7 +16271,7 @@ if ($ADD==31) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; @@ -13453,8 +16517,8 @@ if ($ADD==31) { $nabs = abs($n); $dtl = 'Balanced'; - if ($n<0) {$dtl = 'Agents Waiting for Calls';} - if ($n>0) {$dtl = 'Calls Waiting for Agents';} + if ($n<0) {$dtl = 'Agenti Waiting for Calls';} + if ($n>0) {$dtl = 'Calls Waiting for Agenti';} if ($n == $adaptive_dl_diff_target) {echo "\n";} else @@ -13463,7 +16527,7 @@ if ($ADD==31) } echo " $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE\n"; - echo "\n"; + echo "\n"; echo "\n"; + + + echo "\n"; + + + echo "\n"; } - echo "\n"; + echo "\n"; echo "\n"; + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; } echo "\n"; @@ -13515,17 +16628,34 @@ if ($ADD==31) echo "\n"; + echo "$NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; - echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; } echo "\n"; @@ -13535,6 +16665,22 @@ if ($ADD==31) echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($SSoutbound_autodial_active > 0) { echo "\n"; @@ -13543,42 +16689,69 @@ if ($ADD==31) if ($SSoutbound_autodial_active > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "\n"; } echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; if ($SSoutbound_autodial_active > 0) { echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; } - echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; echo "\n"; @@ -13586,9 +16759,9 @@ if ($ADD==31) { echo "\n"; } - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -13622,13 +16795,17 @@ if ($ADD==31) if ($SSenable_vtiger_integration > 0) { - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; } else { @@ -13636,8 +16813,18 @@ if ($ADD==31) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + if ($campaign_allow_inbound == 'Y') { echo "\n"; echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Non hai l`autorizzazione per modificare questo utente: $user\n"; + } else { - if ($LOGalter_agent_interface == "1") - {echo "\n";} + echo "
MODIFICA UN UTENTE: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} else - {echo "\n";} - } - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - if ($LOGdelete_users > 0) - { - echo "

CANCELLA QUESTO UTENTE\n"; - } - echo "

Clicca qui per la tabella degli orari dell`utente\n"; - echo "

Clicca qui per visualizzare lo stato dell`utente\n"; - echo "

Clicca qui per le statistiche dell`utente\n"; - echo "

Clicca qui per lutente più giorni status dettaglio relazione\n"; - echo "

Clicca qui per i richiami dell`utente\n"; - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo record\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Numero Utente: $row[1]$NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Nome Completo: $NWB#vicidial_users-full_name$NWE
Livello Utente: $NWB#vicidial_users-user_level$NWE
Gruppo Utente: \n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "\n"; } - echo "\n"; - echo "\n"; - echo "\n"; + echo "$Ugroups_list"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - if ($SSqc_features_active > 0) + if ($SSuser_territories_active > 0) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; } - } - if ($LOGuser_level > 8) - { - echo "\n"; -#9BB9FB -#B9CBFD - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - - if ($SSoutbound_autodial_active > 0) + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) { - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if ($LOGuser_level > 8) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + #9BB9FB + #B9CBFD + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - } - echo "\n"; - echo "
Numero Utente: $user$NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Nome Completo: $NWB#vicidial_users-full_name$NWE
Livello Utente: $NWB#vicidial_users-user_level$NWE
Gruppo Utente: $NWB#vicidial_users-user_group$NWE
Login Telefono: $NWB#vicidial_users-phone_login$NWE
Password Telefono: $NWB#vicidial_users-phone_pass$NWE
Attivo: $NWB#vicidial_users-active$NWE
OPZIONI INTERFACCIA OPERATORE:
El Agente Elige Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Hot Keys Activo: $NWB#vicidial_users-hotkeys_active$NWE
Servicios repetidos Programar: $NWB#vicidial_users-scheduled_callbacks$NWE
Richiami esclusivi dell`operatore: $NWB#vicidial_users-agentonly_callbacks$NWE
Chiamata Manuale Operatore: $NWB#vicidial_users-agentcall_manual$NWE
Registrazione Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Trasferimenti Vicidial: $NWB#vicidial_users-vicidial_transfers$NWE
Un Defecto Más cercano Mezclado: $NWB#vicidial_users-closer_default_blended$NWE
Invalidacio`n De la grabacion de VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
El Agente Altera La Invalidacio`n De los Datos Del Cliente: $NWB#vicidial_users-alter_custdata_override$NWE
Agente Alter clienti Sovrascrive Telefono:$NWB#vicidial_users-alter_custphone_override$NWE
Login Telefono: $NWB#vicidial_users-phone_login$NWE
Password Telefono: $NWB#vicidial_users-phone_pass$NWE
Attivo: $NWB#vicidial_users-active$NWE
Email:$NWB#vicidial_users-optional$NWE
Utente Code: $NWB#vicidial_users-optional$NWE
Main Territorio: $NWB#vicidial_users-optional$NWE
Agente Maiusc esecuzione Sovrascrive: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alert Attivato: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Classifiche Campagna:$NWB#vicidial_users-campaign_ranks$NWE
\n"; - echo "\n"; - echo "$RANKcampaigns_list"; - echo "
\n"; - echo "
Gruppi Inbound: $NWB#vicidial_users-closer_campaigns$NWE
\n"; - echo "\n"; - echo "$RANKgroups_list"; - echo "
\n"; - echo "
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC Utente Livello:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Fine:$NWB#vicidial_users-qc_finish$NWE
QC Impegni:$NWB#vicidial_users-qc_commit$NWE
Utente Territori: $Uterrs_list
OPZIONI INTERFACCIA AMMINISTRATORE:
Visualizza Report: $NWB#vicidial_users-view_reports$NWE
Modifica Opzioni Interfaccia Operatore: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifica Utenti: $NWB#vicidial_users-modify_sections$NWE
Cambia la campagna di un operatore: $NWB#vicidial_users-change_agent_campaign$NWE
Cancella Utenti: $NWB#vicidial_users-delete_users$NWE
Modifique A Grupos De Usuario: $NWB#vicidial_users-modify_sections$NWE
Suprima a grupos de usuario: $NWB#vicidial_users-delete_user_groups$NWE
Modifica Liste: $NWB#vicidial_users-modify_sections$NWE
Cancella Liste: $NWB#vicidial_users-delete_lists$NWE
Carica Contatti: $NWB#vicidial_users-load_leads$NWE
Modifica Contatti: $NWB#vicidial_users-modify_leads$NWE
Download liste: $NWB#vicidial_users-modify_leads$NWE
Rapporti Export: $NWB#vicidial_users-export_reports$NWE
Modifica Campagne: $NWB#vicidial_users-modify_sections$NWE
Dettagli Campagna: $NWB#vicidial_users-campaign_detail$NWE
Cancella Campagne: $NWB#vicidial_users-delete_campaigns$NWE
Modifica Gruppi Inbound: $NWB#vicidial_users-modify_sections$NWE
En-Grupos de la cancelacio`n: $NWB#vicidial_users-delete_ingroups$NWE
Modificare DIDs:$NWB#vicidial_users-modify_sections$NWE
Elimina DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifica Operatori Remoti: $NWB#vicidial_users-modify_sections$NWE
Suprima los agentes alejados: $NWB#vicidial_users-delete_remote_agents$NWE
Modifica Script: $NWB#vicidial_users-modify_sections$NWE
Cancella Script: $NWB#vicidial_users-delete_scripts$NWE
Modifica Filtri: $NWB#vicidial_users-modify_sections$NWE
Cancella Filtros: $NWB#vicidial_users-delete_filters$NWE
OPZIONI INTERFACCIA OPERATORE:
El Agente Elige Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agente Scegli Territori: $NWB#vicidial_users-agent_choose_territories$NWE
Hot Keys Activo: $NWB#vicidial_users-hotkeys_active$NWE
Servicios repetidos Programar: $NWB#vicidial_users-scheduled_callbacks$NWE
Richiami esclusivi dell`operatore: $NWB#vicidial_users-agentonly_callbacks$NWE
Chiamata Manuale Operatore: $NWB#vicidial_users-agentcall_manual$NWE
Registrazione Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Trasferimenti Vicidial: $NWB#vicidial_users-vicidial_transfers$NWE
Un Defecto Más cercano Mezclado: $NWB#vicidial_users-closer_default_blended$NWE
Invalidacio`n De la grabacion de VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
El Agente Altera La Invalidacio`n De los Datos Del Cliente: $NWB#vicidial_users-alter_custdata_override$NWE
Agente Alter clienti Sovrascrive Telefono:$NWB#vicidial_users-alter_custphone_override$NWE
Agente Maiusc esecuzione Sovrascrive: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alert Attivato: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Consentire Alerts: $NWB#vicidial_users-allow_alerts$NWE
Classifiche Campagna:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Gruppi Inbound: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC Utente Livello:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Fine:$NWB#vicidial_users-qc_finish$NWE
QC Impegni:$NWB#vicidial_users-qc_commit$NWE
Acceso de AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
La cancelacio`n de AGC telefona: $NWB#vicidial_users-ast_delete_phones$NWE
Modifique El Tiempo De la Llamadas: $NWB#vicidial_users-modify_call_times$NWE
EliminareOrari Chiamata: $NWB#vicidial_users-delete_call_times$NWE
Modifica Server: $NWB#vicidial_users-modify_sections$NWE
Agente API Accesso:$NWB#vicidial_users-vdc_agent_api_access$NWE
OPZIONI INTERFACCIA AMMINISTRATORE:
Aggiungi orologio Entra record: $NWB#vicidial_users-add_timeclock_log$NWE
Modificare orologio Entra record: $NWB#vicidial_users-modify_timeclock_log$NWE
Elimina orologio Entra record: $NWB#vicidial_users-delete_timeclock_log$NWE
Visualizza Report: $NWB#vicidial_users-view_reports$NWE
Shift Manager esecuzione Sovrascrive: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
Modifica Opzioni Interfaccia Operatore: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifica Utenti: $NWB#vicidial_users-modify_sections$NWE
Cambia la campagna di un operatore: $NWB#vicidial_users-change_agent_campaign$NWE
Cancella Utenti: $NWB#vicidial_users-delete_users$NWE
\n"; + echo "
Modifique A Grupos De Usuario: $NWB#vicidial_users-modify_sections$NWE
Suprima a grupos de usuario: $NWB#vicidial_users-delete_user_groups$NWE
Modifica Liste: $NWB#vicidial_users-modify_sections$NWE
Cancella Liste: $NWB#vicidial_users-delete_lists$NWE
Carica Contatti: $NWB#vicidial_users-load_leads$NWE
Modifica Contatti: $NWB#vicidial_users-modify_leads$NWE
Download liste: $NWB#vicidial_users-modify_leads$NWE
Rapporti Export: $NWB#vicidial_users-export_reports$NWE
Cancellare dalle liste DNC: $NWB#vicidial_users-delete_from_dnc$NWE
Modifica Campagne: $NWB#vicidial_users-modify_sections$NWE
Dettagli Campagna: $NWB#vicidial_users-campaign_detail$NWE
Cancella Campagne: $NWB#vicidial_users-delete_campaigns$NWE
Modifica Gruppi Inbound: $NWB#vicidial_users-modify_sections$NWE
En-Grupos de la cancelacio`n: $NWB#vicidial_users-delete_ingroups$NWE
Modificare DIDs:$NWB#vicidial_users-modify_sections$NWE
Elimina DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifica Operatori Remoti: $NWB#vicidial_users-modify_sections$NWE
Suprima los agentes alejados: $NWB#vicidial_users-delete_remote_agents$NWE
Modifica Script: $NWB#vicidial_users-modify_sections$NWE
Cancella Script: $NWB#vicidial_users-delete_scripts$NWE
Modifica Filtri: $NWB#vicidial_users-modify_sections$NWE
Cancella Filtros: $NWB#vicidial_users-delete_filters$NWE
Acceso de AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
La cancelacio`n de AGC telefona: $NWB#vicidial_users-ast_delete_phones$NWE
Modifique El Tiempo De la Llamadas: $NWB#vicidial_users-modify_call_times$NWE
EliminareOrari Chiamata: $NWB#vicidial_users-delete_call_times$NWE
Modifica Server: $NWB#vicidial_users-modify_sections$NWE
Agente API Accesso:$NWB#vicidial_users-vdc_agent_api_access$NWE
Aggiungi orologio Entra record: $NWB#vicidial_users-add_timeclock_log$NWE
Modificare orologio Entra record: $NWB#vicidial_users-modify_timeclock_log$NWE
Elimina orologio Entra record: $NWB#vicidial_users-delete_timeclock_log$NWE
Shift Manager esecuzione Sovrascrive: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

CANCELLA QUESTO UTENTE\n"; + } + echo "

Clicca qui per la tabella degli orari dell`utente\n"; + echo "

Clicca qui per visualizzare lo stato dell`utente\n"; + echo "

Clicca qui per le statistiche dell`utente\n"; + echo "

Clicca qui per lutente più giorni status dettaglio relazione\n"; + echo "

Clicca qui per i richiami dell`utente\n"; + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo record
\n"; + } } } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -12999,19 +15859,19 @@ if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==31) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; $rslt=mysql_query($stmt, $link); @@ -13019,7 +15879,7 @@ if ($ADD==31) $enable_vtiger_integration_LU = $row[0]; $vtiger_url_LU = $row[1]; - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $campaign_name = $row[1]; @@ -13124,6 +15984,42 @@ if ($ADD==31) $cpd_amd_action = $row[103]; $agent_allow_group_alias = $row[104]; $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -13169,14 +16065,13 @@ if ($ADD==31) $QCL_to_print = (count($QClists) -0); ##### get status listings for dynamic pulldown - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; $dial_statuses_list=''; $qc_statuses_list=''; $survey_ni_status_list=''; - $o=0; while ($statuses_to_print > $o) { @@ -13214,7 +16109,7 @@ if ($ADD==31) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -13355,9 +16250,14 @@ if ($ADD==31) echo "
Descrizione Campagna: $NWB#vicidial_campaigns-campaign_description$NWE
Campagna Cambia Data: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagna Login Data: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Campagna Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Extension del parking: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Web Form Two: $NWB#vicidial_campaigns-web_form_address$NWE
Web Form Target: $NWB#vicidial_campaigns-web_form_target$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Esito Chiamata $o: \n"; + echo "
Esito Chiamata $o: \n"; if ($DEFstatusDISABLED > 0) { @@ -13385,14 +16285,118 @@ if ($ADD==31) } } - echo "
Aggiungi Un Esito Chiamata:
Aggiungi Un Esito Chiamata:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordine Lista: $NWB#vicidial_campaigns-lead_order$NWE
Ordine Lista: $NWB#vicidial_campaigns-lead_order$NWE
Elenco Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Drop Lockout Time: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Forza Il Reset Della Coda Chiamate: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Metodo Chiamata: $NWB#vicidial_campaigns-dial_method$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       FORZA LIVELLO ANCHE CON MODALITA` ADAPT
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       FORZA LIVELLO ANCHE CON MODALITA` ADAPT
Conta Solo Disponibili: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Limita Percentuale Abbattuti: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Transferencias Concurrentes: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Transferencias Concurrentes: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Coda di priorità: $NWB#vicidial_campaigns-queue_priority$NWE
Multiple campagna Drop Rate Gruppo: $NWB#vicidial_campaigns-drop_rate_group$NWE
El Marcar Auto Del Alt-Nu`mero: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_campaigns-next_agent_call$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_campaigns-next_agent_call$NWE
Orario Chiamate:
Timeout Chiamata: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Timeout Chiamata: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Prefisso Chiamata: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Ometti Prefisso Telefono: $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID della Campagna: $NWB#vicidial_campaigns-campaign_cid$NWE
CallerID della Campagna: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Exten VDAD de La campaña: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Exten VDAD de La campaña: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Interno Registrazioni Per Questa Campagna: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_campaigns-get_call_launch$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_campaigns-get_call_launch$NWE
Messaggio Segreteria Telefonica: $NWB#vicidial_campaigns-am_message_exten$NWE
Messaggio Segreteria Telefonica: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Opzioni: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD envían a la VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
AMD envían a la VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Azione: $NWB#vicidial_campaigns-cpd_amd_action$NWE
CPD AMD Azione: $NWB#vicidial_campaigns-cpd_amd_action$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Trasferimento rapido Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Trasferimento PrePopulate Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Timer azione: $NWB#vicidial_campaigns-timer_action$NWE
Timer azione Message: $NWB#vicidial_campaigns-timer_action_message$NWE
Timer azione Secondi: $NWB#vicidial_campaigns-timer_action_seconds$NWE
El Marcar Del Número Del Alt: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Secondi Abbattimento Telefonata: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Secondi Abbattimento Telefonata: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Goccia dazione:$NWB#vicidial_campaigns-drop_action$NWE
Goccia dazione:$NWB#vicidial_campaigns-drop_action$NWE
Interno Messaggio Telefonata Abbattuta: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Interno Messaggio Telefonata Abbattuta: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Casella Vocale: $NWB#vicidial_campaigns-voicemail_ext$NWE
Casella Vocale: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Trasferimento Drop Group:
Trasferimento Drop Group:$NWB#vicidial_campaigns-drop_inbound_group$NWE
Secondi Riposo Operatore: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Messaggio Riposo Operatore: $NWB#vicidial_campaigns-wrapup_message$NWE
Controlla In Lista Contatti Da NON CHIAMARE: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Controlla In Lista Contatti Da NON CHIAMARE: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Usa campagna DNC Elenco: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
Usa campagna DNC Elenco: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentCodici PausaAttivo: $NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Aggiornamento Statistiche Campagna: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Disabilita modifica dati clienti: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Disattiva Alter Clienti Telefono:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Disabilita modifica dati clienti: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Disattiva Alter Clienti Telefono:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Abilita Login Senza Contatti Da Chiamare: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
N. Dialing Hopper: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Unico proprietario Dialing: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agente Seleziona Territori: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent Visualizzare Dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agente Mostra Coda Count:$NWB#vicidial_campaigns-display_queue_count$NWE
ID Lista Chiamate Manuali:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Agente Mostra Coda Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Manuale Dial Filtro:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agente chiede View in coda: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Visualizzazione delle chiamate in coda Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agente chiede Grab in coda: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Call Agent Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agente di pausa dopo ogni chiamata: $NWB#vicidial_campaigns-pause_after_each_call$NWE
ID Lista Chiamate Manuali:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manuale Dial Filtro:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Appunti di agente Schermata Copia: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agente Screen estensione Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Way chiamate in uscita CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way chiamate in uscita CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Call Prefisso Chiamata: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
3-Way Call Prefisso Chiamata: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Gruppo Alias ammessi: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Vtiger Ricerca Categoria: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Ricerca Categoria: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Crea chiamate record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Cerca Dead Accounts: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Vtiger Crea Piombo record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Crea chiamate record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Screen accesso: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
Vtiger Crea Piombo record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger stato della chiamata: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Screen accesso: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup Indirizzo: $NWB#vicidial_campaigns-crm_login_address$NWE
Start Call URL: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Grupos De entrada Permitidos:
"; @@ -13661,37 +16848,37 @@ if ($ADD==31) echo "
\n"; - echo "
\n"; + echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($SSoutbound_autodial_active > 0) - { - echo "
LISTE IN QUESTA CAMPAGNA:   $NWB#vicidial_campaign_lists$NWE\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTE IN QUESTA CAMPAGNA:   $NWB#vicidial_campaign_lists$NWE\n"; - echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14411,7 +17626,7 @@ if ($ADD==34) $o++; $Dstatus = $Dstatuses[$o]; - echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; - - echo "
\n"; - echo ""; + echo "\n"; echo "
\n"; + echo ""; - $LISTlink='stage=LISTIDDOWN'; - $TALLYlink='stage=TALLYDOWN'; - $ACTIVElink='stage=ACTIVEDOWN'; - $CAMPAIGNlink='stage=CAMPAIGNDOWN'; - $CALLDATElink='stage=CALLDATEDOWN'; - $SQLorder='order by list_id'; - if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} - if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} - if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} - if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} - if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} - if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} - if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} - if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} - if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} - if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -13744,47 +16931,48 @@ if ($ADD==31) echo "

\n"; - echo "
\n"; + echo "
\n"; - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} - else - {$fSQL = '';} + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Questa campagna ha $active_lists liste attive e $inactive_lists lista inattive

\n"; + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Questa campagna ha $active_lists liste attive e $inactive_lists lista inattive

\n"; - if ($display_dialable_count == 'Y') - { - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - echo " - NASCONDI

"; + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - NASCONDI

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - MOSTRA

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Questa campagna ha $hopper_leads contatti nella coda chiamate

\n"; + echo "Clicca qui per vedere quali numeri sono nella coda chiamate in questo momento

\n"; + echo "Clicca qui per vedere il report VDAD per questa campagna

\n"; } - else + echo "Clicca qui per visualizzare tutti i richiami in attesa per questa campagna

\n"; + if ($LOGuser_level >= 9) { - echo "Popup Dialable Leads Count"; - echo " - MOSTRA

"; + echo "

Clicca qui per visualizzare Admin chages a questa campagna
\n"; } - - $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $hopper_leads = "$rowx[0]"; - - echo "Questa campagna ha $hopper_leads contatti nella coda chiamate

\n"; - echo "Clicca qui per vedere quali numeri sono nella coda chiamate in questo momento

\n"; - echo "Clicca qui per vedere il report VDAD per questa campagna

\n"; + echo "
\n"; } - echo "Clicca qui per visualizzare tutti i richiami in attesa per questa campagna

\n"; - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questa campagna\n"; - } - echo "
\n"; - } ##### CAMPAIGN CUSTOM STATUSES ##### @@ -13810,9 +16998,9 @@ if ($ADD==31) echo "
\n"; echo "
ESITI PERSONALIZZATI PER QUESTA CAMPAGNA:   $NWB#vicidial_campaign_statuses$NWE
\n"; echo "\n"; - echo "\n"; + echo "\n"; - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -13845,6 +17033,14 @@ if ($ADD==31) echo "\n"; } @@ -13855,8 +17051,13 @@ if ($ADD==31) echo "\n"; echo "Esito:   \n"; echo "Descrizione:   \n"; - echo "Selezionabile:   \n"; - echo "Risposta Umana:   \n"; + echo "Selezionabile:  
\n"; + echo "Risposta Umana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; echo "Categoria: \n"; echo "
ESITODESCRIZIONESELEZIONABILERISPOSTA UMANACANCELLA
ESITODESCRIZIONESELEZIONABILERISPOSTA UMANACATEGORIAMODIFY-DELETE
        \n"; echo "   \n"; echo "CANCELLA\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT * from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -13934,7 +17136,7 @@ if ($ADD==31) } $camp_lists = eregi_replace(".$","",$camp_lists); - $stmt="SELECT * from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; @@ -14060,13 +17262,14 @@ if ($ADD==31) echo "
HOT KEYESITODESCRIZIONECANCELLA
\n"; echo "\n"; - $stmt="SELECT * from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; - $rslt=mysql_query($stmt, $link); - $pause_codes_to_print = mysql_num_rows($rslt); - $o=0; - while ($pause_codes_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $o++; + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -14182,22 +17385,33 @@ if ($ADD==31) { echo "

INDAGINE SETTINGS per questa campagna:
\n"; - echo "
CODICI PAUSAFATTURABILEMODIFICACANCELLA
\n"; + echo "
\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "
\n"; echo "\n"; - echo "
Indagine primo file audio: $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Indagine primo file audio: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Indagine sulle cifre DTMF: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Indagine non interessa Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Indagine Opt-in File Audio: $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Indagine non interessa File Audio: $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Indagine Opt-in File Audio: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Indagine non interessa File Audio: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Indagine Metodo: $NWB#vicidial_campaigns-survey_method$NWE
Indagine n.-Azione di risposta: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Indagine Stato non è interessato: $NWB#vicidial_campaigns-survey_ni_status$NWE
Terza indagine Digit: $NWB#vicidial_campaigns-survey_third_digit$NWE
Terza indagine di file audio: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Terza indagine Esito: $NWB#vicidial_campaigns-survey_third_status$NWE
Terza indagine Estensione: $NWB#vicidial_campaigns-survey_third_exten$NWE
Digit Indagine Quarta: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Quarta Indagine file audio: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Status Indagine Quarta: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Quarta indagine Estensione: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Indagine risposta Digit Mappa: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Indagine Indagine Xfer Estensione: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Indagine Campagna Registrazione Directory: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Casella Vocale: $NWB#vicidial_campaigns-voicemail_ext$NWE
Casella Vocale: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; @@ -14208,8 +17422,8 @@ if ($ADD==31) if ($SUB < 1) { echo "

\n"; - echo "
DISCONNETTI TUTTI GLI OPERATORI DI QUESTA CAMPAGNA

\n"; - echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + echo "DISCONNETTI TUTTI GLI OPERATORI DI QUESTA CAMPAGNA

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; if ($LOGdelete_campaigns > 0) { @@ -14233,21 +17447,21 @@ if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list if ($ADD==34) -{ - if ($LOGmodify_campaigns==1) { - if ($stage=='show_dialable') + if ($LOGmodify_campaigns==1) { + if ($stage=='show_dialable') + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } if ($stage=='hide_dialable') - { + { $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); - } + } - $stmt="SELECT * from vicidial_campaigns where campaign_id='$campaign_id';"; + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dial_status_a = $row[3]; @@ -14281,13 +17495,14 @@ if ($ADD==34) $default_xfer_group = $row[67]; $campaign_allow_inbound = $row[65]; $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} else {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} - $stmt="SELECT * from vicidial_statuses order by status"; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $statuses_list=''; @@ -14305,7 +17520,7 @@ if ($ADD==34) $o++; } - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; $rslt=mysql_query($stmt, $link); $Cstatuses_to_print = mysql_num_rows($rslt); @@ -14396,7 +17611,7 @@ if ($ADD==34) echo "
Campagna Cambia Data: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagna Login Data: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Extension del parking: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Web Form: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Esito Chiamata $o: \n"; + echo "
Esito Chiamata $o: \n"; if ($DEFstatusDISABLED > 0) { echo "$Dstatus - $statname_list[$Dstatus]         \n"; @@ -14424,14 +17639,118 @@ if ($ADD==34) } } - echo "
Aggiungi Un Esito Chiamata:
Aggiungi Un Esito Chiamata:   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordine Lista: $NWB#vicidial_campaigns-lead_order$NWE
Ordine Lista: $NWB#vicidial_campaigns-lead_order$NWE
Elenco Mix: $NWB#vicidial_campaigns-lead_filter_id$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Forza Il Reset Della Coda Chiamate: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Metodo Chiamata: $NWB#vicidial_campaigns-dial_method$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Modifica Intensita` Adapt Auto-Dial: \n"; + echo "
\n"; echo "\n"; - $stmt="SELECT user,campaign_rank,calls_today from vicidial_campaign_agents where campaign_id='$campaign_id'"; + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); @@ -14624,13 +17999,13 @@ if ($ADD==34) else {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; } echo "
UTENTE     CLASSIFICA     CHIAMATE OGGI
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; - echo "DISCONNETTI TUTTI GLI OPERATORI DI QUESTA CAMPAGNA

\n"; + echo "DISCONNETTI TUTTI GLI OPERATORI DI QUESTA CAMPAGNA

\n"; if ($LOGdelete_campaigns > 0) @@ -14678,10 +18053,18 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

MIX LISTA PER QUESTA CAMPAGNA:   $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; - echo "

Experimental Feature in development!!! NON-FUNCTIONAL
\n"; + echo "
ATTENZIONE, si limita a raccomandareMix Listeper utenti avanzati, Si prega di leggere il manuale ViciDial Manager
\n"; + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } - $stmt="SELECT * from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; $rslt=mysql_query($stmt, $link); $listmixes = mysql_num_rows($rslt); $o=0; @@ -14700,11 +18083,11 @@ if ( ($ADD==34) or ($ADD==31) ) else {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} } - echo "
\n"; + echo "

\n"; echo ""; echo "\n"; echo "\n"; + echo "List: $MIXdetailsLIST   RIMUOVI\n"; echo "\n"; @@ -14810,8 +18193,8 @@ if ( ($ADD==34) or ($ADD==31) ) echo "\n"; - echo "\n"; + echo "\n"; - if ($q > 9) {$AE_disabled = 'DISABLED';} + if ($q > 39) {$AE_disabled = 'DISABLED';} else {$AE_disabled = '';} - echo "\n"; + + $X='X'; + echo "\n"; echo "
\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14755,10 +18138,10 @@ if ( ($ADD==34) or ($ADD==31) ) echo "
\n"; echo "\n"; - echo "List: $MIXdetailsLIST   RIMUOVI
\n"; - echo "
\n"; + echo "
\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -14820,11 +18203,27 @@ if ( ($ADD==34) or ($ADD==31) ) echo "List: \n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "RIMUOVI\n"; echo "
\n"; } @@ -14832,7 +18231,7 @@ if ( ($ADD==34) or ($ADD==31) ) echo "

AGGIUNGI NUOVA LISTA MIX
\n"; echo "\n"; - echo "
\n"; + echo "
\n"; echo "\n"; echo "\n"; echo "\n"; @@ -15251,356 +18650,565 @@ echo "
\n"; ###################### if ($ADD==311) -{ + { if ($LOGmodify_lists==1) - { - echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_lists where list_id='$list_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $campaign_id = $row[2]; - $active = $row[3]; - $list_description = $row[4]; - $list_changedate = $row[5]; - $list_lastcalldate = $row[6]; - - # grab names of global statuses and statuses in the selected campaign - $stmt="SELECT * from vicidial_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($statuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - $stmt="SELECT * from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); - - $o=0; - while ($Cstatuses_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $statuses_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - # end grab status names - - - echo "
MODIFICA I DATI DELLA LISTA: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
ID Lista: $row[0]$NWB#vicidial_lists-list_id$NWE
Nome Lista: $NWB#vicidial_lists-list_name$NWE
Descrizione Lista: $NWB#vicidial_lists-list_description$NWE
Campagna: $NWB#vicidial_lists-campaign_id$NWE
Attivo: $NWB#vicidial_lists-active$NWE
Resetta questa lista allo stato di `contatti non chiamati`: $NWB#vicidial_lists-reset_list$NWE
Data Modifica Lista: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Data Ultima Telefonata $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
\n"; - - echo "
\n"; - echo "
ESITI IN QUESTA LISTA:
\n"; - echo "\n"; - echo "\n"; - - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - - $o=0; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } - - $o=0; - if ($lead_list['count'] > 0) - { - while (list($dispo,) = each($lead_list[$since_reset])) { + echo "
ESITONOME ESITOCHIAMATINON CHIAMATI
\n"; - $o++; - } - } + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); - echo "\n"; - echo "\n"; + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names - echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; - if ($dispo == 'CBHOLD') + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) { - $CLB=""; - $CLE=""; - } - else - { - $CLB=''; - $CLE=''; + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; } - echo "
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; - unset($lead_list); + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} - echo "
\n"; - echo "
FUSI ORARI IN QUESTA LISTA:
\n"; - echo "\n"; - echo "\n"; + echo "
MODIFICA I DATI DELLA LISTA: $list_id\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
FUSO ORARIO ATTUALE (ora locale)CHIAMATINON CHIAMATI
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $o=0; - $plus='+'; - $lead_list['count'] = 0; - $lead_list['Y_count'] = 0; - $lead_list['N_count'] = 0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - - $lead_list['count'] = ($lead_list['count'] + $rowx[2]); - if ($rowx[1] == 'N') - { - $since_reset = 'N'; - $since_resetX = 'Y'; - } - else - { - $since_reset = 'Y'; - $since_resetX = 'N'; - } - $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); - $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); - #If opposite side is not set, it may not in the future so give it a value of zero - if (!isset($lead_list[$since_resetX][$rowx[0]])) - { - $lead_list[$since_resetX][$rowx[0]]=0; - } - $o++; - } + echo "\n"; - if ($lead_list['count'] > 0) - { - while (list($tzone,) = each($lead_list[$since_reset])) - { - $LOCALzone=3600 * $tzone; - $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + echo "\n"; - if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} - else {$DISPtzone = "$tzone";} - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + echo "\n"; - echo "\n"; - } - } + echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; - echo "
ID Lista: $list_id$NWB#vicidial_lists-list_id$NWE
Nome Lista: $NWB#vicidial_lists-list_name$NWE
Descrizione Lista: $NWB#vicidial_lists-list_description$NWE
Campagna: $NWB#vicidial_lists-campaign_id$NWE
Attivo: $NWB#vicidial_lists-active$NWE
Resetta questa lista allo stato di `contatti non chiamati`: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Data Modifica Lista: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Data Ultima Telefonata $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Script Override: $NWB#vicidial_lists-agent_script_override$NWE
Campagna CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Messaggio Segreteria Telefonica Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
Drop Inbound Group Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]
Transfiera -Conf El Número 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE

\n"; - unset($lead_list); + echo "
Transfiera -Conf El Número 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; - $leads_in_list = 0; - $leads_in_list_N = 0; - $leads_in_list_Y = 0; - $stmt="SELECT status,called_count,count(*) from vicidial_list where list_id='$list_id' group by status,called_count order by status,called_count"; - $rslt=mysql_query($stmt, $link); - $status_called_to_print = mysql_num_rows($rslt); + echo "
\n"; + echo "
ESITI IN QUESTA LISTA:
\n"; + echo "\n"; + echo "\n"; - $o=0; - $sts=0; - $first_row=1; - $all_called_first=1000; - $all_called_last=0; - while ($status_called_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $leads_in_list = ($leads_in_list + $rowx[2]); - $count_statuses[$o] = "$rowx[0]"; - $count_called[$o] = "$rowx[1]"; - $count_count[$o] = "$rowx[2]"; - $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by status,called_since_last_reset order by status,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); - if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) - { - if ($first_row) {$first_row=0;} - else {$sts++;} - $status[$sts] = "$rowx[0]"; - $status_called_first[$sts] = "$rowx[1]"; - if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} - } - $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); - $status_called_last[$sts] = "$rowx[1]"; - if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - $o++; - } + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ESITONOME ESITOCHIAMATINON CHIAMATI
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); + echo "
\n"; + echo "
FUSI ORARI IN QUESTA LISTA:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
FUSO ORARIO ATTUALE (ora locale)CHIAMATINON CHIAMATI
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); - echo "
\n"; - echo "
CHIAMATE EFFETTUATE IN QUESTA LISTA:
\n"; - echo "\n"; - echo ""; - $first = $all_called_first; - while ($first <= $all_called_last) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} - else{$AB='bgcolor="#E0FFFF"';} - echo ""; - $first++; - } - echo "\n"; + echo "
\n"; + echo "
PROPRIETARI all-interno di questa mailing:
\n"; + echo "
ESITONOME ESITO$firstSUBTOTALE
\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERCHIAMATINON CHIAMATI
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
RANKS all-interno di questa mailing:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
CLASSIFICACHIAMATINON CHIAMATI
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
CHIAMATE EFFETTUATE IN QUESTA LISTA:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; $sts=0; $statuses_called_to_print = count($status); while ($statuses_called_to_print > $sts) - { - $Pstatus = $status[$sts]; - if (eregi("1$|3$|5$|7$|9$", $sts)) - {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} - else - {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} - # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; - # echo "$status[$sts]|"; - echo ""; + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; $first = $all_called_first; while ($first <= $all_called_last) { - if (eregi("1$|3$|5$|7$|9$", $sts)) - { - if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - else - { - if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} - else{$AB='bgcolor="#B9CBFD"';} - } - - $called_printed=0; - $o=0; - while ($status_called_to_print > $o) - { - if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) - { - $called_printed++; - echo ""; - } - - - $o++; - } - if (!$called_printed) - {echo "";} + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; $first++; } - echo "\n\n"; + echo "\n"; - $sts++; + echo "
ESITONOME ESITO$first$FplusSUBTOTALE
$Pstatus$statuses_list[$Pstatus]
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
TOTALE $count_count[$o]  $all_called_count[$first]$leads_in_sts[$sts]
$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Clicca qui per visualizzare tutti i richiami in attesa in questa lista

\n"; + echo "

Clicca qui per scaricare lelenco

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

CANCELLA QUESTA LISTA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo elenco\n"; + } } - - echo "
TOTALE$all_called_count[$first]$leads_in_list

\n"; - - - - - - echo "
\n"; - - echo "

Clicca qui per visualizzare tutti i richiami in attesa in questa lista

\n"; - echo "

Clicca qui per scaricare lelenco

\n"; - - if ($LOGdelete_lists > 0) - { - echo "

CANCELLA QUESTA LISTA\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo elenco
\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} @@ -15609,345 +19217,429 @@ if ($ADD==311) ###################### if ($ADD==3111) -{ - if ($LOGmodify_ingroups==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_groups where group_id='$group_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $group_name = $row[1]; - $group_color = $row[2]; - $active = $row[3]; - $web_form_address = stripslashes($row[4]); - $voicemail_ext = $row[5]; - $next_agent_call = $row[6]; - $fronter_display = $row[7]; - $script_id = $row[8]; - $get_call_launch = $row[9]; - $xferconf_a_dtmf = $row[10]; - $xferconf_a_number = $row[11]; - $xferconf_b_dtmf = $row[12]; - $xferconf_b_number = $row[13]; - $drop_call_seconds = $row[14]; - $drop_action = $row[15]; - $drop_exten = $row[16]; - $call_time_id = $row[17]; - $after_hours_action = $row[18]; - $after_hours_message_filename = $row[19]; - $after_hours_exten = $row[20]; - $after_hours_voicemail = $row[21]; - $welcome_message_filename = $row[22]; - $moh_context = $row[23]; - $onhold_prompt_filename = $row[24]; - $prompt_interval = $row[25]; - $agent_alert_exten = $row[26]; - $agent_alert_delay = $row[27]; - $default_xfer_group = $row[28]; - $queue_priority = $row[29]; - $drop_inbound_group = $row[30]; - $ingroup_recording_override = $row[31]; - $ingroup_rec_filename = $row[32]; - $afterhours_xfer_group = $row[33]; - $qc_enabled = $row[34]; - $qc_statuses = $row[35]; - $qc_shift_id = $row[36]; - $qc_get_record_launch = $row[37]; - $qc_show_recording = $row[38]; - $qc_web_form_address = stripslashes($row[39]); - $qc_script = $row[40]; - $play_place_in_line = $row[41]; - $play_estimate_hold_time = $row[42]; - $hold_time_option = $row[43]; - $hold_time_option_seconds = $row[44]; - $hold_time_option_exten = $row[45]; - $hold_time_option_voicemail = $row[46]; - $hold_time_option_xfer_group = $row[47]; - $hold_time_option_callback_filename = $row[48]; - $hold_time_option_callback_list_id = $row[49]; - $hold_recall_xfer_group = $row[50]; - $no_delay_call_route = $row[51]; - $play_welcome_message = $row[52]; - $answer_sec_pct_rt_stat_one = $row[53]; - $answer_sec_pct_rt_stat_two = $row[54]; - $default_group_alias = $row[55]; - - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $Dgroups_menu=''; - $Dgroups_selected=0; - $Agroups_menu=''; - $Agroups_selected=0; - $Hgroups_menu=''; - $Hgroups_selected=0; - $Tgroups_menu=''; - $Tgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) + if ($LOGmodify_ingroups==1) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "\n"; - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - if ($group_id!=$rowx[0]) - { - $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - } - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - if ($Agroups_selected < 1) - {$Agroups_menu .= "\n";} - else - {$Agroups_menu .= "\n";} - if ($Tgroups_selected < 1) - {$Tgroups_menu .= "\n";} - else - {$Tgroups_menu .= "\n";} - if ($Hgroups_selected < 1) - {$Hgroups_menu .= "\n";} - else - {$Hgroups_menu .= "\n";} + echo "
\n"; + echo ""; - - echo "
MODIFICAR UN REGISTRO DE LOS GRUPOS: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - ##### get groups_alias listings for dynamic default group alias pulldown list menu - $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; - $rslt=mysql_query($stmt, $link); - $group_alias_to_print = mysql_num_rows($rslt); - $group_alias_menu=''; - $group_alias_selected=0; - $o=0; - while ($group_alias_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $group_alias_menu .= "\n"; - $o++; - } - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - - ##### get status listings for dynamic pulldown - $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); - $QCstatuses = explode(" ", $qc_statuses); - $QCs_to_print = (count($QCstatuses) -0); - $stmt="SELECT * from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $qc_statuses_list=''; + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; $o=0; - while ($statuses_to_print > $o) + while ($Xgroups_to_print > $o) { $rowx=mysql_fetch_row($rslt); - $qc_statuses_list .= "$rowx[0] - $rowx[1]\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + echo "
MODIFICAR UN REGISTRO DE LOS GRUPOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
ID Gruppo: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nome Gruppo: $NWB#vicidial_inbound_groups-group_name$NWE
Colore Gruppo: $NWB#vicidial_inbound_groups-group_color$NWE
Attivo: $NWB#vicidial_inbound_groups-active$NWE
Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Coda di priorità: $NWB#vicidial_inbound_groups-queue_priority$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Secondi Abbattimento Telefonata: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Goccia dazione:$NWB#vicidial_inbound_groups-drop_action$NWE
Gota Exten: $NWB#vicidial_inbound_groups-drop_exten$NWE
Casella Vocale: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Trasferimento Drop Group:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Tempo Chiamata: $NWB#vicidial_inbound_groups-call_time_id$NWE
Despue`s De la Accio`n De las Horas:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Despue`s De Nombre de fichero Del Mensaje De las Horas:$NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Despue`s De la Extension De las Horas:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Despue`s De las Horas Casella Vocale:$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Dopo ore di trasferimento del gruppo:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Nombre de fichero Agradable Del Mensaje:$NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Lettura del messaggio di benvenuto:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Context Musica di Attesa:$NWB#vicidial_inbound_groups-moh_context$NWE
En Nombre de fichero Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
En Intervalo Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Gioca Luogo in Linea:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Gioca Tenere Tempo stimato:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Tenere Tempo Opzione:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Tenere Opzione Secondi Tempo:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Tenere Opzione Tempo Estensione:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Tenere Tempo Opzione Segreteria:$NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Tenere Opzione Tempo trasferimento in gruppo:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Tenere il tempo di richiamata Opzione Nome file:$NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Tenere Opzione Tempo richiamata Elenco ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Extension Alerta Del Agente:$NWB#vicidial_inbound_groups-agent_alert_exten$NWE
La Alarma Del Agente Retrasa:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Grupo De la Transferencia Del Defecto:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Predefinito Gruppo Alias: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Tenere Ricorda Trasferimento in gruppo:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Scadenza Bando n. Percorso:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
Nel gruppo di registrazione Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
Nel gruppo Registrazione Nome file:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Statistiche per cento delle chiamate risposta entro X secondi 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Statistiche per cento delle chiamate risposta entro X secondi 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
 
Inbound Gruppo QC Impostazioni:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; $o++; } - $stmt="SELECT distinct(status),status_name from vicidial_campaign_statuses order by status"; - $rslt=mysql_query($stmt, $link); - $Cstatuses_to_print = mysql_num_rows($rslt); + echo "\n"; - $o=0; - while ($Cstatuses_to_print > $o) + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) { - $rowx=mysql_fetch_row($rslt); - if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) { + $rowx=mysql_fetch_row($rslt); $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; } - ##### get scripts listings for pulldown - $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; - $rslt=mysql_query($stmt, $link); - $scripts_to_print = mysql_num_rows($rslt); - $QCscripts_list=""; - $o=0; - while ($scripts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCscripts_list .= "\n"; - $scriptname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - ##### get shifts listings for pulldown - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $QCshifts_list=""; - $o=0; - while ($shifts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCshifts_list .= "\n"; - $shiftname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - } - - echo "
ID Gruppo: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nome Gruppo: $NWB#vicidial_inbound_groups-group_name$NWE
Colore Gruppo: $NWB#vicidial_inbound_groups-group_color$NWE
Attivo: $NWB#vicidial_inbound_groups-active$NWE
Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Web Form Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Coda di priorità: $NWB#vicidial_inbound_groups-queue_priority$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Timer azione: $NWB#vicidial_inbound_groups-timer_action$NWE
Timer azione Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Timer azione Secondi: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Secondi Abbattimento Telefonata: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Goccia dazione:$NWB#vicidial_inbound_groups-drop_action$NWE
Gota Exten: $NWB#vicidial_inbound_groups-drop_exten$NWE
Casella Vocale: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Trasferimento Drop Group:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Tempo Chiamata: $NWB#vicidial_inbound_groups-call_time_id$NWE
Despue`s De la Accio`n De las Horas:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Despue`s De Nombre de fichero Del Mensaje De las Horas: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Despue`s De la Extension De las Horas:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Despue`s De las Horas Casella Vocale: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Dopo ore di trasferimento del gruppo:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
N. agenti n. Queueing: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Nessun agente Nessuna azione di coda: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Call Menu:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Lista: "; + echo "
ID Campagna: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Estensione:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Buzon de voz: voicemail chooser\n"; + } + + echo "
+
 
Nombre de fichero Agradable Del Mensaje: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Lettura del messaggio di benvenuto:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Context Musica di Attesa: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
En Nombre de fichero Del Aviso Del Asimiento: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
En Intervalo Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Gioca Luogo in Linea:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Gioca Tenere Tempo stimato:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Tenere Tempo Opzione:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Tenere Opzione Secondi Tempo:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Tenere Opzione Tempo Estensione:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Tenere Tempo Opzione Segreteria: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Tenere Opzione Tempo trasferimento in gruppo:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Tenere il tempo di richiamata Opzione Nome file: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Tenere Opzione Tempo richiamata Elenco ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agente Alert Filename: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
La Alarma Del Agente Retrasa:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Grupo De la Transferencia Del Defecto:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Predefinito Gruppo Alias: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Tenere Ricorda Trasferimento in gruppo:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Scadenza Bando n. Percorso:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
Nel gruppo di registrazione Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
Nel gruppo Registrazione Nome file:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Statistiche per cento delle chiamate risposta entro X secondi 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Statistiche per cento delle chiamate risposta entro X secondi 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Start Call URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound Gruppo QC Impostazioni:
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Status:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC Web Form:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Maiusc: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC ottenere il record di lancio: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
Visualizza la registrazione, QC: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Status:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC Web Form:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Maiusc: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC ottenere il record di lancio: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
Visualizza la registrazione, QC: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; - echo "

\n"; + echo "
\n"; + echo "

\n"; - ### list of agent rank or skill-level for this inbound group - echo "
\n"; - echo "
CLASSIFICA OPERATORI PER QUESTO GRUPPO INBOUND:
\n"; - echo "\n"; - echo "\n"; + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
CLASSIFICA OPERATORI PER QUESTO GRUPPO INBOUND:
\n"; + echo "
UTENTE     CLASSIFICA     CHIAMATE OGGI
\n"; + echo "\n"; - $stmt="SELECT user,group_rank,calls_today from vicidial_inbound_group_agents where group_id='$group_id'"; + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; $rsltx=mysql_query($stmt, $link); $users_to_print = mysql_num_rows($rsltx); $o=0; - while ($users_to_print > $o) { + while ($users_to_print > $o) + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + } + + echo "
UTENTE     CLASSIFICA     CHIAMATE OGGI
$rowx[0]$rowx[1]$rowx[2]
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Clicca qui per visualizzare un report per questo gruppo inbound

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "CAMPAGNE DI OFFRIRE IN QUESTO-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

CANCELLA QUESTO GRUPPO INBOUND\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages per questo gruppo di in -\n"; + } } - - echo "

\n"; - - echo "

\n"; - - echo "Clicca qui per visualizzare un report per questo gruppo inbound

\n"; - - echo "
\n"; - - if ($LOGdelete_ingroups > 0) - { - echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; - echo "

CANCELLA QUESTO GRUPPO INBOUND\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages per questo gruppo di in -
\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} @@ -16068,151 +19832,478 @@ if ($ADD==3111) ###################### if ($ADD==3311) -{ + { if ($LOGmodify_dids==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_inbound_dids where did_id='$did_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $did_id = $row[0]; - $did_pattern = $row[1]; - $did_description = $row[2]; - $did_active = $row[3]; - $did_route = $row[4]; - $extension = $row[5]; - $exten_context = $row[6]; - $voicemail_ext = $row[7]; - $phone = $row[8]; - $server_ip = $row[9]; - $user = $row[10]; - $user_unavailable_action = $row[11]; - $user_route_settings_ingroup = $row[12]; - $group_id = $row[13]; - $call_handle_method = $row[14]; - $agent_search_method = $row[15]; - $list_id = $row[16]; - $campaign_id = $row[17]; - $phone_code = $row[18]; - - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; - $rslt=mysql_query($stmt, $link); - $campaigns_to_print = mysql_num_rows($rslt); - $campaigns_list=''; - $o=0; - while ($campaigns_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $campaigns_list .= "\n"; - $o++; - } - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; - $rslt=mysql_query($stmt, $link); - $Xgroups_to_print = mysql_num_rows($rslt); - $Xgroups_menu=''; - $Xgroups_selected=0; - $o=0; - while ($Xgroups_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $Xgroups_menu .= "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) { - $Xgroups_menu .= "SELECTED "; - $Xgroups_selected++; + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; } - $Xgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; - } - if ($Xgroups_selected < 1) - {$Xgroups_menu .= "\n";} - else - {$Xgroups_menu .= "\n";} - - ##### get in-groups listings for dynamic pulldown - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; - $rslt=mysql_query($stmt, $link); - $Dgroups_to_print = mysql_num_rows($rslt); - $Dgroups_menu=''; - $Dgroups_selected=0; - $o=0; - while ($Dgroups_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $Dgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
A MODIFICARE LO RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
HA Estensione:$NWB#vicidial_inbound_dids-did_pattern$NWE
HA Descrizione:$NWB#vicidial_inbound_dids-did_description$NWE
Attivo: $NWB#vicidial_inbound_dids-did_active$NWE
HA Percorso:$NWB#vicidial_inbound_dids-did_route$NWE
Estensione:$NWB#vicidial_inbound_dids-extension$NWE
Estensione Contesto:$NWB#vicidial_inbound_dids-exten_context$NWE
Buzon de voz: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Estensione Telefono:$NWB#vicidial_inbound_dids-phone$NWE
IP Server: $NWB#vicidial_inbound_dids-server_ip$NWE
Call Menu: $NWB#vicidial_inbound_dids-menu_id$NWE
Utente Agent:$NWB#vicidial_inbound_dids-user$NWE
Lutente non disponibile Azione:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Utente percorso Impostazioni In-Group:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID Gruppo: $NWB#vicidial_inbound_dids-group_id$NWE
Nel gruppo di chiamata Maneggiare Metodo:$NWB#vicidial_inbound_dids-call_handle_method$NWE
Nel gruppo di agente Metodo di ricerca:$NWB#vicidial_inbound_dids-agent_search_method$NWE
Nel gruppo Elenco ID:$NWB#vicidial_inbound_dids-list_id$NWE
Nel gruppo-ID campagna:$NWB#vicidial_inbound_dids-campaign_id$NWE
Nel gruppo Codice Telefono:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Clicca qui per vedere una relazione di traffico per questo DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

CANCELLA QUESTO HA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo DID\n"; } - $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; - $o++; } - if ($Dgroups_selected < 1) - {$Dgroups_menu .= "\n";} - else - {$Dgroups_menu .= "\n";} - - - echo "
A MODIFICARE LO RECORD:$row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "
HA Estensione:$NWB#vicidial_inbound_dids-did_pattern$NWE
HA Descrizione:$NWB#vicidial_inbound_dids-did_description$NWE
Attivo: $NWB#vicidial_inbound_dids-did_active$NWE
HA Percorso:$NWB#vicidial_inbound_dids-did_route$NWE
Estensione:$NWB#vicidial_inbound_dids-extension$NWE
Estensione Contesto:$NWB#vicidial_inbound_dids-exten_context$NWE
Buzon de voz:$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Estensione Telefono:$NWB#vicidial_inbound_dids-phone$NWE
IP Server: $NWB#vicidial_inbound_dids-server_ip$NWE
Utente Agent:$NWB#vicidial_inbound_dids-user$NWE
Lutente non disponibile Azione:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Utente percorso Impostazioni In-Group:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID Gruppo: $NWB#vicidial_inbound_dids-group_id$NWE
Nel gruppo di chiamata Maneggiare Metodo:$NWB#vicidial_inbound_dids-call_handle_method$NWE
Nel gruppo di agente Metodo di ricerca:$NWB#vicidial_inbound_dids-agent_search_method$NWE
Nel gruppo Elenco ID:$NWB#vicidial_inbound_dids-list_id$NWE
Nel gruppo-ID campagna:$NWB#vicidial_inbound_dids-campaign_id$NWE
Nel gruppo Codice Telefono:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; - echo "

\n"; - - - - if ($LOGdelete_dids > 0) - { - echo "

CANCELLA QUESTO HA\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo DID\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "\n"; -echo "\n"; - -echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
MODIFICARE UNA CHIAMATA menu Record: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menu ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Menu Nome: $NWB#vicidial_call_menu-menu_name$NWE
Menu Prompt: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Timeout menu: $NWB#vicidial_call_menu-menu_timeout$NWE
Menu prompt timeout: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Menu valide Prompt: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Menu Repeat: $NWB#vicidial_call_menu-menu_repeat$NWE
Menu Check Time: $NWB#vicidial_call_menu-menu_time_check$NWE
Tempo Chiamata: $NWB#vicidial_call_menu-call_time_id$NWE
Chiede Track in Real-Time Report: $NWB#vicidial_call_menu-track_in_vdac$NWE
Gruppo di monitoraggio: $NWB#vicidial_call_menu-tracking_group$NWE
Call Menu Opzioni:
+ Opzione: $dtmf_list   + Descrizione: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Call Menu:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Lista: "; + echo "
ID Campagna: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Estensione:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Buzon de voz: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Opzione: $dtmf_list   + Descrizione: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan entrata:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan entrata: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

DELETE THIS CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questo menu CALL
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} @@ -16221,62 +20312,62 @@ if ($ADD==3311) ###################### if ($ADD==31111) -{ + { if ($LOGmodify_remoteagents==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $remote_agent_id = $row[0]; - $user_start = $row[1]; - $number_of_lines = $row[2]; - $server_ip = $row[3]; - $conf_exten = $row[4]; - $status = $row[5]; - $campaign_id = $row[6]; - - echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Inizio ID Utente: (solo cifre, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Numero di Linee: (solo cifre)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Server: $NWB#vicidial_remote_agents-server_ip$NWE
Numero Di Interno Remoto: (numero del dialplan usato per raggiungere gli operatori)$NWB#vicidial_remote_agents-conf_exten$NWE
Esito: $NWB#vicidial_remote_agents-status$NWE
Campagna: $NWB#vicidial_remote_agents-campaign_id$NWE
Gruppi Inbound: \n"; - echo "$groups_list"; - echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; - echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; - - - if ($LOGdelete_remote_agents > 0) { - echo "

SUPRIMA ESTE AGENTE ALEJADO\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inizio ID Utente: (solo cifre, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Numero di Linee: (solo cifre)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Server: $NWB#vicidial_remote_agents-server_ip$NWE
Numero Di Interno Remoto: (numero del dialplan usato per raggiungere gli operatori)$NWB#vicidial_remote_agents-conf_exten$NWE
Esito: $NWB#vicidial_remote_agents-status$NWE
Campagna: $NWB#vicidial_remote_agents-campaign_id$NWE
Gruppi Inbound: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

SUPRIMA ESTE AGENTE ALEJADO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo agente remoto
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo agente remoto\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -16284,79 +20375,118 @@ if ($ADD==31111) ###################### if ($ADD==311111) -{ - if ($LOGmodify_usergroups==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_user_groups where user_group='$user_group';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $user_group = $row[0]; - $group_name = $row[1]; - $GROUP_shifts = $row[5]; - $forced_timeclock_login = $row[6]; - $shift_enforcement = $row[7]; - - echo ""; - - echo "
MODIFICA UN GRUPPO UTENTI\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - - echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Gruppo: (senza spazi e punteggiatura)$NWB#vicidial_user_groups-user_group$NWE
Descrizione: (Descrizione del gruppo)$NWB#vicidial_user_groups-group_name$NWE
Forza orologio Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Maiusc esecuzione: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campagne Permesse:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; - echo "$campaigns_list
 "; - echo "
Gruppo Turni:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $o=0; - while ($shifts_to_print > $o) + if ($LOGmodify_usergroups==1) { - $rowx=mysql_fetch_row($rslt); - $shift_id_value = $rowx[0]; - $shift_name_value = $rowx[1]; - echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
MODIFICA UN GRUPPO UTENTI\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; - - if ($SSqc_features_active > 0) - { - echo "\n"; - echo "\n"; - } - echo "\n"; - echo "
Gruppo: (senza spazi e punteggiatura)$NWB#vicidial_user_groups-user_group$NWE
Descrizione: (Descrizione del gruppo)$NWB#vicidial_user_groups-group_name$NWE
Forza orologio Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Maiusc esecuzione: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campagne Permesse:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Gruppo Turni:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) { - if (ereg(" $shift_id_value ", $GROUP_shifts)) + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; } - echo "> $shift_id_value - $shift_name_value
\n"; - $o++; - } - echo "
 
QC ammessi Campagne:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; - echo "$qc_campaigns_list"; echo "
 
QC ammessi Inbound Gruppi:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; - echo "$qc_groups_list"; + + + echo "
Stato agente Viewable Gruppi:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } echo "
 
\n"; + echo "
Visualizza stato agente Time: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC ammessi Campagne:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC ammessi Inbound Gruppi:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; - ### list of users in this user group + ### list of users in this user group $active_confs = 0; $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; @@ -16370,45 +20500,44 @@ if ($ADD==311111) $o=0; while ($users_to_print > $o) - { + { $rowx=mysql_fetch_row($rsltx); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "
$rowx[0]$rowx[1]$rowx[2]$rowx[3]
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Clicca qui per visualizzare tutti i richiami di questo utente

\n"; + echo "

Clicca qui per visualizzare lorologio di stato per questo gruppo di utenti

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

CANCELLA QUESTO GRUPPO UTENTI\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo gruppo di utenti\n"; + } } - - echo "

\n"; - - - - echo "

Clicca qui per visualizzare tutti i richiami di questo utente

\n"; - echo "

Clicca qui per visualizzare lorologio di stato per questo gruppo di utenti

\n"; - - if ($LOGdelete_user_groups > 0) - { - echo "

CANCELLA QUESTO GRUPPO UTENTI\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo gruppo di utenti
\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -16416,90 +20545,151 @@ if ($ADD==311111) ###################### if ($ADD==3111111) -{ + { if ($LOGmodify_scripts==1) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_scripts where script_id='$script_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $script_name = $row[1]; - $script_comments = $row[2]; - $script_text = $row[3]; - $active = $row[4]; - echo ""; - - echo "
MODIFICA SCRIPT\n"; - echo "\n"; - echo "\n"; - echo "
ID Script:: $script_id$NWB#vicidial_scripts-script_name$NWE
Nome Script: (titolo script)$NWB#vicidial_scripts-script_name$NWE
Note Script: $NWB#vicidial_scripts-script_comments$NWE
Attivo: $NWB#vicidial_scripts-active$NWE
Testo Script:

Anteprima Script
"; - # BEGIN Insert Field - echo ""; - echo "
"; - # END Insert Field - echo " $NWB#vicidial_scripts-script_text$NWE
\n"; - - if ($LOGdelete_scripts > 0) { - echo "

CANCELLA QUESTO SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
MODIFICA SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Script:: $script_id$NWB#vicidial_scripts-script_name$NWE
Nome Script: (titolo script)$NWB#vicidial_scripts-script_name$NWE
Note Script: $NWB#vicidial_scripts-script_comments$NWE
Attivo: $NWB#vicidial_scripts-active$NWE
Testo Script:

Anteprima Script
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " CAMPAGNE USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " GRUPPI INBOUND USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

CANCELLA QUESTO SCRIPT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo script\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo script\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -16507,29 +20697,30 @@ if ($ADD==3111111) ###################### if ($ADD==31111111) -{ - if ($LOGmodify_filters==1) { - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_filters==1) + { + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; - $stmt="SELECT * from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $lead_filter_name = $row[1]; - $lead_filter_comments = $row[2]; - $lead_filter_sql = $row[3]; - echo ""; + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; - echo "
MODIFICA UN FILTRO\n"; - echo "\n"; - echo "\n"; - echo "
ID Filtro:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nome Del Filtro: (breve descrizione del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commenti Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + echo "
MODIFICA UN FILTRO
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Filtro:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nome Del Filtro: (breve descrizione del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commenti Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; ##### get campaigns listing for dynamic pulldown $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; @@ -16545,31 +20736,31 @@ if ($ADD==31111111) $o++; } - echo "

"; - echo "
PRUEBE EN CAMPAÑA:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "

"; + echo "
PRUEBE EN CAMPAÑA: \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if ($LOGdelete_filters > 0) - { - echo "

CANCELLA QUESTO FILTRO\n"; + if ($LOGdelete_filters > 0) + { + echo "

CANCELLA QUESTO FILTRO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo filtro\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo filtro\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -16577,46 +20768,44 @@ if ($ADD==31111111) ###################### if ($ADD==321111111) -{ -if ($LOGmodify_call_times==1) -{ - -if ( ($stage=="ADD") and (strlen($state_rule)>0) ) { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; - if (eregi("\|$",$ct_state_call_times)) - {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Agregada: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Quitada: $state_rule
\n"; + } + + $ADD=311111111; + } else - {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Regla Del Estado Agregada: $state_rule
\n"; + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } } -if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) - { - $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $ct_state_call_times = $row[0]; - - $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); - $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - echo "Regla Del Estado Quitada: $state_rule
\n"; - } - -$ADD=311111111; -} -else -{ -echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; -} - -} ###################### @@ -16624,151 +20813,154 @@ echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; ###################### if ($ADD==311111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -$ct_srs=1; -$b=0; -$srs_SQL =''; -if (strlen($ct_state_call_times)>2) { - $state_rules = explode('|',$ct_state_call_times); - $ct_srs = ((count($state_rules)) - 1); - } -echo "\n"; -echo "\n"; -while($ct_srs >= $b) - { - if (strlen($state_rules[$b])>0) + if ($LOGmodify_call_times==1) { - $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_call_times where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $call_time_name = $row[1]; - $call_time_comments = $row[2]; - $ct_default_start = $row[3]; - $ct_default_stop = $row[4]; - $ct_sunday_start = $row[5]; - $ct_sunday_stop = $row[6]; - $ct_monday_start = $row[7]; - $ct_monday_stop = $row[8]; - $ct_tuesday_start = $row[9]; - $ct_tuesday_stop = $row[10]; - $ct_wednesday_start = $row[11]; - $ct_wednesday_stop = $row[12]; - $ct_thursday_start = $row[13]; - $ct_thursday_stop = $row[14]; - $ct_friday_start = $row[15]; - $ct_friday_stop = $row[16]; - $ct_saturday_start = $row[17]; - $ct_saturday_stop = $row[18]; - $ct_state_call_times = $row[19]; - -echo ""; - -echo "
MODIFICA ORARIO CHIAMATE\n"; -echo "\n"; -echo "\n"; -echo "
ID Orario Chiamate: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nome Orario Chiamate: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Note Orario Chiamate: $NWB#vicidial_call_times-call_time_comments$NWE
Inizio di Default: Fine di Default: $NWB#vicidial_call_times-ct_default_start$NWE
Inizio Domenica: Fine Domenica: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Lunedi: Fine Lunedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Martedi: Fine Martedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Mercoledi: Fine Mercoledi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Giovedi: Fine Giovedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Venerdi: Fine Venerdi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Sabato: Fine Sabato: $NWB#vicidial_call_times-ct_sunday_start$NWE
Definiciones activas del tiempo de la llamada del estado para estoexpediente:  
\n"; - $srs_SQL .= "'$state_rules[$b]',"; - $srs_state_SQL .= "'$row[0]',"; + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
MODIFICA ORARIO CHIAMATE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "
$state_rules[$b] - REMOVE $row[0] - $row[1]
ID Orario Chiamate: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nome Orario Chiamate: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Note Orario Chiamate: $NWB#vicidial_call_times-call_time_comments$NWE
Inizio di Default: Fine di Default: $NWB#vicidial_call_times-ct_default_start$NWE
Inizio Domenica: Fine Domenica: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Lunedi: Fine Lunedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Martedi: Fine Martedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Mercoledi: Fine Mercoledi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Giovedi: Fine Giovedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Venerdi: Fine Venerdi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Sabato: Fine Sabato: $NWB#vicidial_call_times-ct_sunday_start$NWE
Definiciones activas del tiempo de la llamada del estado para estoexpediente:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "CAMPAGNE CHE UTILIZZANO QUESTO ORARIO:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "GRUPPI INBOUND CHE UTILIZZANO QUESTO ORARIO:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ELIMINA QUESTO ORARIO CHIAMATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages tempo al presente invito
\n"; + } } - $b++; + else + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } + } -if (strlen($srs_SQL)>2) - { - $srs_SQL = "$srs_SQL''"; - $srs_state_SQL = "$srs_state_SQL''"; - $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; - } -else - {$srs_SQL='';} -$stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; -$rslt=mysql_query($stmt, $link); -$sct_to_print = mysql_num_rows($rslt); -$sct_list=''; - -$o=0; -while ($sct_to_print > $o) { - $rowx=mysql_fetch_row($rslt); - $sct_list .= "\n"; - $o++; -} -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "Add state call time rule:


\n"; -echo "CAMPAGNE CHE UTILIZZANO QUESTO ORARIO:
\n"; -echo "\n"; - - $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "GRUPPI INBOUND CHE UTILIZZANO QUESTO ORARIO:
\n"; -echo "\n"; - - $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

ELIMINA QUESTO ORARIO CHIAMATE\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages tempo al presente invito\n"; - } -} -else -{ -echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; -} - -} ###################### @@ -16776,327 +20968,328 @@ echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; ###################### if ($ADD==3111111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; - -echo "\n"; -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$call_time_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $state_call_time_state =$row[1]; - $call_time_name = $row[2]; - $call_time_comments = $row[3]; - $ct_default_start = $row[4]; - $ct_default_stop = $row[5]; - $ct_sunday_start = $row[6]; - $ct_sunday_stop = $row[7]; - $ct_monday_start = $row[8]; - $ct_monday_stop = $row[9]; - $ct_tuesday_start = $row[10]; - $ct_tuesday_stop = $row[11]; - $ct_wednesday_start = $row[12]; - $ct_wednesday_stop = $row[13]; - $ct_thursday_start = $row[14]; - $ct_thursday_stop = $row[15]; - $ct_friday_start = $row[16]; - $ct_friday_stop = $row[17]; - $ct_saturday_start = $row[18]; - $ct_saturday_stop = $row[19]; - -echo ""; - -echo "
_ MODIFICAR Uno ESTADO LLAMAR TIEMPO
\n"; -echo "\n"; -echo "\n"; -echo "
ID Orario Chiamate: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Inizio di Default: Fine di Default: $NWB#vicidial_call_times-ct_default_start$NWE
Inizio Domenica: Fine Domenica: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Lunedi: Fine Lunedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Martedi: Fine Martedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Mercoledi: Fine Mercoledi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Giovedi: Fine Giovedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Venerdi: Fine Venerdi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Sabato: Fine Sabato: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; -echo "TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO:
\n"; -echo "\n"; - - $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { - $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; - } - -echo "
$row[0] $row[1]
\n"; -echo "

\n"; - -if ($LOGdelete_call_times > 0) { - echo "

SUPRIMA ESTA DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO\n"; + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
_ MODIFICAR Uno ESTADO LLAMAR TIEMPO\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Orario Chiamate: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Inizio di Default: Fine di Default: $NWB#vicidial_call_times-ct_default_start$NWE
Inizio Domenica: Fine Domenica: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Lunedi: Fine Lunedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Martedi: Fine Martedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Mercoledi: Fine Mercoledi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Giovedi: Fine Giovedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Venerdi: Fine Venerdi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Sabato: Fine Sabato: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPRIMA ESTA DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO\n"; + } + } + else + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } } -} -else -{ -echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; -} - -} - - ###################### # ADD=331111111 modify shift definition info in the system ###################### if ($ADD==331111111) -{ - -if ($LOGmodify_call_times==1) -{ -echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_shifts where shift_id='$shift_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $shift_name = $row[1]; - $shift_start_time = $row[2]; - $shift_length = $row[3]; - $shift_weekdays = $row[4]; - - $shift_start_hour = substr($shift_start_time,0,2); - $shift_start_min = substr($shift_start_time,2,2); - $shift_length_hour = substr($shift_length,0,2); - $shift_length_min = substr($shift_length,3,2); - $shift_end_hour = ($shift_start_hour + $shift_length_hour); - $shift_end_min = ($shift_start_min + $shift_length_min); - if ($shift_end_min >=60) + { + if ($LOGmodify_call_times==1) { - $shift_end_min = ($shift_end_min - 60); - $shift_end_hour++; - } - if ($shift_end_hour >=24) - { - $shift_end_hour = ($shift_end_hour - 24); - } - $shift_end_hour = sprintf("%02s", $shift_end_hour); - $shift_end_min = sprintf("%02s", $shift_end_min); - $shift_end = "$shift_end_hour$shift_end_min"; + echo "
\n"; + echo ""; -echo ""; - -echo "
Modificare una SHIFT\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Maiusc ID:$shift_id
Maiusc Nome: (breve descrizione del turno)$NWB#vicidial_shifts-shift_name$NWE
Maiusc Start Time:\n"; -echo "   Fine Time Shift:\n"; -echo " $NWB#vicidial_shifts-shift_start_time$NWE
Maiusc Lunghezza: $NWB#vicidial_shifts-shift_length$NWE
Maiusc Feriali:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; -echo "Domenica
\n"; -echo "Lunedi
\n"; -echo "Martedì
\n"; -echo "Mercoledì
\n"; -echo "Giovedi
\n"; -echo "Venerdì
\n"; -echo "Sabato
\n"; -echo "
\n"; - -echo "


\n"; -echo "LUSO DI QUESTO MANUALE GRUPPI SHIFT:
\n"; -echo "\n"; - - - $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; - $rslt=mysql_query($stmt, $link); - $camps_to_print = mysql_num_rows($rslt); - $o=0; - while ($camps_to_print > $o) { + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - echo "\n"; - $o++; + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
Modificare una SHIFT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
$row[0] $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Maiusc ID:$shift_id
Maiusc Nome: (breve descrizione del turno)$NWB#vicidial_shifts-shift_name$NWE
Maiusc Start Time:\n"; + echo "   Fine Time Shift:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Maiusc Lunghezza: $NWB#vicidial_shifts-shift_length$NWE
Maiusc Feriali:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Domenica
\n"; + echo "Lunedi
\n"; + echo "Martedì
\n"; + echo "Mercoledì
\n"; + echo "Giovedi
\n"; + echo "Venerdì
\n"; + echo "Sabato
\n"; + echo "
\n"; + + echo "


\n"; + echo "LUSO DI QUESTO MANUALE GRUPPI SHIFT:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Elimina questo SHIFT DEFINIZIONE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo passaggio\n"; + } + } + else + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } + } -echo "
\n"; -echo "


\n"; - -if ($LOGdelete_call_times > 0) - { - echo "

Elimina questo SHIFT DEFINIZIONE\n"; - } -if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo passaggio\n"; - } -} -else -{ -echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; -} - -} - - ###################### # ADD=31111111111 modify phone record in the system ###################### if ($ADD==31111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones where extension='$extension' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFICANDO EL telefonO: $row[1]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Interno Telefono: $NWB#phones-extension$NWE
Numero De Dial plan: (solo cifre)$NWB#phones-dialplan_number$NWE
Buzon de voz: (solo cifre)$NWB#phones-voicemail_id$NWE
CallerID De salida: (solo cifre)$NWB#phones-outbound_cid$NWE
Direccion IP del telefono: (optional)$NWB#phones-phone_ip$NWE
Direccion IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Server: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Password: $NWB#phones-pass$NWE
Esito: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del telefono: $NWB#phones-phone_type$NWE
Nome Completo: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Compania: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Messaggi Nuovi: $row[14]$NWB#phones-messages$NWE
Messaggi Vecchi: $row[15]$NWB#phones-old_messages$NWE
Protocollo Client: $NWB#phones-protocol$NWE
Fuso Orario Locale: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
Login del Manager: $NWB#phones-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#phones-ASTmgrSECRET$NWE
Usuario por defecto de VICIDIAL: $NWB#phones-login_user$NWE
Contraseña por defecto de VICIDIAL: $NWB#phones-login_pass$NWE
Campaña por defecto de VICIDIAL: $NWB#phones-login_campaign$NWE
Extension del parking: $NWB#phones-park_on_extension$NWE
Extension de la conferencia: $NWB#phones-conf_on_extension$NWE
Exten. Del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Archivo para música del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Prefijo al monitorizar: $NWB#phones-monitor_prefix$NWE
Exten de grabacion: $NWB#phones-recording_exten$NWE
Exten de VmailMain: $NWB#phones-voicemail_exten$NWE
Exten de VmaiDumpl: $NWB#phones-voicemail_dump_exten$NWE
Contexto De Exten: $NWB#phones-ext_context$NWE
Canal de envío del DTMF: $NWB#phones-dtmf_send_extension$NWE
Grupo de las llamadas de salida: $NWB#phones-call_out_number_group$NWE
Localizacio`n del Navegador: $NWB#phones-client_browser$NWE
Directorio de instalacio`n: $NWB#phones-install_directory$NWE
URL CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL por defecto de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Call Logging: $NWB#phones-AGI_call_logging_enabled$NWE
Cambio de Usuario: $NWB#phones-user_switching_enabled$NWE
Conferenze: $NWB#phones-conferencing_enabled$NWE
Colgar del Admin: $NWB#phones-admin_hangup_enabled$NWE
Captura del Admin: $NWB#phones-admin_hijack_enabled$NWE
Monitorizacio`n del Admin: $NWB#phones-admin_monitor_enabled$NWE
Parking de Llamada: $NWB#phones-call_parking_enabled$NWE
Uptader Check: $NWB#phones-updater_check_enabled$NWE
AF Logging: $NWB#phones-AFLogging_enabled$NWE
Colas permitidas: $NWB#phones-QUEUE_ACTION_enabled$NWE
Ventana emergente del CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Boto`n Vmail: $NWB#phones-voicemail_button_enabled$NWE
Aggiornamento Veloce: $NWB#phones-enable_fast_refresh$NWE
Intervallo Aggiornamento Veloce: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Auto Marcar el Siguiente Número: $NWB#phones-auto_dial_next_number$NWE
Parar de Grabar despue`s de cada llamada: $NWB#phones-VDstop_rec_after_each_call$NWE
Abilita messaggi SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Servidor de DBX: (Primario DB Server)$NWB#phones-DBX_server$NWE
Base de datos de DBX: (Primario Server Database)$NWB#phones-DBX_database$NWE
Usuario de DBX: (Primario DB Login)$NWB#phones-DBX_user$NWE
Contraseña de DBX: (Primario DB Secret)$NWB#phones-DBX_pass$NWE
Puerto de DBX: (Primario DB Port)$NWB#phones-DBX_port$NWE
Servidor de DBY: (Secondario DB Server)$NWB#phones-DBY_server$NWE
Base de datos de DBY: (Secondario Server Database)$NWB#phones-DBY_database$NWE
Usuario de DBY: (Secondario DB Login)$NWB#phones-DBY_user$NWE
Contraseña de DBY: (Secondario DB Secret)$NWB#phones-DBY_pass$NWE
Puerto de DBY: (Secondario DB Port)$NWB#phones-DBY_port$NWE
Template ID: \n"; - - echo "\n"; - - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICANDO EL telefonO: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Interno Telefono: $NWB#phones-extension$NWE (Agent Screen Login Telefono)
Numero De Dial plan: (solo cifre)$NWB#phones-dialplan_number$NWE
Buzon de voz: (solo cifre)$NWB#phones-voicemail_id$NWE
CallerID De salida: (solo cifre)$NWB#phones-outbound_cid$NWE
Direccion IP del telefono: (optional)$NWB#phones-phone_ip$NWE
Direccion IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Server: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Password: $NWB#phones-pass$NWE
Esito: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del telefono: $NWB#phones-phone_type$NWE
Nome Completo: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Eliminare Casella Vocale Dopo Email:$NWB#phones-delete_vm_after_email$NWE
Compania: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Messaggi Nuovi: $row[14]$NWB#phones-messages$NWE
Messaggi Vecchi: $row[15]$NWB#phones-old_messages$NWE
Protocollo Client: $NWB#phones-protocol$NWE
Fuso Orario Locale: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
Phone Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Login del Manager: $NWB#phones-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#phones-ASTmgrSECRET$NWE
Usuario por defecto de VICIDIAL: $NWB#phones-login_user$NWE
Contraseña por defecto de VICIDIAL: $NWB#phones-login_pass$NWE
Campaña por defecto de VICIDIAL: $NWB#phones-login_campaign$NWE
Extension del parking: $NWB#phones-park_on_extension$NWE
Extension de la conferencia: $NWB#phones-conf_on_extension$NWE
Exten. Del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Archivo para música del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Prefijo al monitorizar: $NWB#phones-monitor_prefix$NWE
Exten de grabacion: $NWB#phones-recording_exten$NWE
Exten de VmailMain: $NWB#phones-voicemail_exten$NWE
Exten de VmaiDumpl: $NWB#phones-voicemail_dump_exten$NWE
Contexto De Exten: $NWB#phones-ext_context$NWE
Telefono Contesto: $NWB#phones-phone_context$NWE
Conf file segreto: $NWB#phones-conf_secret$NWE
Canal de envío del DTMF: $NWB#phones-dtmf_send_extension$NWE
Grupo de las llamadas de salida: $NWB#phones-call_out_number_group$NWE
Localizacio`n del Navegador: $NWB#phones-client_browser$NWE
Directorio de instalacio`n: $NWB#phones-install_directory$NWE
URL CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL por defecto de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Call Logging: $NWB#phones-AGI_call_logging_enabled$NWE
Cambio de Usuario: $NWB#phones-user_switching_enabled$NWE
Conferenze: $NWB#phones-conferencing_enabled$NWE
Colgar del Admin: $NWB#phones-admin_hangup_enabled$NWE
Captura del Admin: $NWB#phones-admin_hijack_enabled$NWE
Monitorizacio`n del Admin: $NWB#phones-admin_monitor_enabled$NWE
Parking de Llamada: $NWB#phones-call_parking_enabled$NWE
Uptader Check: $NWB#phones-updater_check_enabled$NWE
AF Logging: $NWB#phones-AFLogging_enabled$NWE
Colas permitidas: $NWB#phones-QUEUE_ACTION_enabled$NWE
Ventana emergente del CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Boto`n Vmail: $NWB#phones-voicemail_button_enabled$NWE
Aggiornamento Veloce: $NWB#phones-enable_fast_refresh$NWE
Intervallo Aggiornamento Veloce: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Auto Marcar el Siguiente Número: $NWB#phones-auto_dial_next_number$NWE
Parar de Grabar despue`s de cada llamada: $NWB#phones-VDstop_rec_after_each_call$NWE
Abilita messaggi SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Servidor de DBX: (Primario DB Server)$NWB#phones-DBX_server$NWE
Base de datos de DBX: (Primario Server Database)$NWB#phones-DBX_database$NWE
Usuario de DBX: (Primario DB Login)$NWB#phones-DBX_user$NWE
Contraseña de DBX: (Primario DB Secret)$NWB#phones-DBX_pass$NWE
Puerto de DBX: (Primario DB Port)$NWB#phones-DBX_port$NWE
Servidor de DBY: (Secondario DB Server)$NWB#phones-DBY_server$NWE
Base de datos de DBY: (Secondario Server Database)$NWB#phones-DBY_database$NWE
Usuario de DBY: (Secondario DB Login)$NWB#phones-DBY_user$NWE
Contraseña de DBY: (Secondario DB Secret)$NWB#phones-DBY_pass$NWE
Puerto de DBY: (Secondario DB Port)$NWB#phones-DBY_port$NWE
Template ID: $NWB#phones-template_id$NWE
Conf. Sovrascrive: $NWB#phones-conf_override$NWE
\n"; + + echo "

Pinchar aquí­ para ver las estadísticas del telefono\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTO TELEFONO\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#phones-template_id$NWE
Conf. Sovrascrive: $NWB#phones-conf_override$NWE
\n"; - - echo "

Pinchar aquí­ para ver las estadísticas del telefono\n"; - - if ($LOGast_delete_phones > 0) - { - echo "

CANCELLA QUESTO TELEFONO\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -17104,70 +21297,70 @@ if ($ADD==31111111111) ###################### if ($ADD==32111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT * from phones_alias where alias_id='$alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFICARE UN TELEFONO ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nome: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; - - - ### list of phones in this phones alias - $phone_alias_SQL = ereg_replace(',',"','",$row[2]); - - echo "
\n"; - echo "
TELEFONI CELLULARI PRESENTE IN ALIAS:
\n"; - echo "\n"; - echo "\n"; - - $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; - if ($DB) {echo "|$stmt|";} - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
LOGININTERNOSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; - - if ($LOGast_delete_phones > 0) { - echo "

CANC questo telefono ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICARE UN TELEFONO ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nome: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
TELEFONI CELLULARI PRESENTE IN ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGININTERNOSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

CANC questo telefono ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo telefono cellulare alias
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo telefono cellulare alias\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -17175,44 +21368,44 @@ if ($ADD==32111111111) ###################### if ($ADD==33111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - - echo "
MODIFICARE UN GRUPPO ALIAS RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Gruppo Alias ID:$row[0] $NWB#phones-group_alias_id$NWE
Alias Nome Gruppo: $NWB#phones-group_alias_name$NWE
Numero CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nome: $NWB#phones-caller_id_name$NWE
Attivo:
\n"; - - - if ($LOGast_delete_phones > 0) { - echo "

CANCELLA QUESTO GRUPPO ALIAS\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICARE UN GRUPPO ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Gruppo Alias ID:$row[0] $NWB#phones-group_alias_id$NWE
Alias Nome Gruppo: $NWB#phones-group_alias_name$NWE
Numero CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nome: $NWB#phones-caller_id_name$NWE
Attivo:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTO GRUPPO ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo gruppo alias
\n"; + } } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo gruppo alias\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -17220,286 +21413,301 @@ if ($ADD==33111111111) ###################### if ($ADD==311111111111) -{ - if ($LOGmodify_servers==1) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "Bauli:
\n"; + echo "CAMPAGNA:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "
\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
PORTARINFUSE IN QUESTO SERVER:
\n"; + echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage from servers where server_id='$server_id' or server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $server_id = $row[0]; - $server_description = $row[1]; - $server_ip = $row[2]; - $active = $row[3]; - $asterisk_version = $row[4]; - $max_vicidial_trunks = $row[5]; - $telnet_host = $row[6]; - $telnet_port = $row[7]; - $ASTmgrUSERNAME = $row[8]; - $ASTmgrSECRET = $row[9]; - $ASTmgrUSERNAMEupdate = $row[10]; - $ASTmgrUSERNAMElisten = $row[11]; - $ASTmgrUSERNAMEsend = $row[12]; - $local_gmt = $row[13]; - $voicemail_dump_exten = $row[14]; - $answer_transfer_agent = $row[15]; - $ext_context = $row[16]; - $sys_perf_log = $row[17]; - $vd_server_logs = $row[18]; - $agi_output = $row[19]; - $vicidial_balance_active = $row[20]; - $balance_trunks_offlimits = $row[21]; - $recording_web_link = $row[22]; - $alt_server_ip = $row[23]; - $active_asterisk_server = $row[24]; - $generate_vicidial_conf = $row[25]; - $rebuild_conf_files = $row[26]; - $outbound_calls_per_second = $row[27]; - $sysload = $row[28]; - $channels_total = $row[29]; - $cpu_idle_percent = $row[30]; - $disk_usage = $row[31]; + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; - $cpu = (100 - $cpu_idle_percent); - $disk_usage = preg_replace("/ /"," - ",$disk_usage); - $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); - echo "
MODIFICAR UN REGISTRO DEL SERVIDOR: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
MODIFICAR UN REGISTRO DEL SERVIDOR: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Server: $NWB#servers-server_id$NWE
Descrizione Server: $NWB#servers-server_description$NWE
Indirizzo IP del Server: $NWB#servers-server_ip$NWE
Attivo: $NWB#servers-active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "
ID Server: $NWB#servers-server_id$NWE
Descrizione Server: $NWB#servers-server_description$NWE
Indirizzo IP del Server: $NWB#servers-server_ip$NWE
Attivo: $NWB#servers-active$NWE
Sistema di carico: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Canali: $channels_total   $NWB#servers-channels_total$NWE
Utilizzo del disco: $disk_usage   $NWB#servers-disk_usage$NWE
Sistema di carico: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Canali: $channels_total   $NWB#servers-channels_total$NWE
Utilizzo del disco: $disk_usage   $NWB#servers-disk_usage$NWE
Versione Di Asterisk: $NWB#servers-asterisk_version$NWE
Máx. Trunks en VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Max chiede al secondo: $NWB#servers-outbound_calls_per_second$NWE
El Marcar Del Balance de VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
Balance Offlimits de VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Host Telnet: $NWB#servers-telnet_host$NWE
Porta Telnet: $NWB#servers-telnet_port$NWE
Usuario Del Manager: $NWB#servers-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#servers-ASTmgrSECRET$NWE
Usuario del Updater del Manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Usuario Listen del Manager: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Usuario Send del Manager: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Fuso Orario Locale: (No ajustar para el DST)$NWB#servers-local_gmt$NWE
Extension de Vmail Dump : $NWB#servers-voicemail_dump_exten$NWE
Extension del AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexto por Defecto: $NWB#servers-ext_context$NWE
Performance Di Sistema: $NWB#servers-sys_perf_log$NWE
Log Server: $NWB#servers-vd_server_logs$NWE
Salida de AGI: $NWB#servers-agi_output$NWE
Registrazione Web Link: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Server: $NWB#servers-alt_server_ip$NWE
Attivo Server Asterisk: $NWB#servers-active_asterisk_server$NWE
Genera file di configurazione: $NWB#servers-generate_vicidial_conf$NWE
Ricostruire i file di configurazione: $NWB#servers-rebuild_conf_files$NWE
Versione Di Asterisk: $NWB#servers-asterisk_version$NWE
Máx. Trunks en VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Max chiede al secondo: $NWB#servers-outbound_calls_per_second$NWE
El Marcar Del Balance de VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
VICIDIAL Balance Rank:$NWB#servers-vicidial_balance_rank$NWE
Balance Offlimits de VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Host Telnet: $NWB#servers-telnet_host$NWE
Porta Telnet: $NWB#servers-telnet_port$NWE
Usuario Del Manager: $NWB#servers-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#servers-ASTmgrSECRET$NWE
Usuario del Updater del Manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Usuario Listen del Manager: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Usuario Send del Manager: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf file segreto: $NWB#servers-conf_secret$NWE
Fuso Orario Locale: (No ajustar para el DST)$NWB#servers-local_gmt$NWE
Extension de Vmail Dump : $NWB#servers-voicemail_dump_exten$NWE
Extension del AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexto por Defecto: $NWB#servers-ext_context$NWE
Performance Di Sistema: $NWB#servers-sys_perf_log$NWE
Log Server: $NWB#servers-vd_server_logs$NWE
Salida de AGI: $NWB#servers-agi_output$NWE
Carrier Logging Attivo: $NWB#servers-carrier_logging_active$NWE
Registrazione Web Link: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Server: $NWB#servers-alt_server_ip$NWE
Attivo Server Asterisk: $NWB#servers-active_asterisk_server$NWE
Attivo Server Agent: $NWB#servers-active_agent_login_server$NWE
Genera file di configurazione: $NWB#servers-generate_vicidial_conf$NWE
Ricostruire i file di configurazione: $NWB#servers-rebuild_conf_files$NWE
Ricostruire Music On Hold: $NWB#servers-rebuild_music_on_hold$NWE
Suoni Update: $NWB#servers-sounds_update$NWE
ViciDial Limite di registrazione: $NWB#servers-vicidial_recording_limit$NWE
\n"; + echo "
\n"; - ### vicidial server trunk records for this server - echo "

TRONCOS DE VICIDIAL PARA ESTE SERVIDOR:   $NWB#vicidial_server_trunks$NWE
\n"; - echo "\n"; - echo "\n"; + ### vicidial server trunk records for this server + echo "

TRONCOS DE VICIDIAL PARA ESTE SERVIDOR:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "
CAMPAGNA TRONCOS RESTRICCIo`N DELETE
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; $rslt=mysql_query($stmt, $link); $recycle_to_print = mysql_num_rows($rslt); $o=0; - while ($recycle_to_print > $o) { + while ($recycle_to_print > $o) + { $rowx=mysql_fetch_row($rslt); $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CAMPAGNA TRONCOS RESTRICCIo`N DELETE
$rowx[1]
\n"; + echo "
$rowx[1]\n"; + echo "\n"; + echo "\n"; + echo "CANCELLA
\n"; + + echo "
AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL
\n"; + echo "\n"; echo "\n"; - echo "\n"; - echo "
CANCELLA
\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNOMEREGISTRATIONATTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELEFONI IN QUESTO SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
INTERNONOMEATTIVO
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEINTERNO
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEINTERNO
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Questo server ha $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Questo server ha $active_phones telefoni attivi e $inactive_phones telefoni inattivi

\n"; + echo "Questo server ha $active_confs active conferences

\n"; + echo "Questo server ha $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTO SERVER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo server\n"; + } } - - echo "
\n"; - - echo "
AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL
\n"; - echo "\n"; - echo "\n"; - echo "Bauli:
\n"; - echo "CAMPAGNA:
\n"; - echo "RESTRICTION:
\n"; - echo "
\n"; - - echo "

\n"; - - - ### list of carriers on this server - echo "
\n"; - echo "
PORTARINFUSE IN QUESTO SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_carriers = 0; - $inactive_carriers = 0; - $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $carriers_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($carriers_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[3])) {$active_carriers++;} - if (ereg("N", $rowx[3])) {$inactive_carriers++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIER IDNOMEREGISTRATIONATTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; - - - ### list of phones on this server - echo "
\n"; - echo "
TELEFONI IN QUESTO SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
INTERNONOMEATTIVO
$rowx[0]$rowx[2]$rowx[1]

\n"; - - - ### list of conferences on this server - echo "
\n"; - echo "
CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_confs = 0; - $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_confs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CONFERENCEINTERNO
$rowx[0]$rowx[2]

\n"; - - - ### list of vicidial conferences on this server - echo "
\n"; - echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; - echo "\n"; - echo "\n"; - - $active_vdconfs = 0; - $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - $active_vdconfs++; - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
VD CONFERENCEINTERNO
$rowx[0]$rowx[2]

\n"; - - - echo "
\n"; - - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "Questo server ha $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; - echo "Questo server ha $active_phones telefoni attivi e $inactive_phones telefoni inattivi

\n"; - echo "Questo server ha $active_confs active conferences

\n"; - echo "Questo server ha $active_vdconfs active vicidial conferences

\n"; - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

CANCELLA QUESTO SERVER\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo server
\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -17507,111 +21715,111 @@ if ($ADD==311111111111) ###################### if ($ADD==331111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $template_id = $row[0]; - $template_name = $row[1]; - $template_contents = $row[2]; - - echo "
MODIFICARE UN RECORD CONF TEMPLATE: $row[0]
\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Template ID: $template_id
Nome modello: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommario: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; - - echo "
\n"; - - ### list of phones using this conf template - echo "
\n"; - echo "
PHONES LUSO DI QUESTO MODELLO CONF:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} + echo "
INTERNONOMESERVERATTIVO
\n"; + echo "
MODIFICARE UN RECORD CONF TEMPLATE: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; - echo "
$rowx[0]$rowx[2]$rowx[3]$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Template ID: $template_id
Nome modello: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommario: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES LUSO DI QUESTO MODELLO CONF:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
INTERNONOMESERVERATTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
PORTARINFUSE LUSO DI QUESTO MODELLO CONF:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNOMESERVERATTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

CONF CANC QUESTO MODELLO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo modello di conf
\n"; + } } - - echo "

\n"; - - ### list of carriers using this conf template - echo "
\n"; - echo "
PORTARINFUSE LUSO DI QUESTO MODELLO CONF:
\n"; - echo "\n"; - echo "\n"; - - $active_phones = 0; - $inactive_phones = 0; - $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; - $rsltx=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rsltx); - $camp_lists=''; - - $o=0; - while ($lists_to_print > $o) - { - $rowx=mysql_fetch_row($rsltx); - $o++; - if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} - if (ereg("N", $rowx[1])) {$inactive_phones++;} - - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - echo "\n"; - } - - echo "
CARRIERNOMESERVERATTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; - - - - if ($LOGast_delete_phones > 0) - { - echo "

CONF CANC QUESTO MODELLO\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo modello di conf\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -17619,95 +21827,284 @@ if ($ADD==331111111111) ###################### if ($ADD==341111111111) -{ + { if ($LOGast_admin_access==1) - { - echo "
\n"; - echo ""; - - $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active from vicidial_server_carriers where carrier_id='$carrier_id';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $carrier_id = $row[0]; - $carrier_name = $row[1]; - $registration_string = $row[2]; - $template_id = $row[3]; - $account_entry = $row[4]; - $protocol = $row[5]; - $globals_string = $row[6]; - $dialplan_entry = $row[7]; - $server_ip = $row[8]; - $active = $row[9]; - - echo "
MODIFICARE UN RECORD DEL VETTORE: $row[0]\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
Vettore ID: $carrier_id
Nome del vettore: $NWB#vicidial_server_carriers-carrier_name$NWE
Stringa di registrazione: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: \n"; - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFICARE UN RECORD DEL VETTORE: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Vettore ID: $carrier_id
Nome del vettore: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Descrizione: $NWB#vicidial_server_carriers-carrier_description$NWE
Stringa di registrazione: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: $NWB#vicidial_server_carriers-template_id$NWE
Conto Entrata: $NWB#vicidial_server_carriers-account_entry$NWE
Protocollo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Stringa: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan entrata: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Server: $NWB#vicidial_server_carriers-server_ip$NWE
Attivo: $NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Elimina questo VETTORE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo vettore
\n"; + } } - echo "$templates_list"; - echo "\n"; - echo "$NWB#vicidial_server_carriers-template_id$NWE
Conto Entrata: $NWB#vicidial_server_carriers-account_entry$NWE
Protocollo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Stringa: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan entrata: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Server: $NWB#vicidial_server_carriers-server_ip$NWE
Attivo: $NWB#vicidial_server_carriers-active$NWE
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) - { - echo "

Elimina questo VETTORE\n"; - } - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages a questo vettore\n"; - } - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
MODIFICA A TTS RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
TTS Nome: $NWB#vicidial_tts_prompts-tts_name$NWE
Attivo: $NWB#vicidial_tts_prompts-active$NWE
TTS Text: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS TTS ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questa voce TTS
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $moh_id
Music On Hold Nome: $NWB#vicidial_music_on_hold-moh_name$NWE
Attivo: $NWB#vicidial_music_on_hold-active$NWE
Ordine casuale: $NWB#vicidial_music_on_hold-random$NWE
Audio Files: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rank:\n"; + + echo "   $rowx[0] - CANCELLA
\n"; + $o++; + } + + echo "
Aggiungere un file audio: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Music On Hold ENTRATA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questo Music On Hold entrata
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
MODIFICARE un messaggio vocale BOX: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Casella Vocale ID: $voicemail_id
Password: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Email:$NWB#vicidial_voicemail-email$NWE
Attivo: $NWB#vicidial_voicemail-active$NWE
Eliminare Casella Vocale Dopo Email:$NWB#vicidial_voicemail-delete_vm_after_email$NWE
Messaggi Nuovi: $messages
Messaggi Vecchi: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE questo messaggio vocale BOX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questa casella vocale
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} ###################### @@ -17715,45 +22112,45 @@ if ($ADD==341111111111) ###################### if ($ADD==3111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFICA DELLA CONFERENZA: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Conferenza: $NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
Interno Corrente:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

CANCELLA QUESTA CONFERENZA\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFICA DELLA CONFERENZA: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferenza: $NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
Interno Corrente:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTA CONFERENZA\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; } } - else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; - } -} ###################### @@ -17761,45 +22158,45 @@ if ($ADD==3111111111111) ###################### if ($ADD==31111111111111) -{ - if ($LOGast_admin_access==1) { - echo "
\n"; - echo ""; - - $stmt="SELECT * from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $conf_exten = $row[0]; - $server_ip = $row[1]; - - echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
Conferenza: $NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
Interno Corrente:
\n"; - - echo "
\n"; - if ($LOGast_delete_phones > 0) + if ($LOGast_admin_access==1) { - echo "

CANCELLA QUESTA CONFERENZA VICIDIAL\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferenza: $NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
Interno Corrente:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTA CONFERENZA VICIDIAL\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; } } - else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; - } -} @@ -17808,153 +22205,251 @@ if ($ADD==31111111111111) ###################### if ($ADD==311111111111111) -{ + { if ($LOGmodify_servers==1) - { - echo "
\n"; - echo ""; + { + echo "\n"; - } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second from system_settings;"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $version = $row[0]; - $install_date = $row[1]; - $use_non_latin = $row[2]; - $webroot_writable = $row[3]; - $enable_queuemetrics_logging = $row[4]; - $queuemetrics_server_ip = $row[5]; - $queuemetrics_dbname = $row[6]; - $queuemetrics_login = $row[7]; - $queuemetrics_pass = $row[8]; - $queuemetrics_url = $row[9]; - $queuemetrics_log_id = $row[10]; - $queuemetrics_eq_prepend = $row[11]; - $vicidial_agent_disable = $row[12]; - $allow_sipsak_messages = $row[13]; - $admin_home_url = $row[14]; - $enable_agc_xfer_log = $row[15]; - $db_schema_version = $row[16]; - $auto_user_add_value = $row[17]; - $timeclock_end_of_day = $row[18]; - $timeclock_last_reset_date = $row[19]; - $vdc_header_date_format = $row[20]; - $vdc_customer_date_format = $row[21]; - $vdc_header_phone_format = $row[22]; - $vdc_agent_api_active = $row[23]; - $qc_last_pull_time = $row[24]; - $enable_vtiger_integration = $row[25]; - $vtiger_server_ip = $row[26]; - $vtiger_dbname = $row[27]; - $vtiger_login = $row[28]; - $vtiger_pass = $row[29]; - $vtiger_url = $row[30]; - $qc_features_active = $row[31]; - $outbound_autodial_active = $row[32]; - $outbound_calls_per_second = $row[33]; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; - echo "
MODIFICA IMPOSTAZIONI DI SISTEMA\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "
MODIFICA IMPOSTAZIONI DI SISTEMA\n"; + echo "\n"; + echo "\n"; + echo "
Versione: $version
DB Schema Versione: $db_schema_version
Auto Utente-add Value: $auto_user_add_value
Installare Data: $install_date
UsA Non-Latino: $NWB#settings-use_non_latin$NWE
Webroot Escribible: $NWB#settings-webroot_writable$NWE
El Agente de VICIDIAL Inhabilita La Exhibicio`n:$NWB#settings-vicidial_agent_disable$NWE
Permetti messaggi SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL Home Amministrazione: $NWB#settings-admin_home_url$NWE
Permita El Logfile De la Transferencia Del Agente: $NWB#settings-enable_agc_xfer_log$NWE
Orologio End of Day:$NWB#settings-timeclock_end_of_day$NWE
Ultimo Logout orologio automatico: $timeclock_last_reset_date
QC Ultimo Tirare Tempo: $qc_last_pull_time
Agente Screen Formato Data Header: $NWB#settings-vdc_header_date_format$NWE
Cliente di agente Screen Formato Data: $NWB#settings-vdc_customer_date_format$NWE
Agente Cliente Telefono Formato schermo: $NWB#settings-vdc_header_phone_format$NWE
API di agente attivo:$NWB#settings-vdc_agent_api_active$NWE
QC Attivo Caratteristiche: $NWB#settings-qc_features_active$NWE
Outbound Attivo Auto-Dial: $NWB#settings-outbound_autodial_active$NWE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "\n"; + $o++; + } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "$servers_list"; + echo "\n"; + echo "$NWB#settings-active_voicemail_server$NWE\n"; - echo "\n"; - echo "
Versione: $version
DB Schema Versione: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Utente-add Value: $auto_user_add_value
Installare Data: $install_date
UsA Non-Latino: $NWB#settings-use_non_latin$NWE
Webroot Escribible: $NWB#settings-webroot_writable$NWE
El Agente de VICIDIAL Inhabilita La Exhibicio`n:$NWB#settings-vicidial_agent_disable$NWE
Permetti messaggi SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL Home Amministrazione: $NWB#settings-admin_home_url$NWE
Permita El Logfile De la Transferencia Del Agente: $NWB#settings-enable_agc_xfer_log$NWE
Orologio End of Day:$NWB#settings-timeclock_end_of_day$NWE
Ultimo Logout orologio automatico: $timeclock_last_reset_date
Agente Screen Formato Data Header: $NWB#settings-vdc_header_date_format$NWE
Cliente di agente Screen Formato Data: $NWB#settings-vdc_customer_date_format$NWE
Agente Cliente Telefono Formato schermo: $NWB#settings-vdc_header_phone_format$NWE
API di agente attivo:$NWB#settings-vdc_agent_api_active$NWE
Solo agente di richiamata Campagna Lock: $NWB#settings-agentonly_callback_campaign_lock$NWE
Max COMPILA invita al secondo: $NWB#settings-outbound_calls_per_second$NWE
Centrale Sound Control Attivo: $NWB#settings-sounds_central_control_active$NWE
Suoni Web Server: $NWB#settings-sounds_web_server$NWE
Suoni Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Permita La Registracion De QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP Del Servidor De QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nombre del DB De QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
conexion del DB De QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Contraseña del DB De QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Log ID QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend: $NWB#settings-queuemetrics_eq_prepend$NWE
Attivo Server Casella Vocale:
Attiva Vtiger Integrazione: $NWB#settings-enable_vtiger_integration$NWE\n"; - echo "   Clicca qui per sincronizzare gli utenti con Vtiger\n"; - echo "
Vtiger DB IP Server: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Password: $NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; - echo "\n"; - if ($LOGuser_level >= 9) - { - echo "

Clicca qui per visualizzare Admin chages per le impostazioni di sistema
\n"; - } + echo "
Auto Dial Limit: $NWB#settings-auto_dial_limit$NWE
Outbound Attivo Auto-Dial: $NWB#settings-outbound_autodial_active$NWE
Max COMPILA invita al secondo: $NWB#settings-outbound_calls_per_second$NWE
Consentire Custom Dialplan Entries: $NWB#settings-allow_custom_dialplan$NWE
Territori Utente Attivo: $NWB#settings-user_territories_active$NWE
Consentire Webform Seconda: $NWB#settings-enable_second_webform$NWE
Consentire l-integrazione TTS: $NWB#settings-enable_tts_integration$NWE
QC Attivo Caratteristiche: $NWB#settings-qc_features_active$NWE
QC Ultimo Tirare Tempo: $qc_last_pull_time
Permita La Registracion De QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP Del Servidor De QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nombre del DB De QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
conexion del DB De QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Contraseña del DB De QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Log ID QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend: $NWB#settings-queuemetrics_eq_prepend$NWE
Attiva Vtiger Integrazione: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Clicca qui per sincronizzare gli utenti con Vtiger\n"; + echo "
Vtiger DB IP Server: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Password: $NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages per le impostazioni di sistema
\n"; + } + } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} @@ -17966,100 +22461,114 @@ if ($ADD==311111111111111) ###################### if ($ADD==321111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; - - echo "
\n"; - echo "ESITI DI DEFAULT IN QUESTO SISTEMA:   $NWB#vicidial_statuses$NWE
\n"; - echo "\n"; - echo "\n"; - - ##### get status category listings for dynamic pulldown - $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; - $rslt=mysql_query($stmt, $link); - $cats_to_print = mysql_num_rows($rslt); - $cats_list=""; - - $o=0; - while ($cats_to_print > $o) + if ($LOGmodify_servers==1) { - $rowx=mysql_fetch_row($rslt); - $cats_list .= "\n"; - $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); - $o++; - } + echo "
ESITODESCRIZIONESELEZIO
NABILE
RISPOSTA
UMANA
CATEGORIAMODIFICA/CANCELLA
\n"; - echo "\n"; + echo "  
\n"; + echo "
\n"; + + echo "
\n"; + } - - echo "
\n"; + echo ""; + + echo "
\n"; + echo "ESITI DI DEFAULT IN QUESTO SISTEMA:   $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } - $stmt="SELECT * from vicidial_statuses order by status;"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $o=0; - while ($statuses_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $AScategory = $rowx[4]; - $o++; + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ESITODESCRIZIONESELEZIO
NABILE
RISPOSTA
UMANA
CATEGORIAMODIFICA/CANCELLA
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "CANCELLA\n"; + } + else + { + echo "CANCELLA\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AGGIUNGI UN NUOVO ESITO DI DEFAULT
\n"; + echo "\n"; + echo "Esito:   \n"; + echo "Descrizione:
\n"; + echo "Selezionabile:   \n"; + echo "Risposta Umana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Categoria: \n"; echo "\n"; - echo "
        \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "CANCELLA\n"; - } - else - { - echo "CANCELLA\n"; - } - echo "
\n"; - - echo "
AGGIUNGI UN NUOVO ESITO DI DEFAULT
\n"; - echo "\n"; - echo "Esito:   \n"; - echo "Descrizione:
\n"; - echo "Selezionabile:   \n"; - echo "Risposta Umana:   \n"; - echo "Categoria: \n"; - echo "  
\n"; - echo "
\n"; - - echo "

\n"; - - } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} @@ -18070,18 +22579,18 @@ if ($ADD==321111111111111) ###################### if ($ADD==331111111111111) -{ - if ($LOGmodify_servers==1) { - echo "
\n"; - echo ""; + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; - echo "
\n"; - echo "VICIDIAL Status CATEGORIE:   $NWB#vicidial_status_categories$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
\n"; + echo "VICIDIAL Status CATEGORIE:   $NWB#vicidial_status_categories$NWE
\n"; + echo "
CATEGORIANOMEStati in questa categoria
\n"; + echo "\n"; - $stmt="SELECT * from vicidial_status_categories order by vsc_id;"; + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; $rslt=mysql_query($stmt, $link); $statuses_to_print = mysql_num_rows($rslt); $o=0; @@ -18144,28 +22653,28 @@ if ($ADD==331111111111111) $p++; } + + echo "
CATEGORIANOMEStati in questa categoria
\n"; - echo "
\n"; + echo "
AGGIUNGI NUOVA CATEGORIA DI ESITI
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Visualizzare:   \n"; + echo "Vendita Categoria:   \n"; + echo "Morto leader Categoria:  
\n"; + echo "Descrizione:   \n"; + echo "
\n"; - echo "
AGGIUNGI NUOVA CATEGORIA DI ESITI
\n"; - echo "\n"; - echo "Category ID:   \n"; - echo "Name:  
\n"; - echo "TimeOnVDAD Visualizzare:   \n"; - echo "Vendita Categoria:   \n"; - echo "Morto leader Categoria:  
\n"; - echo "Descrizione:   \n"; - echo "
\n"; + echo "

\n"; - echo "
\n"; - - } + } else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } } -} @@ -18176,121 +22685,121 @@ if ($ADD==331111111111111) ###################### if ($ADD==341111111111111) -{ + { if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "QC VICIDIAL Status CODICI Nellambito di questo sistema:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEDESCRIZIONEMODIFICA/CANCELLA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "CANCELLA\n"; + } + else + { + echo "CANCELLA\n"; + } + echo "
\n"; + + echo "
ADD NEW QC CODICE STATO
\n"; + echo "\n"; + echo "Esito:   \n"; + echo "Descrizione:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) { echo "
\n"; echo ""; - echo "
\n"; - echo "QC VICIDIAL Status CODICI Nellambito di questo sistema:  $NWB#vicidial_qc_status_codes$NWE
\n"; - echo "\n"; - echo "\n"; + echo "
RICERCA UTENTI\n"; + echo "\n"; + echo "
STATUS CODEDESCRIZIONEMODIFICA/CANCELLA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - } - } - echo "
Numero Utente:
Nome Completo:
Livello Utente:
Gruppo Utente:
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "$rowx[0]         \n"; - echo "   \n"; - - if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) - { - echo "CANCELLA\n"; - } - else - { - echo "CANCELLA\n"; - } - echo "
\n"; - - echo "
ADD NEW QC CODICE STATO
\n"; - echo "\n"; - echo "Esito:   \n"; - echo "Descrizione:
\n"; - echo "
\n"; - - echo "

\n"; - - } - else - { - echo "Non hai l`autorizzazione per accedere a questa pagina\n"; - exit; - } -} - - - - - - -###################### -# ADD=550 search form -###################### - -if ($ADD==550) -{ -echo "\n"; - -echo "\n"; -echo "
\n"; -echo ""; - -echo "
RICERCA UTENTI
\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + + echo "\n"; + echo "
Numero Utente:
Nome Completo:
Livello Utente:
Gruppo Utente:
\n"; } -echo "$groups_list
\n"; - -} ###################### # ADD=660 user search results ###################### if ($ADD==660) -{ -echo "
\n"; + { + echo "
\n"; echo ""; $SQL = ''; @@ -18299,18 +22808,19 @@ echo "
\n"; if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} if ($user_group) {$SQL .= " user_group = '$user_group' and";} $SQL = eregi_replace(" and$", "", $SQL); - if (strlen($SQL)>5) {$SQL = "where $SQL";} + if (strlen($SQL)>5) {$SQL = "and $SQL";} - $stmt="SELECT * from vicidial_users $SQL order by full_name desc;"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; # echo "\n|$stmt|\n"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); -echo "
RESULTADOS DE LA BÚSQUEDA:\n"; -echo "
\n"; + echo "
RESULTADOS DE LA BÚSQUEDA:\n"; + echo "
\n"; $o=0; - while ($people_to_print > $o) { + while ($people_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18319,12 +22829,12 @@ echo "
\n"; echo ""; echo "\n"; $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]MODIFICA | STATISTICHE | ESITO | TIME
\n"; + } -echo "
\n"; - -} - ###################################################################################################### ###################################################################################################### @@ -18336,158 +22846,158 @@ echo "
\n"; # ADD=8 find all callbacks on hold by a User ###################### if ($ADD==8) -{ - if ($LOGmodify_users==1) { + if ($LOGmodify_users==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Utente($user) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utente($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
Utente($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utente($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; -echo ""; + echo ""; $CBquerySQLwhere = "and user='$user'"; -echo "
ELENCO RICHIAMI DA EFFETTUARE PER L`UTENTE: $user\n"; -$oldADD = "ADD=8&user=$user"; -$ADD='82'; -} + echo "
ELENCO RICHIAMI DA EFFETTUARE PER L`UTENTE: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } ###################### # ADD=81 find all callbacks on hold within a Campaign ###################### if ($ADD==81) -{ - if ($LOGmodify_campaigns==1) { + if ($LOGmodify_campaigns==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; -echo ""; + echo ""; $CBquerySQLwhere = "and campaign_id='$campaign_id'"; -echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; -$oldADD = "ADD=81&campaign_id=$campaign_id"; -$ADD='82'; -} + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } ###################### # ADD=811 find all callbacks on hold within a List ###################### if ($ADD==811) -{ - if ($LOGmodify_lists==1) { + if ($LOGmodify_lists==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } -$CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; -echo ""; + echo ""; $CBquerySQLwhere = "and list_id='$list_id'"; -echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=811&list_id=$list_id"; -$ADD='82'; -} + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } ###################### # ADD=8111 find all callbacks on hold within a user group ###################### if ($ADD==8111) -{ - if ($LOGmodify_usergroups==1) { + if ($LOGmodify_usergroups==1) + { if ($SUB==89) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_month_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; - } + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } if ($SUB==899) - { - $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status='LIVE' and callback_time < '$past_week_date';"; - $rslt=mysql_query($stmt, $link); - echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } } - } $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; echo ""; $CBquerySQLwhere = "and user_group='$user_group'"; -echo "
Utente Group CALLBACK HOLD LISTINGS: $list_id\n"; -$oldADD = "ADD=8111&user_group=$user_group"; -$ADD='82'; -} + echo "
Utente Group CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } ###################### # ADD=82 display all callbacks on hold ###################### if ($ADD==82) -{ + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $LIVELLOlink='stage=LIVELLOUP';} -$USERlink='stage=USERIDDOWN'; -$GROUPlink='stage=GROUPDOWN'; -$ENDATElink='stage=ENDATEDOWN'; -$SQLorder='order by '; -if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} -if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} -if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $LIVELLOlink='stage=LIVELLOUP';} - - $stmt="SELECT * from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; $rslt=mysql_query($stmt, $link); $cb_to_print = mysql_num_rows($rslt); -echo ""; echo ""; echo "\n"; + echo "\n"; echo "\n"; echo ""; echo ""; @@ -18691,6 +23202,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18700,7 +23212,7 @@ if ($ADD==100) $o++; } - $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id from vicidial_lists where list_id NOT IN($lists_printed'');"; + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); $o=0; @@ -18714,6 +23226,7 @@ if ($ADD==100) echo ""; echo ""; echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -18817,6 +23330,65 @@ if ($ADD==1300) } +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; + echo "
CONTATTOLIST CAMPAGNAENTRY DATACALLBACK DATAUTENTERECIPIENTESITOGRUPPO
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; $o=0; - while ($cb_to_print > $o) { + while ($cb_to_print > $o) + { $row=mysql_fetch_row($rslt); if (eregi("1$|3$|5$|7$|9$", $o)) {$bgcolor='bgcolor="#B9CBFD"';} @@ -18505,13 +23015,13 @@ echo ""; echo "\n"; $o++; + } + + echo "
CONTATTOLIST CAMPAGNAENTRY DATACALLBACK DATAUTENTERECIPIENTESITOGRUPPO
G echo "$row[11]
\n"; + + echo "$CBinactiveLINK"; } -echo "
\n"; - -echo "$CBinactiveLINK"; -} - ###################################################################################################### @@ -18535,7 +23045,7 @@ if ($ADD==0) } else { - $SQLstatus = "where active='Y'"; + $SQLstatus = "and active='Y'"; echo "   mostra tutti gli utenti\n"; } @@ -18552,7 +23062,7 @@ if ($ADD==0) if (eregi("LIVELLODOWN",$stage)) {$SQLorder='order by user_level desc'; $LIVELLOlink='stage=LIVELLOUP';} if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} - $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users $SQLstatus $SQLorder"; + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; $rslt=mysql_query($stmt, $link); $people_to_print = mysql_num_rows($rslt); @@ -18662,7 +23172,7 @@ if ($ADD==100) if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} - $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); $lists_to_print = mysql_num_rows($rslt); @@ -18672,6 +23182,7 @@ if ($ADD==100) echo "
ID LISTANOME LISTADESCRIZIONERTIMEPORTA CONTEATTIVODATA ULTIMA CHIAMATA
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5]
"; echo "\n"; - $o=0; while ($statecalltimes_to_print > $o) { @@ -19369,6 +23940,143 @@ if ($ADD==140000000000) echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNOMEPROMPTTIMEOUTOPTIONSMODIFICA
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]MODIFICA
\n"; + } + + ###################### # ADD=10000 display all remote agents ###################### @@ -19039,7 +23611,6 @@ if ($ADD==1000000000) echo "
DEFAULT STOPMODIFICA
\n"; } + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDTTS NomeAttivoTTS TextMODIFICA
$row[0]$row[1]$row[2]$row[3]MODIFICA
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameAttivoOrdine casualeMODIFICA
$row[0]$row[1]$row[2]$row[3]MODIFICA
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
VOICEMAIL SCATOLE:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameAttivoMessaggi NuoviMessaggi VecchiDeleteMODIFICA
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFICA
\n"; + } + + ###################### # ADD=1000000000000 display all conferences ###################### @@ -19763,7 +24471,7 @@ if ($ADD==999999) echo "\n";echo "\n"; -$stmt="SELECT admin_home_url from system_settings;"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; ?>
-
\n"; echo ""; - $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers;"; + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $servers_to_print = mysql_num_rows($rslt); @@ -19788,52 +24496,97 @@ if ($ADD==999999) $queuemetrics_url_LU = $row[0]; $vtiger_url_LU = $row[1]; + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; ?> - VICIDIAL: Statistiche e Report - VICIDIAL: Statistiche e Report

+ Statistiche e Report + Statistiche e Report

+
+       + + Real-Time Rapporti

+ Inbound and Outbound Calling Rapporti
+ + +
+       + + Agent Rapporti
+
+ Time Clock Rapporti
+
+ Other Report and Links
+ +
+ +

-		 $o)
@@ -19855,7 +24608,7 @@ if ($ADD==999999)
 				}
 			$disk = "$disk%";
 			echo "\n";
-			echo "\n";
+			echo "\n";
 			echo "\n";
 			echo "\n";
 			echo "\n";
@@ -19898,7 +24651,7 @@ echo "BUILD: $build\n";
 
 
-1)
 					{
-					$stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
+					$stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';";
 					$rslt=mysql_query($stmt, $link);
 					$row=mysql_fetch_row($rslt);
 					$Gstate_call_time_id =		"$row[0]";
@@ -20207,7 +24960,6 @@ if (isset($camp_lists))
 			$default_gmt = "$default_gmt'99'";
 			$all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL";
 
-
 			$dial_statuses = preg_replace("/ -$/","",$dial_statuses);
 			$Dstatuses = explode(" ", $dial_statuses);
 			$Ds_to_print = (count($Dstatuses) - 0);
@@ -20221,7 +24973,16 @@ if (isset($camp_lists))
 			$Dsql = preg_replace("/,$/","",$Dsql);
 			if (strlen($Dsql) < 2) {$Dsql = "''";}
 
-			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $fSQL";
+			$DLTsql='';
+			if ($drop_lockout_time > 0)
+				{
+				$DLseconds = ($drop_lockout_time * 3600);
+				$DLseconds = floor($DLseconds);
+				$DLseconds = intval("$DLseconds");
+				$DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )";
+				}
+
+			$stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL";
 			#$DB=1;
 			if ($DB) {echo "$stmt\n";}
 			$rslt=mysql_query($stmt, $link);
diff --git a/LANG_www/vicidial_it/admin_header.php b/LANG_www/vicidial_it/admin_header.php
index 4b17c387..371554a2 100644
--- a/LANG_www/vicidial_it/admin_header.php
+++ b/LANG_www/vicidial_it/admin_header.php
@@ -1,4 +1,4 @@
-    LICENSE: AGPLv2
@@ -6,6 +6,19 @@
 
 # CHANGES
 # 90310-0709 - First Build
+# 90508-0542 - Added Call Menu option, changed script to use long PHP tags
+# 90514-0605 - Added audio prompt selection functions
+# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option
+# 90531-2339 - Added Dynamic options for Call Menu
+# 90612-0852 - Changed relative links
+# 90635-0943 - Added javascript for dynamic menus in In-Groups
+# 90627-0548 - Added no-agent-no-queue options
+# 90628-1016 - Added Text-to-speech options
+# 90830-2213 - Added Music On Hold options
+# 90904-1534 - Added launch_moh_chooser
+# 90916-2334 - Added Voicemail options
+# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus
+#
 
 
 ######################### SMALL HTML HEADER BEGIN #######################################
@@ -26,7 +39,7 @@ if($short_header)
 	
SERVERDESCRIZIONEIPACTLOADCHANDISKOUTBOUNDINBOUND
$server_id[$o]$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]   Rapporti  
- \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
English Italiano
-VICIDIAL logo +VICIDIAL logo ADMINISTRATION
- - 1) { + 1) { ?> - >>>>>>> - >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + - - 1) { if ($sh=='basic') {$sh='list';} @@ -657,201 +968,241 @@ if (strlen($reports_hh) > 1) { else {$listmix_sh=''; $listmix_fc='BLACK';} ?> - > - - > - - > - - > + + > + + > + + 0) { ?> - > - - > - - > - - > + + > + + > + + - > - - > + + - 0) { ?> - - + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Add-Eliminare numero da DNC';} + else {$DNClink = 'Add Number To DNC';} ?> - >>>>>>>>>> - - - 1) { ?> - >>>> - - 0) { ?> - - + 1) { ?> - >>>> - - - 1) { ?> - >>>>>>>>>>>>>>> - - - 1) { ?> - >>>>>>>> - - - 1) { ?> - >>>> - - - 1) { - if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} # pink + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} else {$times_sh=''; $times_fc='BLACK';} - if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} # pink + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} else {$shifts_sh=''; $shifts_fc='BLACK';} - if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} # pink + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} else {$templates_sh=''; $templates_fc='BLACK';} - if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} # pink + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} else {$carriers_sh=''; $carriers_fc='BLACK';} - if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} # pink + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} else {$phones_sh=''; $phones_fc='BLACK';} - if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} # pink + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} else {$server_sh=''; $server_fc='BLACK';} - if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} # pink + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} else {$conference_sh=''; $conference_fc='BLACK';} - if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} # pink + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} else {$settings_sh=''; $settings_fc='BLACK';} - if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} # pink + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} ?> - > - - > - > - > - > - > - > - > - > + > + + > + > + > + > + > + > + > + > + > - 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + - +
WIDTH=160> - SIZE=>Utenti +
WIDTH=160> + SIZE=>Utenti
-   >Inserisci Utenti -
-   >Aggiungere un nuovo utente -
-   >Copia Utente -
-   >Cerca un utente -
-   >Statistiche utente -
-   >Status Utente -
-   >Time Sheet
+   >Inserisci Utenti +
+   >Aggiungere un nuovo utente +
+   >Copia Utente +
+   >Cerca un utente +
+   >Statistiche utente +
+   >Status Utente +
+   >Time Sheet
+   >Utente Territori
> - SIZE=>Campagnas +
> + SIZE=>Campagnas
>   SIZE=>Campagne Main
>   SIZE=>Esiti
>   SIZE=>Hot-Key>   SIZE=>Campagne Main
>   SIZE=>Esiti
>   SIZE=>Hot-Key
>   SIZE=>Piombo Riciclare
>   SIZE=>Auto-Alt Dial
>   SIZE=>Elenco Mix
>   SIZE=>Piombo Riciclare
>   SIZE=>Auto-Alt Dial
>   SIZE=>Elenco Mix
>   SIZE=>Codici Pausa
>   SIZE=>Codici Pausa
> SIZE=>Liste
> SIZE=>Liste
  - > Visualizza Liste -
  - > Nuova Lista -
  - > Ricerca Contatti -
  - > Aggiungi Numero Alla Lista DNC -
  - > Carica Nuovi Contatti +
  + > Visualizza Liste +
  + > Nuova Lista +
  + > Ricerca Contatti +
  + > +
  + > Carica Nuovi Contatti
> - SIZE=> Script +
> + SIZE=> Script
  - > Visualizza Script -
  - > Aggiungi Nuovo Script +
  + > Visualizza Script +
  + > Aggiungi Nuovo Script
> SIZE=> Filtri
> SIZE=> Filtri
  - > Visualizza Filtri -
  - > Aggiungi Nuovo Filtro +
  + > Visualizza Filtri +
  + > Aggiungi Nuovo Filtro
> - SIZE=> Gruppi Inbound +
> + SIZE=> Gruppi Inbound
  - > Visualizza Gruppi Inbound -
  - > Aggiungi Gruppo Inbound -
  - > Copia Gruppo Inbound -
  - > Visualizza DIDs -
  - > Aggiungi un nuovo DID -
  - > CopiaDID +
  + > Visualizza Gruppi Inbound +
  + > Aggiungi Gruppo Inbound +
  + > Copia Gruppo Inbound
+
  + > Visualizza DIDs +
  + > Aggiungi un nuovo DID +
  + > CopiaDID
+
  + > Show Call Menu +
  + > Aggiungi un nuovo menu Call +
  + > Copia Call Menu
> - SIZE=> Gruppi Utenti +
> + SIZE=> Gruppi Utenti
  - > Visualizza Gruppi Utenti -
  - >Aggiungi Nuovo Gruppo Utente -
  - > Report Orario Per Gruppo -
  - > Bulk Gruppo Cambia +
  + > Visualizza Gruppi Utenti +
  + >Aggiungi Nuovo Gruppo Utente +
  + > Report Orario Per Gruppo +
  + > Bulk Gruppo Cambia
> - SIZE=> Operatori Remoti +
> + SIZE=> Operatori Remoti
  - > Visualizza Operatori Remoti -
  - >Aggiungi Operatore Remoto +
  + > Visualizza Operatori Remoti +
  + >Aggiungi Operatore Remoto
> - SIZE=> Admin +
> + SIZE=> Admin
COLSPAN=2>   - SIZE=> Orari Chiamata
>   - SIZE=> Turni
>   - SIZE=> Telefoni
>   - SIZE=> Modelli
>   - SIZE=> Vettori
>   - SIZE=> Server
>   - SIZE=> Conferencias
>   - SIZE=> Impostazioni di Sistema
>   - SIZE=> Esiti di Default
COLSPAN=2>   + SIZE=> Orari Chiamata
>   + SIZE=> Turni
>   + SIZE=> Telefoni
>   + SIZE=> Modelli
>   + SIZE=> Vettori
>   + SIZE=> Server
>   + SIZE=> Conferencias
>   + SIZE=> Impostazioni di Sistema
>   + SIZE=> Esiti di Default
>   + SIZE=> Casella Vocale
>   + SIZE=> Audio Store
>   + SIZE=> Music On Hold
>   + SIZE=> Text To Speech
> - SIZE=> Report +
> + SIZE=> Report
 
-
BGCOLOR=#D9E6FE> + BGCOLOR=#D9E6FE> - HEIGHT=15> - + + +
HOME | Orologio | Logout  
HEIGHT=15> + @@ -862,64 +1213,75 @@ if (strlen($reports_hh) > 1) { - 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { ?> - > - > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { ?> - > - > + 1) and (!eregi('campaign',$hh) ) ) { ?> - > - > + - > - > + 1) { ?> -> - +> +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $u++; $call_log .= ""; @@ -363,27 +393,28 @@ else $call_log .= "\n"; $call_log .= "\n"; $call_log .= "\n"; - $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_agent_log records ##### - $stmt="select * from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Alogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); - $y=0; - $agent_log = ''; - $Alog_campaign = ''; - while ($Alogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $agent_log .= ""; @@ -400,24 +431,24 @@ else $agent_log .= "\n"; $campaign_id = $row[5]; - } + } - ##### grab vicidial_closer_log records ##### - $stmt="select * from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $Clogs_to_print = mysql_num_rows($rslt); + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); - $y=0; - $closer_log = ''; - $Clog_campaign = ''; - while ($Clogs_to_print > $y) - { - $row=mysql_fetch_row($rslt); - if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $y)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} $y++; $closer_log .= ""; @@ -433,39 +464,43 @@ else $closer_log .= "\n"; $campaign_id = $row[3]; - } + } - ##### grab vicidial_list data for lead ##### - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $lead_id = "$row[0]"; - $dispo = "$row[3]"; - $tsr = "$row[4]"; - $vendor_id = "$row[5]"; - $list_id = "$row[7]"; - $gmt_offset_now = "$row[8]"; - $phone_code = "$row[10]"; - $phone_number = "$row[11]"; - $title = "$row[12]"; - $first_name = "$row[13]"; # - $middle_initial = "$row[14]"; - $last_name = "$row[15]"; # - $address1 = "$row[16]"; # - $address2 = "$row[17]"; # - $address3 = "$row[18]"; # - $city = "$row[19]"; # - $state = "$row[20]"; # - $province = "$row[21]"; # - $postal_code = "$row[22]"; # - $country_code = "$row[23]"; # - $gender = "$row[24]"; - $date_of_birth = "$row[25]"; - $alt_phone = "$row[26]"; # - $email = "$row[27]"; # - $security = "$row[28]"; # - $comments = "$row[29]"; # + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; echo "
Informazioni Chiamata: $first_name $last_name - $phone_number

\n"; echo "\n"; @@ -499,45 +534,47 @@ else echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; - echo "\n"; + if ($DS < 1) {$statuses_list .= "\n";} + echo "$statuses_list"; + echo "(with $log_campaign statuses)\n"; echo "\n"; @@ -551,9 +588,9 @@ else echo "


\n"; if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) - { + { ### find any vicidial_callback records for this lead - $stmt="select * from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE') order by callback_id desc LIMIT 1;"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $CB_to_print = mysql_num_rows($rslt); @@ -593,62 +630,68 @@ else { echo "
No Callback records found
\n"; } + } + } + else + { + echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; } + echo "

\n"; + echo "
\n"; + if ($c > 0) + { + echo "EXTENDED ALTERNATE NUMERI DI TELEFONO PER QUESTA PIOMBO:\n"; + echo "
HOME | Orologio | Logout  
>   > Visualizza Campagne     |     > Aggiungi Nuova Campagna     |     > Copia Campagna     |     > Riepilogo Campagne In Tempo Reale
>   > Visualizza Campagne     |     > Aggiungi Nuova Campagna     |     > Copia Campagna     |     > Riepilogo Campagne In Tempo Reale
  > Elenca Orari Chiamata  | > Nuovo Orario Chiamate  | > Elenca Orari Chiamata Per Stati  | > Nuovo Orario Chiamate Per Stato
  > Elenca Orari Chiamata  | > Nuovo Orario Chiamate  | > Elenca Orari Chiamata Per Stati  | > Nuovo Orario Chiamate Per Stato
  > Mostra cambiamenti  | > Aggiungi un nuovo Shift
  > Mostra cambiamenti  | > Aggiungi un nuovo Shift
  > Visualizza Telefoni  | > Aggiungi Un Nuovo Telefono  | > Telefono Alias Elenco  | > Aggiungi un nuovo telefono Alias  | > Gruppo Alias Elenco  | > Aggiungere un nuovo gruppo Alias
  > Visualizza Telefoni  | > Aggiungi Un Nuovo Telefono  | > Telefono Alias Elenco  | > Aggiungi un nuovo telefono Alias  | > Gruppo Alias Elenco  | > Aggiungere un nuovo gruppo Alias
  >Visualizza Conferenze   |   > Aggiungi Conferenza   |   > Visualizza Conferenze VICIDIAL   |   > Aggiungi Conferenza VICIDIAL
  >Visualizza Conferenze   |   > Aggiungi Conferenza   |   > Visualizza Conferenze VICIDIAL   |   > Aggiungi Conferenza VICIDIAL
  > Visualizza Server   |   > Aggiungi Un Nuovo Server
  > Visualizza Server   |   > Aggiungi Un Nuovo Server
  > Visualizza modelli   |   > Aggiungi un nuovo modello
  > Visualizza modelli   |   > Aggiungi un nuovo modello
  > Show Vettori   |   > Add A New Carrier
  > Show Vettori   |   > Add A New Carrier
  > Mostra TTS Entries   |   > Aggiungere una nuova voce TTS
  > Mostra MOH Entries   |   > Aggiungere una nuova voce MOH
  > Show Casella Vocale Entries   |   > Add A New Casella Vocale Entry
  > Impostazioni di Sistema
  > Impostazioni di Sistema
  > Esiti di Default   |   > Categorie di esiti   |   >Codici di stato, QC
  > Esiti di Default   |   > Categorie di esiti   |   >Codici di stato, QC
  >Statistiche utente   |   >Status Utente   |   >Time Sheet   |   >Giorni di stato
  >Statistiche utente   |   >Status Utente   |   >Time Sheet   |   >Giorni di stato
>  
>  
-0) { - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; if ($WeBRooTWritablE > 0) { @@ -206,23 +214,22 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Registro del Lead modificado +ADMINISTRATION: Registro del Lead modificado
-VICIDIAL ADMIN: Registro del Lead modificado
\n"; +ADMINISTRATION: Registro del Lead modificado
\n"; if ($end_call > 0) -{ - + { ### update the lead record in the vicidial_list table - $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="UPDATE vicidial_list set status='" . mysql_real_escape_string($status) . "',first_name='" . mysql_real_escape_string($first_name) . "',last_name='" . mysql_real_escape_string($last_name) . "',address1='" . mysql_real_escape_string($address1) . "',address2='" . mysql_real_escape_string($address2) . "',address3='" . mysql_real_escape_string($address3) . "',city='" . mysql_real_escape_string($city) . "',state='" . mysql_real_escape_string($state) . "',province='" . mysql_real_escape_string($province) . "',postal_code='" . mysql_real_escape_string($postal_code) . "',country_code='" . mysql_real_escape_string($country_code) . "',alt_phone='" . mysql_real_escape_string($alt_phone) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - echo "informazione modificata

\n"; - echo "\n"; + echo "informazione modificata

\n"; + echo "
\n"; ### LOG INSERTION Admin Log Table ### $SQL_log = "$stmt|"; @@ -233,69 +240,69 @@ if ($end_call > 0) $rslt=mysql_query($stmt, $link); if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($dispo == 'CALLBK') ) - { + { ### inactivate vicidial_callbacks record for this lead $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status IN('ACTIVE','LIVE');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
vicidial_callback record inactivated: $lead_id
\n"; - } + } if ( ($dispo != $status) and ($status == 'DNC') ) - { + { ### add lead to the internal DNC list $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; - } + } ### update last record in vicidial_log table if (($dispo != $status) and ($modify_logs > 0)) - { + { $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_closer_log table if (($dispo != $status) and ($modify_closer_logs > 0)) - { + { $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } ### update last record in vicidial_agent_log table if (($dispo != $status) and ($modify_agent_logs > 0)) - { + { $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); - } + } if ($add_closer_record > 0) - { + { ### insert a NEW record to the vicidial_closer_log table $stmt="INSERT INTO vicidial_closer_log (lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed) values('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . mysql_real_escape_string($status) . "','" . mysql_real_escape_string($phone_code) . "','" . mysql_real_escape_string($phone_number) . "','$PHP_AUTH_USER','" . mysql_real_escape_string($comments) . "','Y')"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); + } + + } - - -} else -{ + { if ($CBchangeUSERtoANY == 'YES') { @@ -334,24 +341,47 @@ else $lead_count = $row[0]; if ($lead_count > 0) - { - - ##### grab vicidial_log records ##### - $stmt="select * from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); - - $u=0; - $call_log = ''; - $log_campaign = ''; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (strlen($log_campaign)<1) {$log_campaign = $row[3];} - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$row[3] $row[2] $row[1] $row[15]
$row[15]   $row[10]
  $row[17]
  $row[17]
Numero Alt :
Email :
Seguridad:
Rank :
Owner :
Note :
Esito:
Esito: (with $log_campaign statuses)
Modificarevicidial log
\n"; + echo "\n"; - } - else - { - echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; -# echo "Close this window\n

\n"; - } + echo "$alts_output\n"; + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } - -echo "

\n"; - -echo "
\n"; - -echo "CHIAMATE VERSO QUESTO CONTATTO:\n"; -echo "\n"; -echo "\n"; + echo "CHIAMATE VERSO QUESTO CONTATTO:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNA LIST LEAD HANGUP REASON
\n"; + echo "\n"; echo "$call_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNA LIST LEAD HANGUP REASON PHONE
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "CLOSER RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNA LIST LEAD WAIT HANGUP REASON
\n"; + echo "\n"; echo "$closer_log\n"; -echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNA LIST LEAD WAIT HANGUP REASON
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "AGENT LOG RECORDS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "AGENT LOG RECORDS FOR THIS LEAD:\n"; + echo "
# DATE/TIME CAMPAGNA TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "\n"; - echo "$agent_log\n"; + echo "$agent_log\n"; -echo "
# DATE/TIME CAMPAGNA TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; -echo "

\n"; + echo "
\n"; + echo "

\n"; -echo "RECORDINGS FOR THIS LEAD:\n"; -echo "\n"; -echo "\n"; + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; + echo "\n"; -$stmt="select * from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; -$rslt=mysql_query($stmt, $link); -$logs_to_print = mysql_num_rows($rslt); + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); $u=0; while ($logs_to_print > $u) @@ -707,12 +750,8 @@ $logs_to_print = mysql_num_rows($rslt); } -echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
\n"; - - - - -} + echo "
\n"; + } $ENDtime = date("U"); @@ -731,15 +770,9 @@ echo "\n\n\n


\nTempo Esecuzione Script: $RUNtime seconds - - - - - - diff --git a/LANG_www/vicidial_it/admin_search_lead.php b/LANG_www/vicidial_it/admin_search_lead.php index 0efbf4e5..d2a66b9c 100644 --- a/LANG_www/vicidial_it/admin_search_lead.php +++ b/LANG_www/vicidial_it/admin_search_lead.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -18,6 +18,9 @@ # 90121-0500 - Added filter for phone to remove non-digits # 90309-1828 - Added admin_log logging # 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR # require("dbconnect.php"); @@ -43,21 +46,25 @@ if (isset($_GET["user"])) {$user=$_GET["user"];} elseif (isset($_POST["user"])) {$user=$_POST["user"];} if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); $phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} $STARTtime = date("U"); $TODAY = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner'; - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} @@ -66,25 +73,24 @@ $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - - if($auth>0) + if ($auth>0) { $office_no=strtoupper($PHP_AUTH_USER); $password=strtoupper($PHP_AUTH_PW); - $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname =$row[0]; - $LOGmodify_leads =$row[1]; + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; if ($WeBRooTWritablE > 0) { @@ -106,8 +112,8 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Ricerca Contatti -<? +<title>ADMINISTRATION: Ricerca Contatti +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -131,12 +137,8 @@ $subcamp_color = '#C6C6C6'; require("admin_header.php"); - - - echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; - if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) { echo date("l F j, Y G:i:s A"); @@ -144,7 +146,8 @@ if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and echo "<form method=post name=search action=\"$PHP_SELF\">\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<b>Per favore, inserisci:<br> Vendor ID(co`digo del vendedor del Lead): <input type=text name=vendor_id size=10 maxlength=10> or \n"; - echo "<br><b>un numero di telefono: <input type=text name=phone size=20 maxlength=16> or\n"; + echo "<br><b>un numero di telefono: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; echo "<br><b>un ID Contatto: <input type=text name=lead_id size=10 maxlength=10> or\n"; echo "<br><b>esito: <input type=text name=status size=7 maxlength=6>   \n"; echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; @@ -160,19 +163,26 @@ else if ($vendor_id) { - $stmt="SELECT * from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; } else { if ($phone) { - $stmt="SELECT * from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' order by modify_date desc limit 1000"; + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } } else { if ($lead_id) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "' order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; } else { @@ -195,7 +205,7 @@ else if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; } - $stmt="SELECT * from vicidial_list where $statusSQL $list_idSQL $userSQL order by modify_date desc limit 1000"; + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; } else { @@ -205,14 +215,38 @@ else } } } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + if ($DB) { echo "\n\n$stmt\n\n"; } - - $rslt=mysql_query($stmt, $link); + + $rslt=mysql_query("$stmt", $link); $results_to_print = mysql_num_rows($rslt); - if ($results_to_print < 1) + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) { echo date("l F j, Y G:i:s A"); echo "\n<br><br><center>\n"; @@ -270,7 +304,7 @@ else $SQL_log = "$stmt|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); } diff --git a/LANG_www/vicidial_it/audio_store.php b/LANG_www/vicidial_it/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/LANG_www/vicidial_it/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_campaigns='1'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/LANG_www/vicidial_it/call_report_export.php b/LANG_www/vicidial_it/call_report_export.php index 6e0b5f0d..77a49b05 100644 --- a/LANG_www/vicidial_it/call_report_export.php +++ b/LANG_www/vicidial_it/call_report_export.php @@ -1,4 +1,4 @@ -<? +<?php # call_report_export.php # # displays options to select for downloading of leads and their vicidial_log @@ -10,6 +10,10 @@ # CHANGES # # 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name # require("dbconnect.php"); @@ -37,8 +41,8 @@ if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} -if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} - elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} if (strlen($shift)<2) {$shift='ALL';} @@ -48,12 +52,10 @@ $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -72,7 +74,7 @@ $auth=$row[0]; { # Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); # Header("HTTP/1.0 401 Unauthorized"); - echo "Utentename/Password non validi or no export report permission: |$PHP_AUTH_USER|\n"; + echo "Invalid Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; exit; } @@ -206,14 +208,14 @@ if ($run_export > 0) echo "<BR>\n"; echo "$status_ct|$status_string|$status_SQL\n"; echo "<BR>\n"; - exit; } - + $outbound_calls=0; + $export_rows=''; + $k=0; if ($RUNcampaign > 0) { - $export_campaign_rows=''; - $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $outbound_to_print = mysql_num_rows($rslt); @@ -229,20 +231,23 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_campaign_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; + $outbound_calls++; } } } if ($RUNgroup > 0) { - $export_group_rows=''; - $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date' and vl.call_date <= '$end_date' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; $rslt=mysql_query($stmtA, $link); if ($DB) {echo "$stmt\n";} $inbound_to_print = mysql_num_rows($rslt); - if ($inbound_to_print < 1) + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) { echo "There are no inbound calls during this time period for these parameters\n"; exit; @@ -254,8 +259,11 @@ if ($run_export > 0) { $row=mysql_fetch_row($rslt); - $export_group_rows .= "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\r\n"; + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; $i++; + $k++; } } } @@ -267,7 +275,7 @@ if ($run_export > 0) $SQL_log = "$stmt|$stmtA|"; $SQL_log = ereg_replace(';','',$SQL_log); $SQL_log = addslashes($SQL_log); - $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN ESPORTAZIONE CHIAMATE RELAZIONE', event_sql=\"$SQL_log\", event_notes='';"; + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); @@ -284,7 +292,48 @@ if ($run_export > 0) ob_clean(); flush(); - echo "$export_campaign_rows$export_group_rows"; + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } } else { @@ -397,7 +446,7 @@ else echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; - echo "<TITLE>VICIDIAL: Esporta invita Relazione"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; ##### BEGIN Set variables to make header show properly ##### $ADD = '100'; @@ -422,19 +471,19 @@ else echo "<CENTER><BR>\n"; - echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Esporta invita Relazione</B></FONT><BR><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; - echo "<TABLE Border=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Date:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; echo "<BR>to<BR>\n"; echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; - echo "<font class=\"select_bold\"><B>Campagnas:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; $o=0; while ($campaigns_to_print > $o) @@ -448,7 +497,7 @@ else echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Gruppi Inbound:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; $o=0; while ($groups_to_print > $o) @@ -461,7 +510,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Liste:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; $o=0; while ($lists_to_print > $o) @@ -474,7 +523,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Esiti:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; $o=0; while ($statuses_to_print > $o) @@ -487,7 +536,7 @@ else } echo "</SELECT>\n"; echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; - echo "<font class=\"select_bold\"><B>Gruppi Utenti:</B></font><BR><CENTER>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; $o=0; while ($user_groups_to_print > $o) @@ -503,7 +552,7 @@ else echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; - echo "<INPUT TYPE=Submit NAME=INVIA VALUE=INVIA>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; echo "</TD></TR></TABLE>\n"; echo "</FORM>\n\n"; diff --git a/LANG_www/vicidial_it/dbconnect.php b/LANG_www/vicidial_it/dbconnect.php index dae8cc7a..dca45485 100644 --- a/LANG_www/vicidial_it/dbconnect.php +++ b/LANG_www/vicidial_it/dbconnect.php @@ -1,10 +1,10 @@ -<? +<?php # -# dbconnect.php version 2.0.5 +# dbconnect.php version 2.2.0 # # database connection settings and some global web settings # -# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # if ( file_exists("/etc/astguiclient.conf") ) { @@ -16,6 +16,8 @@ foreach ($DBCagc as $DBCline) {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} if (ereg("^PATHweb", $DBCline)) {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} if (ereg("^VARDB_server", $DBCline)) {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} if (ereg("^VARDB_database", $DBCline)) diff --git a/LANG_www/vicidial_it/fcstats.php b/LANG_www/vicidial_it/fcstats.php index 9f04f641..e5da03e7 100644 --- a/LANG_www/vicidial_it/fcstats.php +++ b/LANG_www/vicidial_it/fcstats.php @@ -1,4 +1,4 @@ -<? +<?php # fcstats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -11,6 +11,7 @@ # 71228-1140 - added percentages, cross-day start/stop # 80328-1139 - adapted for basic fronter/closer stats # 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -80,9 +81,9 @@ while ($i < $groups_to_print) --> </STYLE> -<? +<?php echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; -echo "<TITLE>VICIDIAL: In-Group Fronter-Closer Stats\n"; +echo "In-Group Fronter-Closer Stats Report\n"; $short_header=1; @@ -147,7 +148,7 @@ if ($shift == 'ALL') $query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0])); } -echo "VICIDIAL: In-Group Fronter-Closer Stats $NOW_TIME\n"; +echo "In-Group Fronter-Closer Stats Report $NOW_TIME\n"; echo "\n"; echo "---------- TOTALI FOR $query_date_BEGIN to $query_date_END\n"; diff --git a/LANG_www/vicidial_it/functions.php b/LANG_www/vicidial_it/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/LANG_www/vicidial_it/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/LANG_www/vicidial_it/group_hourly_stats.php b/LANG_www/vicidial_it/group_hourly_stats.php index 15990dfd..98c0ac9f 100644 --- a/LANG_www/vicidial_it/group_hourly_stats.php +++ b/LANG_www/vicidial_it/group_hourly_stats.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 60620-1014 - Added variable filtering to eliminate SQL injection attack threat # - Added required user/pass to gain access to this page # 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -26,14 +27,34 @@ if (isset($_GET["submit"])) {$submit=$_GET["submit"];} if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { @@ -106,8 +127,8 @@ $browser = getenv("HTTP_USER_AGENT"); -VICIDIAL ADMIN: Statistiche Orarie Del Gruppo -<? +<title>ADMINISTRATION: Statistiche Orarie Del Gruppo +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -133,12 +154,12 @@ require("admin_header.php"); <CENTER> -<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Statistiche Orarie Del Gruppo <? echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Statistiche Orarie Del Gruppo <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> -<? +<?php if ( ($group) and ($status) and ($date_with_hour) ) { @@ -223,7 +244,7 @@ echo "<br><br>\n"; echo "<input type=hidden name=DB value=$DB>\n"; echo "gruppo: <select size=1 name=group>\n"; - $stmt="SELECT * from vicidial_user_groups order by user_group"; + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; $rslt=mysql_query($stmt, $link); $groups_to_print = mysql_num_rows($rslt); $o=0; @@ -260,7 +281,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_it/list_download.php b/LANG_www/vicidial_it/list_download.php index 90fb0ed5..9914d2b2 100644 --- a/LANG_www/vicidial_it/list_download.php +++ b/LANG_www/vicidial_it/list_download.php @@ -1,4 +1,4 @@ -<? +<?php # list_download.php # # downloads the entire contents of a vicidial list ID to a flat text file @@ -9,6 +9,8 @@ # CHANGES # # 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields # require("dbconnect.php"); @@ -111,7 +113,7 @@ header('Pragma: public'); ob_clean(); flush(); -$stmt="select * from vicidial_list where list_id='$list_id';"; +$stmt="select lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $leads_to_print = mysql_num_rows($rslt); @@ -120,7 +122,7 @@ while ($i < $leads_to_print) { $row=mysql_fetch_row($rslt); - echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\r\n"; + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; $i++; } diff --git a/LANG_www/vicidial_it/listloader.pl b/LANG_www/vicidial_it/listloader.pl index b8f9e064..052d93e0 100644 --- a/LANG_www/vicidial_it/listloader.pl +++ b/LANG_www/vicidial_it/listloader.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader.pl version 2.0.5 +# listloader.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -19,65 +19,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][22]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } if (length($forcelistid) > 0) { @@ -369,10 +380,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -380,7 +438,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -406,7 +464,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -426,7 +484,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -446,7 +504,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -466,7 +524,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -565,14 +623,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -591,7 +649,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_it/listloaderMAIN.php b/LANG_www/vicidial_it/listloaderMAIN.php index bf86a0c8..0210fcb7 100644 --- a/LANG_www/vicidial_it/listloaderMAIN.php +++ b/LANG_www/vicidial_it/listloaderMAIN.php @@ -1,7 +1,7 @@ -<? +<?php # listloaderMAIN.php # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # this is the main frame page for the lead loading section. This is where you # would upload a file and have it inserted into vicidial_list @@ -9,6 +9,7 @@ # changes: # 60620-1149 - Added variable filtering to eliminate SQL injection attack threat # 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); diff --git a/LANG_www/vicidial_it/listloader_rowdisplay.pl b/LANG_www/vicidial_it/listloader_rowdisplay.pl index bbfc8170..9caaeab2 100644 --- a/LANG_www/vicidial_it/listloader_rowdisplay.pl +++ b/LANG_www/vicidial_it/listloader_rowdisplay.pl @@ -1,14 +1,15 @@ #!/usr/bin/perl # -# listloader_rowdisplay.pl version 2.0.5 +# listloader_rowdisplay.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES # # 60811-1232 - Changed to DBI # 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields # ### begin parsing run-time options ### @@ -116,7 +117,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { @xls_row=split(/\|/, $var_str); -$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1;"; +$stmtA = "select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; diff --git a/LANG_www/vicidial_it/listloader_super.pl b/LANG_www/vicidial_it/listloader_super.pl index 3af97f37..9b09bba7 100644 --- a/LANG_www/vicidial_it/listloader_super.pl +++ b/LANG_www/vicidial_it/listloader_super.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -# listloader_super.pl version 2.0.5 +# listloader_super.pl version 2.2.0 # -# Copyright (C) 2008 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 # # # CHANGES @@ -18,65 +18,71 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 80428-0144 - UTF8 cleanup # 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # ### begin parsing run-time options ### if (length($ARGV[0])>1) -{ + { $i=0; while ($#ARGV >= $i) - { - $args = "$args $ARGV[$i]"; - $i++; - } + { + $args = "$args $ARGV[$i]"; + $i++; + } if ($args =~ /--help|-h/i) - { - print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; - exit; - } + exit; + } else - { + { if ($args =~ /-duplicate-check/i) {$dupcheck=1;} if ($args =~ /-duplicate-campaign-check/i) {$dupcheckcamp=1;} if ($args =~ /-duplicate-system-check/i) {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} if ($args =~ /-postal-code-gmt/i) {$postalgmt=1;} if ($args =~ /--forcelistid=/i) - { - @data_in = split(/--forcelistid=/,$args); + { + @data_in = split(/--forcelistid=/,$args); $forcelistid = $data_in[1]; $forcelistid =~ s/ .*//gi; - print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; - } + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } else {$forcelistid = '';} if ($args =~ /--forcephonecode=/i) - { - @data_in = split(/--forcephonecode=/,$args); + { + @data_in = split(/--forcephonecode=/,$args); $forcephonecode = $data_in[1]; $forcephonecode =~ s/ .*//gi; - print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; - } + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } else {$forcephonecode = '';} if ($args =~ /--lead-file=/i) - { - @data_in = split(/--lead-file=/,$args); + { + @data_in = split(/--lead-file=/,$args); $lead_file = $data_in[1]; $lead_file =~ s/ .*//gi; - # print "\n----- LEAD FILE: $lead_file -----\n\n"; - } + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } else {$lead_file = './vicidial_temp_file.xls';} + } } -} ### end parsing run-time options ### use Spreadsheet::ParseExcel; @@ -258,6 +264,11 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; if ($oWkC) {$comments=$oWkC->Value; } $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } @@ -371,10 +382,57 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { {$dup_lead++;} } } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } if ( (length($phone_number)>6) && ($dup_lead < 1) ) { - $phone_list .= "$phone_number$US$list_id|"; + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $postalgmt_found=0; if (length($phone_code)<1) {$phone_code = '1';} @@ -382,7 +440,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { { if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -408,7 +466,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### UNITED STATES ### if ($phone_code =~ /^1$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -428,7 +486,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### MEXICO ### if ($phone_code =~ /^52$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -448,7 +506,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### AUSTRALIA ### if ($phone_code =~ /^61$/) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -468,7 +526,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { ### ALL OTHER COUNTRY CODES ### if (!$PC_processed) { - $stmtA = "select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; if($DBX){print STDERR "\n|$stmtA|\n";} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -567,14 +625,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; $multistmt=''; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -593,7 +651,7 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { } if ($multi_insert_counter > 0) { - $stmtZ = "INSERT INTO vicidial_list values ".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; $affected_rows = $dbhA->do($stmtZ); print STMT_FILE $stmtZ."\r\n"; } diff --git a/LANG_www/vicidial_it/new_listloader_superL.php b/LANG_www/vicidial_it/new_listloader_superL.php index 1abdfb9d..e19121fe 100644 --- a/LANG_www/vicidial_it/new_listloader_superL.php +++ b/LANG_www/vicidial_it/new_listloader_superL.php @@ -1,4 +1,4 @@ -<? +<?php # new_listloader_superL.php # # Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 @@ -25,11 +25,15 @@ # 81011-2009 - a few bug fixes # 90309-1831 - Added admin_log logging # 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking # # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. -$version = '2.0.5-29'; -$build = '90310-2128'; +$version = '2.2.0-33'; +$build = '91112-0616'; require("dbconnect.php"); @@ -39,50 +43,52 @@ require("dbconnect.php"); #mysql_select_db("asterisk"); #$WeBServeRRooT = '/home/www/htdocs'; +$US='_'; + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; $PHP_SELF=$_SERVER['PHP_SELF']; $leadfile=$_FILES["leadfile"]; $LF_orig = $_FILES['leadfile']['name']; $LF_path = $_FILES['leadfile']['tmp_name']; -if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} - elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} if (isset($_GET["submit"])) {$submit=$_GET["submit"];} - elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} - elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} -if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} - elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} - elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} -if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} - elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} -if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} - elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} - elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} -if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} - elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} -if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} - elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} -if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} - elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} - elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} - elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} - elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} -if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} @@ -91,21 +97,25 @@ if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"]; if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} - elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} -if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} - elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} -if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} - elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} -if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} - elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} - elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} -if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} - elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} $list_id_override = (preg_replace("/\D/","",$list_id_override)); if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} @@ -137,11 +147,16 @@ while ($i < $qm_conf_ct) ########################################### if ($non_latin < 1) -{ -$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); -$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); -$list_id_override = ereg_replace("[^0-9]","",$list_id_override); -} + { + $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); + $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + $list_id_override = ereg_replace("[^0-9]","",$list_id_override); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } $STARTtime = date("U"); $TODAY = date("Y-m-d"); @@ -317,11 +332,11 @@ function ParseFileName() { } } </script> -<title>VICIDIAL ADMIN: Lead Loader +ADMINISTRATION: Lead Loader -
"; ?> - method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> - - + method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + - + - + - + - + @@ -357,6 +372,8 @@ echo "
Carica Contatti Da Questo File:
Sovrascrittura ID Lista: (solo cifre o lasciare in bianco per usare i valori contenuti nel file) (solo cifre o lasciare in bianco per usare i valori contenuti nel file)
Sovrascrittura Codice Telefono: (solo cifre o lasciare in bianco per usare i valori contenuti nel file) (solo cifre o lasciare in bianco per usare i valori contenuti nel file)
Struttura del file da usare:Standard VICIDIAL    Struttura personalizzataStandard Format    Struttura personalizzata
Controlla Contatti Duplicati:
@@ -366,11 +383,11 @@ echo "
"; + +
- +
";
        
        TORNA AD AMMINISTRAZIONELIST LOADER-     VERSIONE:     BUILD:    
        TORNA AD AMMINISTRAZIONELIST LOADER-     VERSIONE:     BUILD:    
- + -document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; @@ -446,6 +463,8 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; if (strlen($list_id_override)>0) { @@ -542,18 +561,61 @@ echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -561,7 +623,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -579,7 +641,7 @@ echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -603,13 +665,15 @@ echo "
"; { print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

\n"; } - # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; $dupcheckCLI=''; $postalgmtCLI=''; if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} - passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } else { # copy($leadfile, "./vicidial_temp_file.csv"); $file=fopen("$lead_file", "r"); @@ -662,6 +726,10 @@ echo "
"; $email = $row[$email_field]; $security_phrase = $row[$security_phrase_field]; $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} if (strlen($list_id_override)>0) { @@ -756,19 +824,62 @@ echo "\n"; echo "
"; } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -776,7 +887,7 @@ echo "
"; $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -793,7 +904,7 @@ echo "\r\n"; print " \r\n"; - $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments from vicidial_list limit 1", $link); + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, phone_code, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, rank, owner from vicidial_list limit 1", $link); if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) @@ -1349,6 +1551,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); } @@ -1425,7 +1629,7 @@ if ($leadfile) { -4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1461,7 +1665,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1476,7 +1680,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1491,7 +1695,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1507,7 +1711,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) diff --git a/LANG_www/vicidial_it/non_agent_api.php b/LANG_www/vicidial_it/non_agent_api.php index 2d525f39..b64ab4c0 100644 --- a/LANG_www/vicidial_it/non_agent_api.php +++ b/LANG_www/vicidial_it/non_agent_api.php @@ -1,4 +1,4 @@ - LICENSE: AGPLv2 @@ -19,10 +19,21 @@ # 80909-2012 - Added support for campaign-specific DNC lists # 80910-0020 - Added support for multi-alt-phones, added version function # 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function # -$version = '2.0.5-5'; -$build = '90118-1056'; +$version = '2.2.0-16'; +$build = '91216-0331'; require("dbconnect.php"); @@ -99,7 +110,24 @@ if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phon elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} if (isset($_GET["source"])) {$source=$_GET["source"];} elseif (isset($_POST["source"])) {$source=$_POST["source"];} - +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 @@ -109,20 +137,18 @@ header ("Pragma: no-cache"); // HTTP/1.0 ##### START SYSTEM_SETTINGS LOOKUP ##### $stmt = "SELECT use_non_latin FROM system_settings;"; $rslt=mysql_query($stmt, $link); -if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $i++; + $non_latin = $row[0]; } ##### END SETTINGS LOOKUP ##### ########################################### if ($non_latin < 1) { + $DB=ereg_replace("[^0-9]","",$DB); $user=ereg_replace("[^0-9a-zA-Z]","",$user); $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); @@ -174,6 +200,19 @@ if ($non_latin < 1) $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); } if (strlen($list_id)<1) {$list_id='999';} @@ -181,6 +220,7 @@ if (strlen($phone_code)<1) {$phone_code='1';} $USarea = substr($phone_number, 0, 3); if (strlen($hopper_priority)<1) {$hopper_priority=0;} if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} $StarTtime = date("U"); $NOW_DATE = date("Y-m-d"); @@ -249,6 +289,847 @@ if ($function == 'version') api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); exit; } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "
"; } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -892,6 +1003,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -986,19 +1099,62 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} - $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1006,7 +1162,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1024,7 +1180,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1054,6 +1210,8 @@ if ($leadfile) { if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); @@ -1118,6 +1276,8 @@ if ($leadfile) { $email = $row[20]; $security_phrase = $row[21]; $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; if (strlen($list_id_override)>0) { @@ -1212,19 +1372,61 @@ if ($leadfile) { } } + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) { if (strlen($phone_code)<1) {$phone_code = '1';} - $US='_'; - $phone_list .= "$phone_number$US$list_id|"; + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); if ($multi_insert_counter > 8) { ### insert good deal into pending_transactions table ### - $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00');"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; $rslt=mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1232,7 +1434,7 @@ if ($leadfile) { $multi_insert_counter=0; } else { - $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00'),"; + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country_code','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; $multi_insert_counter++; } @@ -1249,7 +1451,7 @@ if ($leadfile) { } } if ($multi_insert_counter!=0) { - $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; mysql_query($stmtZ, $link); if ($WeBRooTWritablE > 0) {fwrite($stmt_file, $stmtZ."\r\n");} @@ -1269,7 +1471,7 @@ if ($leadfile) { print " Dati File
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + @@ -269,8 +1150,7 @@ if ($function == 'add_lead') } else { - $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1';"; - if ($DB) {echo "|$stmt|\n";} + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $modify_leads=$row[0]; @@ -297,10 +1177,19 @@ if ($function == 'add_lead') } else { - if ($dnc_check == 'Y') + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -315,10 +1204,18 @@ if ($function == 'add_lead') exit; } } - if ($campaign_dnc_check == 'Y') + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) { - $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';"; - if ($DB) {echo "|$stmt|\n";} + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $dnc_found=$row[0]; @@ -333,14 +1230,196 @@ if ($function == 'add_lead') exit; } } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + ### get current gmt_offset of the phone_number $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); ### insert a new lead in the system with this phone number - $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; - if ($DB) {echo "$stmt\n";} + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $affected_rows = mysql_affected_rows($link); if ($affected_rows > 0) @@ -358,7 +1437,7 @@ if ($function == 'add_lead') $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; $map = explode('!', $multi_alt_phones); $map_count = count($map); - if ($DB) {echo "multi-al-entry: $a|$map_count|$multi_alt_phones\n";} + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} $g++; $r=0; $s=0; $inserted_alt_phones=0; while ($r < $map_count) @@ -377,7 +1456,7 @@ if ($function == 'add_lead') $ALTm_phone_number[$r] = $ncn[0]; $ALTm_phone_note[$r] = $ncn[2]; $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Zaffected_rows = mysql_affected_rows($link); $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); @@ -395,7 +1474,6 @@ if ($function == 'add_lead') $dialable=1; $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; - if ($DB) {echo "|$stmt|\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $local_call_time=$row[0]; @@ -420,7 +1498,7 @@ if ($function == 'add_lead') ### insert record into vicidial_hopper for alt_phone call attempt $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; - if ($DB) {echo "$stmt\n";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} $rslt=mysql_query($stmt, $link); $Haffected_rows = mysql_affected_rows($link); if ($Haffected_rows > 0) @@ -457,6 +1535,9 @@ if ($function == 'add_lead') exit; } } +################################################################################ +### END add_lead +################################################################################ @@ -474,13 +1555,13 @@ api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$resul if ($format=='debug') -{ -$ENDtime = date("U"); -$RUNtime = ($ENDtime - $StarTtime); -echo "\n"; -echo "\n\n\n"; -} - + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + exit; @@ -502,7 +1583,7 @@ if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) { if (preg_match('/^1$/', $phone_code)) { - $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -523,7 +1604,7 @@ if ($postalgmt_found < 1) ### UNITED STATES ### if ($phone_code =='1') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -538,7 +1619,7 @@ if ($postalgmt_found < 1) ### MEXICO ### if ($phone_code =='52') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -553,7 +1634,7 @@ if ($postalgmt_found < 1) ### AUSTRALIA ### if ($phone_code =='61') { - $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -569,7 +1650,7 @@ if ($postalgmt_found < 1) if (!$PC_processed) { $PC_processed++; - $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; $rslt=mysql_query($stmt, $link); $pc_recs = mysql_num_rows($rslt); if ($pc_recs > 0) @@ -1118,134 +2199,134 @@ return $gmt_offset; ##### DETERMINE IF LEAD IS DIALABLE ##### function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) -{ -$dialable=0; + { + $dialable=0; -$pzone=3600 * $gmt_offset; -$pmin=(gmdate("i", time() + $pzone)); -$phour=( (gmdate("G", time() + $pzone)) * 100); -$pday=gmdate("w", time() + $pzone); -$tz = sprintf("%.2f", $p); -$GMT_gmt = "$tz"; -$GMT_day = "$pday"; -$GMT_hour = ($phour + $pmin); + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); -$stmt="SELECT * FROM vicidial_call_times where call_time_id='$local_call_time';"; -if ($DB) {echo "$stmt\n";} -$rslt=mysql_query($stmt, $link); -$rowx=mysql_fetch_row($rslt); -$Gct_default_start = "$rowx[3]"; -$Gct_default_stop = "$rowx[4]"; -$Gct_sunday_start = "$rowx[5]"; -$Gct_sunday_stop = "$rowx[6]"; -$Gct_monday_start = "$rowx[7]"; -$Gct_monday_stop = "$rowx[8]"; -$Gct_tuesday_start = "$rowx[9]"; -$Gct_tuesday_stop = "$rowx[10]"; -$Gct_wednesday_start = "$rowx[11]"; -$Gct_wednesday_stop = "$rowx[12]"; -$Gct_thursday_start = "$rowx[13]"; -$Gct_thursday_stop = "$rowx[14]"; -$Gct_friday_start = "$rowx[15]"; -$Gct_friday_stop = "$rowx[16]"; -$Gct_saturday_start = "$rowx[17]"; -$Gct_saturday_stop = "$rowx[18]"; -$Gct_state_call_times = "$rowx[19]"; + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; -if ($GMT_day==0) #### Sunday local time - { - if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + if ($GMT_day==0) #### Sunday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==1) #### Monday local time { - if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) - {$dialable=1;} + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==1) #### Monday local time - { - if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + if ($GMT_day==2) #### Tuesday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==3) #### Wednesday local time { - if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) - {$dialable=1;} + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==2) #### Tuesday local time - { - if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + if ($GMT_day==4) #### Thursday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } } - else + if ($GMT_day==5) #### Friday local time { - if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) - {$dialable=1;} + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } } - } -if ($GMT_day==3) #### Wednesday local time - { - if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + if ($GMT_day==6) #### Saturday local time { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } } - else - { - if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==4) #### Thursday local time - { - if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==5) #### Friday local time - { - if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) - {$dialable=1;} - } - } -if ($GMT_day==6) #### Saturday local time - { - if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) - { - if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) - {$dialable=1;} - } - else - { - if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) - {$dialable=1;} - } - } -return $dialable; -} + return $dialable; + } /* $ct_states = ''; @@ -1261,7 +2342,7 @@ return $dialable; { if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) { - $stmt="SELECT * from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $Gstate_call_time_id = "$row[0]"; @@ -1405,15 +2486,15 @@ return $dialable; ##### Logging ##### function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) -{ -if ($api_logging > 0) { - $NOW_TIME = date("Y-m-d H:i:s"); -# api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); - $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; - $rslt=mysql_query($stmt, $link); + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; } -return 1; -} ?> diff --git a/LANG_www/vicidial_it/remote_dispo.php b/LANG_www/vicidial_it/remote_dispo.php index ad839a8a..a50a5fa8 100644 --- a/LANG_www/vicidial_it/remote_dispo.php +++ b/LANG_www/vicidial_it/remote_dispo.php @@ -1,7 +1,7 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # this is the remote agent disposition screen for calls sent to remote agents. # This allows the remote agent to modify customer information and disposition @@ -10,6 +10,7 @@ # CHANGES # # 60619-1626 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags # @@ -160,14 +161,14 @@ $browser = getenv("HTTP_USER_AGENT"); REMOTE VICIDIAL: disposicion De la Llamada -\n"; ?>
-"; @@ -202,7 +203,7 @@ else if ($lead_count > 0) { - $stmt="SELECT * from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); @@ -265,7 +266,7 @@ else echo "
Note :
Esito: +
Orologio Modifica record for  
-
Orologio Modifica record for  
  \n"; @@ -436,7 +439,7 @@ if ($modify_timeclock_log > 0) } -echo "VICIDIAL Time Sheet\n"; +echo "Agent Time Sheet\n"; echo " - Statistiche utente\n"; echo " - Modifica Utente\n"; @@ -468,7 +471,7 @@ echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; - LICENSE: AGPLv2 @@ -9,6 +9,7 @@ # 80617-1416 - Fixed totals tally bug # 80707-0754 - Fixed groups bug, changed formatting # 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags # require("dbconnect.php"); @@ -41,7 +42,7 @@ if (strlen($order)<2) {$order='hours_down';} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -49,8 +50,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -134,9 +136,9 @@ while ($i < $user_groups_to_print) -VICIDIAL: UtenteOrologio Report +<TITLE>UtenteOrologio Report -<? +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -240,7 +242,7 @@ echo "</FORM>\n\n"; echo "<PRE><FONT SIZE=3>\n"; -echo "VICIDIAL: UtenteOrologio Report $NOW_TIME\n"; +echo "UtenteOrologio Report $NOW_TIME\n"; echo "Intervallo Di Tempo: $query_date to $end_date\n\n"; echo "---------- USER TIMECLOCK DETAILS -------------\n"; diff --git a/LANG_www/vicidial_it/timeclock_status.php b/LANG_www/vicidial_it/timeclock_status.php index 3c42355d..c633c320 100644 --- a/LANG_www/vicidial_it/timeclock_status.php +++ b/LANG_www/vicidial_it/timeclock_status.php @@ -1,4 +1,4 @@ -<? +<?php # timeclock_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -8,6 +8,7 @@ # 80602-0201 - First Build # 80603-1500 - formatting changes # 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -35,7 +36,7 @@ if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -43,9 +44,11 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $timeclock_end_of_day = $row[2]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $i++; } ##### END SETTINGS LOOKUP ##### @@ -141,8 +144,8 @@ if (strlen($user_group) > 0) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN:Orologio Status -<? +<title>ADMINISTRATION:Orologio Status +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -169,8 +172,8 @@ require("admin_header.php"); ?> <CENTER> <TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> -<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Orologio Status for <? echo $user_group ?></TD><TD ALIGN=RIGHT>             -<? +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Orologio Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>Utente Group</a>\n"; ?> @@ -179,7 +182,7 @@ echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARI -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -352,6 +355,7 @@ while ($users_to_print > $o) {$bgcolor[$o]='bgcolor="#66CC66"';} # green } + $s++; echo "<tr $bgcolor[$o]>"; echo "<td><font size=1>$s</td>"; echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; @@ -365,8 +369,6 @@ while ($users_to_print > $o) if (strlen($Tstatus[$o])>0) {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} - - $s++; } $o++; } @@ -410,7 +412,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds </body> </html> -<? +<?php exit; @@ -534,7 +536,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_it/user_group_bulk_change.php b/LANG_www/vicidial_it/user_group_bulk_change.php index 77e836df..096f68ca 100644 --- a/LANG_www/vicidial_it/user_group_bulk_change.php +++ b/LANG_www/vicidial_it/user_group_bulk_change.php @@ -1,4 +1,4 @@ -<? +<?php # user_group_bulk_change.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -7,6 +7,7 @@ # 81119-0918 - First build # 90309-1830 - Added admin_log logging # 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags # header ("Content-type: text/html; charset=utf-8"); @@ -31,7 +32,7 @@ if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -39,8 +40,9 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -102,7 +104,7 @@ $browser = getenv("HTTP_USER_AGENT"); } } -$stmt="select * from vicidial_user_groups order by user_group desc;"; +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -121,8 +123,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: Gruppo Utente Bulk Cambia -<? +<title>ADMINISTRATION: Gruppo Utente Bulk Cambia +<?php ##### BEGIN Set variables to make header show properly ##### $ADD = '311111'; @@ -155,7 +157,7 @@ require("admin_header.php"); -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -259,7 +261,7 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_it/user_stats.php b/LANG_www/vicidial_it/user_stats.php index 23351009..dcf5245d 100644 --- a/LANG_www/vicidial_it/user_stats.php +++ b/LANG_www/vicidial_it/user_stats.php @@ -1,4 +1,4 @@ -<? +<?php # user_stats.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -17,11 +17,31 @@ # 90208-0504 - Added link to multi-day report and fixed call status summary section # 90305-1226 - Added user_call_log manual dial logs # 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display # header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; @@ -50,32 +70,33 @@ $TODAY = date("Y-m-d"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { if($auth>0) { - $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname=$row[0]; + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); fclose($fp); @@ -92,7 +113,6 @@ $browser = getenv("HTTP_USER_AGENT"); $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $full_name = $row[0]; - } @@ -102,8 +122,8 @@ $browser = getenv("HTTP_USER_AGENT"); <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: Statistiche utente -<? +<title>ADMINISTRATION: Statistiche utente +<?php ##### BEGIN Set variables to make header show properly ##### @@ -129,12 +149,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Statistiche utente for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Statistiche utente for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; @@ -152,7 +172,7 @@ echo "<input type=submit name=submit value=submit>\n"; echo "           $user - $full_name<BR><BR>\n"; echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Time Sheet</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; echo " | <a href=\"./user_status.php?user=$user\">Status Utente</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifica Utente</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Utente multiple day status detail report</a>"; @@ -166,10 +186,10 @@ echo "<br><center>\n"; ##### vicidial agent talk time and status ##### -echo "<B>VICIDIAL TEMPO DI CHIAMATA E ESITO:</B>\n"; +echo "<B>AGENT TEMPO DI CHIAMATA E ESITO:</B>\n"; echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ESITO</td><td align=right><font size=2>CUENTA</td><td align=right><font size=2>ORE:MINUTI</td></tr>\n"; +echo "<tr><td><font size=2>ESITO</td><td align=right><font size=2>CUENTA</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' group by status order by status"; $rslt=mysql_query($stmt, $link); @@ -225,34 +245,20 @@ while ($o < $p) else {$bgcolor='bgcolor="#9BB9FB"';} - $call_seconds = $call_sec[$o]; - $call_hours = ($call_seconds / 3600); - $call_hours_int = round($call_hours, 2); - $call_hours_int = intval("$call_hours_int"); - $call_minutes = ($call_hours - $call_hours_int); - $call_minutes = ($call_minutes * 60); - $call_minutes_int = round($call_minutes, 0); - if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} + $call_hours_minutes = sec_convert($call_sec[$o],'H'); echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; echo "<td align=right><font size=2> $counts[$o]</td>\n"; - echo "<td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; $total_calls = ($total_calls + $counts[$o]); $total_sec = ($total_sec + $call_sec[$o]); $call_seconds=0; $o++; } -$call_seconds = $total_sec; -$call_hours = ($call_seconds / 3600); -$call_hours_int = round($call_hours, 2); -$call_hours_int = intval("$call_hours_int"); -$call_minutes = ($call_hours - $call_hours_int); -$call_minutes = ($call_minutes * 60); -$call_minutes_int = round($call_minutes, 0); -if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} +$call_hours_minutes = sec_convert($total_sec,'H'); -echo "<tr><td><font size=2>TOTALE CHIAMATE </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_int:$call_minutes_int</td></tr>\n"; +echo "<tr><td><font size=2>TOTALE CHIAMATE </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -262,9 +268,9 @@ echo "<br><br>\n"; echo "<center>\n"; -echo "<B>VICIDIAL AGENT TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<B>AGENT TIEMPO LOGIN/LOGOUT:</B>\n"; echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> CAMPAGNA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ORE:MINUTI</td></tr>\n"; +echo "<tr><td><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> CAMPAGNA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group from vicidial_user_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59'"; $rslt=mysql_query($stmt, $link); @@ -294,21 +300,17 @@ echo "<tr><td><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><t { if ($event_start_seconds) { + $event_stop_seconds = $row[1]; $event_seconds = ($event_stop_seconds - $event_start_seconds); $total_login_time = ($total_login_time + $event_seconds); - $event_hours = ($event_seconds / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($event_seconds,'H'); + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $row[2]</td>\n"; echo "<td align=right><font size=2> $row[3]</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; $event_start_seconds=''; $event_stop_seconds=''; } @@ -327,19 +329,13 @@ echo "<tr><td><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><t $o++; } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); echo "<tr><td><font size=2>TOTALE</td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int</td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; echo "</TABLE></center>\n"; @@ -361,7 +357,7 @@ echo "<center>\n"; echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n"; echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ORE:MINUTI</td></tr>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; if ($DB>0) {echo "|$stmt|";} @@ -397,20 +393,15 @@ echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><f { $login_sec = $row[3]; $total_login_time = ($total_login_time + $login_sec); - $event_hours = ($login_sec / 3600); - $event_hours_int = round($event_hours, 2); - $event_hours_int = intval("$event_hours_int"); - $event_minutes = ($event_hours - $event_hours_int); - $event_minutes = ($event_minutes * 60); - $event_minutes_int = round($event_minutes, 0); - if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + $event_hours_minutes = sec_convert($login_sec,'H'); + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; echo "<td align=right><font size=2>$manager_edit</td>"; echo "<td align=right><font size=2>$row[0]</td>"; echo "<td align=right><font size=2> $TC_log_date</td>\n"; echo "<td align=right><font size=2> $row[4]</td>\n"; echo "<td align=right><font size=2> $row[2]</td>\n"; - echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int"; + echo "<td align=right><font size=2> $event_hours_minutes"; if ($DB) {echo " - $total_login_time - $login_sec";} echo "</td></tr>\n"; } @@ -422,26 +413,21 @@ if (strlen($login_sec)<1) $total_login_time = ($total_login_time + $login_sec); if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} } -$total_login_hours = ($total_login_time / 3600); -$total_login_hours_int = round($total_login_hours, 2); -$total_login_hours_int = intval("$total_login_hours_int"); -$total_login_minutes = ($total_login_hours - $total_login_hours_int); -$total_login_minutes = ($total_login_minutes * 60); -$total_login_minutes_int = round($total_login_minutes, 0); -if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} +$total_login_hours_minutes = sec_convert($total_login_time,'H'); - if ($DB) {echo " - $total_login_time - $login_sec";} +if ($DB) {echo " - $total_login_time - $login_sec";} echo "<tr><td align=right><font size=2> </td>"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2> </td>\n"; echo "<td align=right><font size=2><font size=2>TOTALE </td>\n"; -echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; echo "</TABLE></center>\n"; + ##### closer in-group selection logs ##### echo "<br><br>\n"; @@ -450,29 +436,30 @@ echo "<center>\n"; echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; -echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAGNA</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td></tr>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAGNA</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; - $stmt="select * from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[2]</td>"; - echo "<td align=left><font size=2> $row[1]</td>\n"; - echo "<td align=left><font size=2> $row[3]</td>\n"; - echo "<td align=left><font size=2> $row[4] </td>\n"; - echo "</tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; } @@ -485,31 +472,31 @@ echo "<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAGNA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; - $rslt=mysql_query($stmt, $link); - $logs_to_print = mysql_num_rows($rslt); +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); - $u=0; - while ($logs_to_print > $u) { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $u)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - - $u++; - echo "<tr $bgcolor>"; - echo "<td><font size=1>$u</td>"; - echo "<td><font size=2>$row[4]</td>"; - echo "<td align=left><font size=2> $row[7]</td>\n"; - echo "<td align=left><font size=2> $row[8]</td>\n"; - echo "<td align=left><font size=2> $row[10] </td>\n"; - echo "<td align=right><font size=2> $row[3] </td>\n"; - echo "<td align=right><font size=2> $row[14] </td>\n"; - echo "<td align=right><font size=2> $row[2] </td>\n"; - echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; - echo "<td align=right><font size=2> $row[15] </td></tr>\n"; +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; } @@ -522,7 +509,7 @@ echo "<B>INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAGNA</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; - $stmt="select * from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where user='" . mysql_real_escape_string($user) . "' and call_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and call_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by call_date desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -559,7 +546,7 @@ echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; - $stmt="select * from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; $rslt=mysql_query($stmt, $link); $logs_to_print = mysql_num_rows($rslt); @@ -676,7 +663,7 @@ echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds </body> </html> -<? +<?php exit; diff --git a/LANG_www/vicidial_it/user_status.php b/LANG_www/vicidial_it/user_status.php index 3bc08511..37f215b0 100644 --- a/LANG_www/vicidial_it/user_status.php +++ b/LANG_www/vicidial_it/user_status.php @@ -1,4 +1,4 @@ -<? +<?php # user_status.php # # Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 @@ -10,6 +10,10 @@ # 81118-1034 - Disabled change campaign because it does not work # 90208-0511 - Added link to user multi-day status report # 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process # header ("Content-type: text/html; charset=utf-8"); @@ -38,17 +42,17 @@ if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,webroot_writable FROM system_settings;"; +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); -$i=0; -while ($i < $qm_conf_ct) +if ($qm_conf_ct > 0) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; - $webroot_writable = $row[1]; - $i++; + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -64,35 +68,34 @@ $ip = getenv("REMOTE_ADDR"); if (!isset($begin_date)) {$begin_date = $TODAY;} if (!isset($end_date)) {$end_date = $TODAY;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; - if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { - if($auth>0) { - $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $LOGfullname = $row[0]; - $change_agent_campaign = $row[1]; - $modify_timeclock_log = $row[2]; + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; if ($webroot_writable > 0) { fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); @@ -116,7 +119,7 @@ $browser = getenv("HTTP_USER_AGENT"); $full_name = $row[0]; $user_group = $row[1]; - $stmt="SELECT * from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $agents_to_print = mysql_num_rows($rslt); @@ -124,13 +127,17 @@ $browser = getenv("HTTP_USER_AGENT"); while ($i < $agents_to_print) { $row=mysql_fetch_row($rslt); - $Aserver_ip = $row[2]; - $Asession_id = $row[3]; - $Aextension = $row[4]; - $Astatus = $row[5]; - $Acampaign = $row[7]; - $Alast_call = $row[14]; - $Acl_campaigns = $row[15]; + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; $i++; } @@ -149,7 +156,7 @@ $browser = getenv("HTTP_USER_AGENT"); } -$stmt="select * from vicidial_campaigns;"; +$stmt="select campaign_id from vicidial_campaigns;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); @@ -167,8 +174,8 @@ while ($i < $groups_to_print) <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> -<title>VICIDIAL ADMIN: Status Utente -<? +<title>ADMINISTRATION: Status Utente +<?php ##### BEGIN Set variables to make header show properly ##### @@ -194,12 +201,12 @@ require("admin_header.php"); ?> -<TABLE WIDTH=<? echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Status Utente for <? echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Status Utente for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> -<? +<?php echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; @@ -217,10 +224,170 @@ if ($stage == "live_campaign_change") ##### EMERGENCY LOGOUT OF AN AGENT ##### if ($stage == "log_agent_out") { - $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; - echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } exit; } @@ -283,8 +450,8 @@ if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($mod $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - $status='START'; - $totTIME_HMS='0:00:00'; + $status='START'; + $totTIME_HMS='0:00:00'; $affected_rows = mysql_affected_rows($link); print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; } @@ -406,9 +573,14 @@ if ($agents_to_print > 0) echo "<TR><TD ALIGN=RIGHT>esito:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} echo "</TABLE>\n<BR>\n"; - if ($change_agent_campaign > 0) { echo "<form action=$PHP_SELF method=POST>\n"; @@ -416,17 +588,16 @@ if ($agents_to_print > 0) echo "<input type=hidden name=user value=\"$user\">\n"; echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; echo "Current Campagna: <SELECT SIZE=1 NAME=group>\n"; - $o=0; - while ($groups_to_print > $o) + $o=0; + while ($groups_to_print > $o) { - if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} - else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} - $o++; + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; } echo "</SELECT>\n"; echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; - echo "<form action=$PHP_SELF method=POST>\n"; echo "<input type=hidden name=DB value=\"$DB\">\n"; echo "<input type=hidden name=user value=\"$user\">\n"; @@ -437,7 +608,7 @@ if ($agents_to_print > 0) else { - echo "Agent is not logged in to VICIDIAL\n<BR>"; + echo "Agent is not logged in\n<BR>"; } echo "\n<BR>"; @@ -469,7 +640,7 @@ if ($modify_timeclock_log > 0) $REPORTdate = date("Y-m-d"); echo "<center>\n"; -echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">VICIDIAL Time Sheet</a>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; echo " | <a href=\"./user_stats.php?user=$user\">Statistiche utente</a>\n"; echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifica Utente</a>\n"; echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Utente multiple day status detail report</a>"; @@ -497,11 +668,10 @@ echo "|$stage|$group|"; </body> </html> -<? +<?php exit; ?> - diff --git a/LANG_www/vicidial_it/user_territories.php b/LANG_www/vicidial_it/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/LANG_www/vicidial_it/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/LANG_www/vicidial_it/vdremote.php b/LANG_www/vicidial_it/vdremote.php index cc11a8ce..a40d7f93 100644 --- a/LANG_www/vicidial_it/vdremote.php +++ b/LANG_www/vicidial_it/vdremote.php @@ -1,20 +1,22 @@ - LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # Changes # 50307-1721 - First version # 51123-1502 - removed requirement of PHP Globals=on # 60421-1229 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1603 - Added variable filtering to eliminate SQL injection attack threat +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes # -$version = '1.1.12'; -$build = '60619-1603'; +$version = '2.2.0'; +$build = '91129-2249'; require("dbconnect.php"); @@ -55,15 +57,15 @@ if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} if (!isset($force_logout)) {$force_logout = 0;} if ($force_logout) -{ - if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) { - Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); - Header("HTTP/1.0 401 Unauthorized"); - } + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } echo "Ora non sei collegato. Grazie\n"; exit; -} + } $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); $PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); @@ -75,25 +77,25 @@ $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); if (!isset($query_date)) {$query_date = $NOW_DATE;} - $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $auth=$row[0]; +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; $fp = fopen ("./project_auth_entries.txt", "a"); $date = date("r"); $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; exit; } - else +else { header ("Content-type: text/html; charset=utf-8"); @@ -159,8 +161,8 @@ echo "\n"; .orange {color: black; background-color: orange} --> -VICIDIAL, AGENTES REMOTOS: $LOGfullname - $PHP_AUTH_USER "; +OPERATORI REMOTI: $LOGfullname - $PHP_AUTH_USER "; if (!$ADD) {$ADD="31111";} if ($ADD==31111) {echo "Modifica Operatori Remoti";} @@ -201,14 +203,14 @@ if (strlen($ADD)>4) ##### get inbound groups listing for checkboxes if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) - { - $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - $closer_campaigns = $row[0]; - $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); - $groups = explode(" ", $closer_campaigns); - } + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; $rslt=mysql_query($stmt, $link); @@ -244,12 +246,12 @@ if (strlen($ADD)>4)
- - +
  VICIDIAL, AGENTES REMOTOS:   Logout  
  MODIFICA | ">ESITO | ">STATISTICHE INBOUND
+
  OPERATORI REMOTI:   Logout  
  MODIFICA | ">ESITO | ">STATISTICHE INBOUND
-4) ###################### if ($ADD==31111) -{ + { echo ""; - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -272,25 +274,23 @@ if ($ADD==31111) $status = $row[5]; $campaign_id = $row[6]; -echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Inizio ID Utente: $user_start
Numero di Linee: (solo cifre)
IP Server: $row[3]
Numero Di Interno Remoto: (number dialed to reach agents [i.e. 913125551212])
Esito:
Campagna: $campaign_id
Gruppi Inbound: \n"; -echo "$groups_list"; -echo "
\n"; -echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; - -} - + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inizio ID Utente: $user_start
Numero di Linee: (solo cifre)
IP Server: $row[3]
Numero Di Interno Remoto: (number dialed to reach agents [i.e. 913125551212])
Esito:
Campagna: $campaign_id
Gruppi Inbound: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; + } @@ -299,12 +299,12 @@ echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effe ###################### if ($ADD==41111) -{ + { echo ""; - if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) {echo "
AGENTES ALEJADOS NO MODIFICADOS - Per favore torna indietro e ricontrolla i dati inseriti\n";} - else + else { $stmt="UPDATE vicidial_remote_agents set number_of_lines='" . mysql_real_escape_string($number_of_lines) . "', conf_exten='" . mysql_real_escape_string($conf_exten) . "', status='" . mysql_real_escape_string($status) . "', closer_campaigns='" . mysql_real_escape_string($groups_value) . "' where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); @@ -316,10 +316,9 @@ if ($ADD==41111) $fp = fopen ("./admin_changes_log.txt", "a"); fwrite ($fp, "$date|MODIFY OPERATORI REMOTI ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); fclose($fp); - } - $stmt="SELECT * from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $remote_agent_id = $row[0]; @@ -330,25 +329,23 @@ if ($ADD==41111) $status = $row[5]; $campaign_id = $row[6]; -echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; -echo "\n"; -echo "\n"; -echo "
\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "\n"; -echo "
Inizio ID Utente: $user_start
Numero di Linee: (solo cifre)
IP Server: $row[3]
Numero Di Interno Remoto: (number dialed to reach agents [i.e. 913125551212])
Esito:
Campagna: $campaign_id
Gruppi Inbound: \n"; -echo "$groups_list"; -echo "
\n"; -echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; - -} - + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inizio ID Utente: $user_start
Numero di Linee: (solo cifre)
IP Server: $row[3]
Numero Di Interno Remoto: (number dialed to reach agents [i.e. 913125551212])
Esito:
Campagna: $campaign_id
Gruppi Inbound: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; + } @@ -357,14 +354,13 @@ echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effe ###################### if ($ADD==61111) -{ + { echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -375,7 +371,7 @@ if ($ADD==61111) } $users_list = preg_replace("/.$/","",$users_list); - echo "VICIDIAL: Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\n"; echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; @@ -385,14 +381,14 @@ if ($ADD==61111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) { $leadlink=0; $row=mysql_fetch_row($rslt); - if (eregi("READY|PAUSED",$row[4])) + if (eregi("READY|PAUSED",$row[4])) { $row[3]=''; $row[5]='- IN ATTESA -'; @@ -409,7 +405,7 @@ if ($ADD==61111) $leadid = "$leadid"; } $channel = sprintf("%-10s", $row[3]); - $cc=0; + $cc=0; while ( (strlen($channel) > 10) and ($cc < 100) ) { $channel = eregi_replace(".$","",$channel); @@ -438,14 +434,13 @@ if ($ADD==61111) $i++; } - echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; - echo " $i Operatori collegati al server $server_ip\n\n"; - - echo " - 5 o piu` minuti in conversazione\n"; - echo " - Oltre 10 minuti in conversazione\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i Operatori collegati al server $server_ip\n\n"; + echo " - 5 o piu` minuti in conversazione\n"; + echo " - Oltre 10 minuti in conversazione\n"; } - else + else { echo "**************************************************************************************\n"; echo "********************************* NESSUN OPERATORE IN CONVERSAZIONE *********************************\n"; @@ -453,9 +448,8 @@ if ($ADD==61111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } ###################### @@ -463,7 +457,7 @@ echo "\n\n"; ###################### if ($ADD==71111) -{ + { echo "\n"; echo "\n"; echo "\n"; @@ -472,11 +466,10 @@ if ($ADD==71111) echo "\n\n"; echo "
";
 
-	 if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
 		{echo "
ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} - else + else { - $users_list = ''; $k=0; while($k < $number_of_lines) @@ -492,17 +485,17 @@ if ($ADD==71111) $row=mysql_fetch_row($rslt); $in_calls = $row[0]; $in_time = $row[1]; - $in_time_M = ($in_time / 60); - $in_time_M = round($in_time_M, 2); - $in_time_M_int = intval("$in_time_M"); - $in_time_SEC = ($in_time_M - $in_time_M_int); - $in_time_SEC = ($in_time_SEC * 60); - $in_time_SEC = round($in_time_SEC, 0); - if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} - $in_time_MS = "$in_time_M_int:$in_time_SEC"; - $in_time_MS = sprintf("%7s", $in_time_MS); + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); - echo "VICIDIAL: Stats de entrada del agente alejado $NOW_TIME\n\n"; + echo "Stats de entrada del agente alejado $NOW_TIME\n\n"; echo "\n"; echo "Llamadas totales tomadas $query_date: $in_calls\n"; echo "Tiempo total de conversacion$query_date: $in_time_MS (minutes:seconds)\n"; @@ -518,7 +511,7 @@ if ($ADD==71111) $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $talking_to_print = mysql_num_rows($rslt); - if ($talking_to_print > 0) + if ($talking_to_print > 0) { $i=0; while ($i < $talking_to_print) @@ -550,14 +543,13 @@ if ($ADD==71111) $i++; } - echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; - # echo " $i Operatori collegati al server $server_ip\n\n"; - - # echo " - 5 o piu` minuti in conversazione\n"; - # echo " - Oltre 10 minuti in conversazione\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; } - else + else { echo "**************************************************************************************\n"; echo "*********************************NESSUNA CHIAMATA IN QUESTO GIORNO*******************************\n"; @@ -565,9 +557,8 @@ if ($ADD==71111) } } -echo "
\n\n"; - -} + echo "\n\n"; + } @@ -590,7 +581,7 @@ echo "\n\n\n


\nTempo Esecuzione Script: $RUNtime seconds - - - - - diff --git a/LANG_www/vicidial_it/vicidial_sales_viewer.php b/LANG_www/vicidial_it/vicidial_sales_viewer.php index d3fefe33..7b567e79 100644 --- a/LANG_www/vicidial_it/vicidial_sales_viewer.php +++ b/LANG_www/vicidial_it/vicidial_sales_viewer.php @@ -1,4 +1,4 @@ - 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { +# Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); +# Header("HTTP/1.0 401 Unauthorized"); + echo "Utentename/Password non validi or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + ?> -VICIDIAL recent sales lookup +Recent Sales Lookup - @@ -54,7 +76,7 @@ function GatherListIDs() { -
"; ?> -
+ @@ -72,9 +94,9 @@ echo "
";
- + - -
Select a VICIDIAL campaign:Select a campaign:
"; } ?> -
"; ?>
Select list ID(s) # (optional):
"; ?>
@@ -140,7 +162,7 @@ echo "
";
** - sorted by call date
- LICENSE: AGPLv2 @@ -6,7 +6,7 @@ # This page does a search against a standard vtiger CRM system. If the record # is not present, it will create a new one and send the agent's screen to that new page. # -# This code is tested against vtiger 5.0.4 +# This code is tested against vtiger 5.0.4 and 5.1.0 # # CHANGES # 60719-1615 - First version @@ -18,6 +18,8 @@ # 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD # 90111-1451 - Added logging of call as activity for account/lead # 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option # header ("Content-type: text/html; charset=utf-8"); @@ -152,7 +154,7 @@ if ($enable_vtiger_integration < 1) exit; } -$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record FROM vicidial_campaigns where campaign_id='$campaign';"; +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $vtc_conf_ct = mysql_num_rows($rslt); @@ -162,6 +164,7 @@ if ($vtc_conf_ct > 0) $vtiger_search_category = $row[0]; $vtiger_create_call_record = $row[1]; $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; } if (strlen($vtiger_search_category)<1) {$vtiger_search_category = 'LEAD';} @@ -188,15 +191,38 @@ mysql_select_db("$vtiger_dbname", $linkV); # LEAD: # $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; -$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; -if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} -if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} -if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} -if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + ########################################################################## @@ -219,78 +245,102 @@ if ($acctid_search > 0) } else { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "account found! ACCTID\n";
-		echo "accountid:   $vendor_id\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -380,79 +430,102 @@ if ($account_search > 0) } if (strlen($accountid) > 0) { - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger - echo "
";
-		echo "account found! ACCOUNT\n";
-		echo "accountid:   $accountid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -675,80 +748,104 @@ if ($lead_search > 0) $row=mysql_fetch_row($rslt); $leadid = $row[0]; - if (ereg('Y',$vtiger_create_call_record)) + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) { - ### Log the call in Vtiger - - #Get logged in user ID - $stmt="SELECT id from vtiger_users where user_name='$user';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $user_id = $row[0]; - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity - $stmt="SELECT id from vtiger_crmentity_seq ;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - $row=mysql_fetch_row($rslt); - $activityid = ($row[0] + 1); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - # Increase next aviable crmid with 1 so next record gets proper id - $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $linkV); - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_salesmanactivityrel - $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_seactivityrel - $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_crmentity - $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - #Insert values into vtiger_activity - $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; - if ($DB) {echo "|$stmt|\n";} - $rslt=mysql_query($stmt, $linkV); - if ($DB) {echo "|$leadid|\n";} - if (!$rslt) {die('Could not execute: ' . mysql_error());} - - - # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + echo "\n"; } else { - # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales - $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } - echo "
";
-		echo "lead found! LEAD\n";
-		echo "leadid:   $leadid\n";
-		echo "phone:       $phone\n";
-		echo "

"; - exit; + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } } } ########################################################################## @@ -774,7 +871,7 @@ echo "Click here to go to the Vtiger home page\n"; - LICENSE: AGPLv2 # -echo "VICIDIAL Benvenuto\n"; +echo "ViciDial Benvenuto\n"; echo "\n"; echo "\n"; echo "




"; diff --git a/LANG_www/vicidial_it/welcome_demo.php b/LANG_www/vicidial_it/welcome_demo.php index 65997b08..238cf5cf 100644 --- a/LANG_www/vicidial_it/welcome_demo.php +++ b/LANG_www/vicidial_it/welcome_demo.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/LANG_www/vicidial_it/welcome_languages.php b/LANG_www/vicidial_it/welcome_languages.php index 1218c652..d53707a9 100644 --- a/LANG_www/vicidial_it/welcome_languages.php +++ b/LANG_www/vicidial_it/welcome_languages.php @@ -1,4 +1,4 @@ -VICIDIAL Welcome\n"; +echo "ViciDial Welcome\n"; echo "\n"; echo "\n"; echo "



"; @@ -50,6 +50,12 @@ echo "   \n"; echo "\n"; +echo "\n"; +echo "
"; echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; echo "
\n"; echo "
\n"; diff --git a/UPGRADE b/UPGRADE index 6bd176f5..6f3e7a77 100644 --- a/UPGRADE +++ b/UPGRADE @@ -364,6 +364,8 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom tables monthly. The ADMIN_archive_log_tables.pl script needs to be added to your crontab to run monthly(example: "30 1 1 * *") +88. Added Traditional Chinese (zt_tw) language translation of the agent screen + which can be found in the LANG_www/agc_tw directory diff --git a/bin/build_translation_www_files.pl b/bin/build_translation_www_files.pl index f9a5fe0a..fb7d083d 100644 --- a/bin/build_translation_www_files.pl +++ b/bin/build_translation_www_files.pl @@ -317,7 +317,7 @@ foreach(@lang_list) $LINESct=0; foreach(@file) { - if ($file[$LINESct] !~ /^\#|^\s*function |'INCALL'|'PAUSED'|'READY'|'NEW'|xmlhttp|ILPV |ILPA |SELECT cmd_line_f|=\"SELECT/) + if ($file[$LINESct] !~ /^\#|^\s*function |'INCALL'|'PAUSED'|'READY'|'NEW'|xmlhttp|ILPV |ILPA |SELECT cmd_line_f|=\"SELECT|Header\(\"/) { $phrase_found_counter=0; if ($file[$LINESct] =~ /INTERNATIONALIZATION-LINKS-PLACEHOLDER-VICIDIAL/) diff --git a/docs/BASE_INSTALL.txt b/docs/BASE_INSTALL.txt index f015061a..9a415f39 100644 --- a/docs/BASE_INSTALL.txt +++ b/docs/BASE_INSTALL.txt @@ -1,4 +1,4 @@ -Asterisk/astguiclient install from existing server. v.2.2.0 2009-06-28 +Asterisk/astguiclient install from existing server. v.2.2.0 2010-01-07 By the VICIDIAL group info@vicidial.com @@ -122,7 +122,7 @@ Digium/Clone T100P EXAMPLE, also works for TE4xxp cards PHASE 2: CONFIGURING ASTERISK -### Mostly depricated, ViciDial now allows you to configure phones in the admin +### Mostly depricated, ViciDial now allows you to configure phones, carriers, voicemail and musiconhold in the admin web interface @@ -159,23 +159,23 @@ VICIDIAL components to the system. There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN 1. Go to http://astguiclient.sf.net/ and download the latest astguiclient -package(as of this writing it is 2.0.5) +package(as of this writing it is 2.2.0) - for 2.0.X release: mkdir /usr/src/astguiclient cd /usr/src/astguiclient - wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.0.5.zip - unzip astguiclient_2.0.5.zip + wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.2.0.zip + unzip astguiclient_2.2.0.zip perl install.pl - - for SVN 2.0.5 branch: + - for SVN 2.2.0 branch: mkdir /usr/src/astguiclient cd /usr/src/astguiclient - svn checkout svn://svn.eflo.net:43690/agc_2-X/branches/agc_2.0.5 - cd agc_2.0.5 + svn checkout svn://svn.eflo.net:3690/agc_2-X/branches/agc_2.2.0 + cd agc_2.2.0 perl install.pl - - for SVN 2.2 trunk: + - for SVN 2.4 trunk: mkdir /usr/src/astguiclient cd /usr/src/astguiclient - svn checkout svn://svn.eflo.net:43690/agc_2-X/trunk + svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk cd trunk perl install.pl select to do interactive setup and customize to your server @@ -262,21 +262,21 @@ use asterisk; \. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql or you may need to run this if you get an error: - \. /usr/src/astguiclient/agc_2.0.5/extras/MySQL_AST_CREATE_tables.sql + \. /usr/src/astguiclient/agc_2.2.0/extras/MySQL_AST_CREATE_tables.sql \. /usr/src/astguiclient/astguiclient/MySQL_AST_CREATE_tables.sql ### to load in default IAX and SIP phone accounts run the following query \. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql or you may need to run this if you get an error: - \. /usr/src/astguiclient/agc_2.0.5/extras/sip-iax_phones.sql + \. /usr/src/astguiclient/agc_2.2.0/extras/sip-iax_phones.sql \. /usr/src/astguiclient/astguiclient/sip-iax_phones.sql ### to load the initial server values for this first system install \. /usr/src/astguiclient/trunk/extras/first_server_install.sql or you may need to run this if you get an error: - \. /usr/src/astguiclient/agc_2.0.5/extras/first_server_install.sql + \. /usr/src/astguiclient/agc_2.2.0/extras/first_server_install.sql \. /usr/src/astguiclient/astguiclient/first_server_install.sql quit @@ -290,8 +290,8 @@ quit to load the performance testing leads run these commands: - cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ or - - cp /usr/src/astguiclient/agc_2.0.4/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ - - cp /usr/src/astguiclient_2.0.4.1/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + - cp /usr/src/astguiclient/agc_2.2.0/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + - cp /usr/src/astguiclient_2.2.0/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ - /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1 @@ -321,6 +321,7 @@ Here's what we entered for spa2000: - Server IP: 10.10.10.15 - Login: spa2000 - Password: test + - Conf File Secret: test - Status: ACTIVE - Active Account: Y - Phone Type: Sipura SPA-2000 line 1 diff --git a/docs/SCRATCH_INSTALL.txt b/docs/SCRATCH_INSTALL.txt index 2ff02884..f5f31054 100644 --- a/docs/SCRATCH_INSTALL.txt +++ b/docs/SCRATCH_INSTALL.txt @@ -1,4 +1,4 @@ -Asterisk/astguiclient install from scratch. v.2.2.0 2009-06-28 +Asterisk/astguiclient install from scratch. v.2.2.0 2010-01-07 By the VICIDIAL group info@vicidial.com **** IMPORTANT - In order for vicidial/astguiclient to function correctly please @@ -995,7 +995,7 @@ musiconhold audio files to be converted to native formats like GSM, ULAW and ALA PHASE 5: CONFIGURING ASTERISK AND YOUR SIP PHONES -As of release 2.0.5 it is now possible to configure SIP and IAX phones and +As of the 2.0.5 release it is possible to configure SIP and IAX phones and carrier trunks without editing conf files, just by using the web administration interface. For more information on this, please read the VICIDIAL Manager Manual available at www.eflo.net @@ -1090,7 +1090,8 @@ Here's what we used(you can set echocancel=no if you are using PRIs): 3. edit sip.conf -As of release 2.0.5 it is now possible to configure SIP and IAX phones and +!!!!! IMPORTANT NOTE !!!!! +As of the 2.0.5 release it is possible to configure SIP and IAX phones and carrier trunks without editing conf files, just by using the web administration interface. For more information on this, please read the VICIDIAL Manager Manual available at www.eflo.net @@ -1166,7 +1167,8 @@ with a pin number required for entry): conf => 8601,1234 5. edit iax.conf -As of release 2.0.5 it is now possible to configure SIP and IAX phones and +!!!!! IMPORTANT NOTE !!!!! +As of the 2.0.5 release it is possible to configure SIP and IAX phones and carrier trunks without editing conf files, just by using the web administration interface. For more information on this, please read the VICIDIAL Manager Manual available at www.eflo.net @@ -1265,6 +1267,13 @@ register to if you plan on using G729 as your codec: iax-g729.binfone.com 6. edit voicemail.conf + +!!!!! IMPORTANT NOTE !!!!! +As of release 2.2.0 it is now possible to configure voicemail and musiconhold +without editing conf files, just by using the web administration interface. +For more information on this, please read the VICIDIAL Manager Manual available +at www.eflo.net + - vi /etc/asterisk/voicemail.conf This is where we set up the voicemail boxes for the extensions that we have set up: @@ -1325,6 +1334,7 @@ files, so be warned: 9. edit extensions.conf - vi /etc/asterisk/extensions.conf +!!!!! IMPORTANT NOTE !!!!! You should be using the sample extensions.conf that is included with the release of VICIDIAL that you installed. There is also an auto-generated extensions-vicidial.conf file that contains dynamic dialplan entries. @@ -1489,23 +1499,23 @@ SUBPHASE 6.0: putting the files in place There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN 1. Go to http://astguiclient.sf.net/ and download the latest astguiclient -package(as of this writing it is 2.0.5) +package(as of this writing it is 2.2.0) - for 2.0.X release: - mkdir /usr/src/astguiclient - cd /usr/src/astguiclient - - wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.0.5.zip - - unzip astguiclient_2.0.5.zip + - wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.2.0.zip + - unzip astguiclient_2.2.0.zip - perl install.pl (make sure you are in the directory with the install.pl file) - - for SVN 2.0.5 branch: + - for SVN 2.2.0 branch: - mkdir /usr/src/astguiclient - cd /usr/src/astguiclient - - svn checkout svn://svn.eflo.net:43690/agc_2-X/branches/agc_2.0.5 - - cd agc_2.0.5 + - svn checkout svn://svn.eflo.net:3690/agc_2-X/branches/agc_2.2.0 + - cd agc_2.2.0 - perl install.pl - - for SVN 2.2 trunk: + - for SVN 2.4 trunk: - mkdir /usr/src/astguiclient - cd /usr/src/astguiclient - - svn checkout svn://svn.eflo.net:43690/agc_2-X/trunk + - svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk - cd trunk - perl install.pl select to do interactive setup and customize to your server @@ -1570,21 +1580,21 @@ use asterisk; \. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql or you may need to run this if you get an error: - \. /usr/src/astguiclient/agc_2.0.5/extras/MySQL_AST_CREATE_tables.sql + \. /usr/src/astguiclient/agc_2.2.0/extras/MySQL_AST_CREATE_tables.sql \. /usr/src/astguiclient/astguiclient/MySQL_AST_CREATE_tables.sql ### to load in default IAX and SIP phone accounts run the following query \. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql or you may need to run this if you get an error: - \. /usr/src/astguiclient/agc_2.0.5/extras/sip-iax_phones.sql + \. /usr/src/astguiclient/agc_2.2.0/extras/sip-iax_phones.sql \. /usr/src/astguiclient/astguiclient/sip-iax_phones.sql ### to load the initial server values for this first system install \. /usr/src/astguiclient/trunk/extras/first_server_install.sql or you may need to run this if you get an error: - \. /usr/src/astguiclient/agc_2.0.5/extras/first_server_install.sql + \. /usr/src/astguiclient/agc_2.2.0/extras/first_server_install.sql \. /usr/src/astguiclient/astguiclient/first_server_install.sql quit @@ -1595,8 +1605,8 @@ quit to load the performance testing leads run these commands: - cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ or - - cp /usr/src/astguiclient/agc_2.0.5/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ - - cp /usr/src/astguiclient_2.0.5/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + - cp /usr/src/astguiclient/agc_2.2.0/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + - cp /usr/src/astguiclient_2.2.0/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ - /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1 @@ -1632,6 +1642,7 @@ Here's what we entered for spa2000: - Server IP: 10.10.10.15 - Login: spa2000 - Password: test + - Conf File Secret: test - Status: ACTIVE - Active Account: Y - Phone Type: Sipura SPA-2000 line 1 @@ -1668,6 +1679,7 @@ Now that the database is set up and our phones have entries in the system we can make the additions to the running Asterisk system that will allow astguiclient to work with it. +!!!!! IMPORTANT NOTE !!!!! Again, if you have selected to use the sample conf files during installation then you do not have to add any of these lines to your conf files, they should already be included. There is also an auto-generated @@ -1814,6 +1826,13 @@ exten => _86120XX,1,ZapBarge(${EXTEN:5}) 4. Add the meetme entries for astguiclient and VICIDIAL conferences to meetme.conf: + +!!!!! IMPORTANT NOTE !!!!! +Again, if you have selected to use the sample conf files during installation +then you do not have to add any of these lines to your conf files, they should +already be included. There is also an auto-generated +meetme-vicidial.conf file that contains dynamic conference entries. + - here is how our sample meetme.conf file changes for adding conference entries (this is a pure addition, nothing is being modified): ######------ START meetme.conf additions for conferences ------###### diff --git a/translations/br_language.txt b/translations/br_language.txt index fca8e633..95aee3c5 100644 --- a/translations/br_language.txt +++ b/translations/br_language.txt @@ -319,7 +319,7 @@ Called|Ligado| Campaign|Campanha| Status|Status| Inserted|Inserido| -seconds|segundos| + seconds|segundos| HELP|AJUDA| Login|Login| User|Usuário| diff --git a/translations/de_language.txt b/translations/de_language.txt index d42694d4..4f784d53 100644 --- a/translations/de_language.txt +++ b/translations/de_language.txt @@ -295,7 +295,7 @@ Called|Angerufen| Campaign|Kampagne| Status|Status| Inserted|Eingefügt| -seconds|Sekunden| + seconds|Sekunden| HELP|HILFE| Login|Login| User|Benutzer| diff --git a/translations/de_language_admin.txt b/translations/de_language_admin.txt index d6d8dd08..d6db3ecd 100644 --- a/translations/de_language_admin.txt +++ b/translations/de_language_admin.txt @@ -71,6 +71,7 @@ vicidial|AST_agent_timeclock_detail.php|1 vicidial|AST_OUTBOUNDsummary_interval.php|1 vicidial|call_report_export.php|1 vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 ***TRANSLATIONS***|||| ### special translations that should stay at the top of the file ### BORDER|Border| diff --git a/translations/el_language.txt b/translations/el_language.txt index 65bd14ab..b90ddc66 100644 --- a/translations/el_language.txt +++ b/translations/el_language.txt @@ -320,7 +320,7 @@ Called|Αποκαλούμενος| Campaign|Εκστρατεία| Status|Κατάσταση| Inserted|Εισαγωγή | -seconds|δευτερόλεπτα| + seconds|δευτερόλεπτα| HELP|ΒΟΗΘΕΙΑ| Login|Σύνδεση| User|Χρήστης| diff --git a/translations/el_language_admin.txt b/translations/el_language_admin.txt index 4f7c34c8..4fdb98ce 100644 --- a/translations/el_language_admin.txt +++ b/translations/el_language_admin.txt @@ -71,6 +71,7 @@ vicidial|AST_agent_timeclock_detail.php|1 vicidial|AST_OUTBOUNDsummary_interval.php|1 vicidial|call_report_export.php|1 vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 ***TRANSLATIONS***|||| ### special translations that should stay at the top of the file ### BORDER|Border| diff --git a/translations/es_language.txt b/translations/es_language.txt index 741b6acf..3036bc10 100644 --- a/translations/es_language.txt +++ b/translations/es_language.txt @@ -322,7 +322,7 @@ Called|Llamado| Campaign|Campaña| Status|Estado| Inserted|Insertado| -seconds|segundos| + seconds|segundos| HELP|AYUDA| Login|Conexión| User|Usuario| diff --git a/translations/es_language_admin.txt b/translations/es_language_admin.txt index 2a4279c5..317c70b4 100644 --- a/translations/es_language_admin.txt +++ b/translations/es_language_admin.txt @@ -71,6 +71,7 @@ vicidial|AST_agent_timeclock_detail.php|1 vicidial|AST_OUTBOUNDsummary_interval.php|1 vicidial|call_report_export.php|1 vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 ***TRANSLATIONS***|||| ### special translations that should stay at the top of the file ### BORDER|Border| diff --git a/translations/fr_language.txt b/translations/fr_language.txt index cb4cde1b..5ae9ea4b 100644 --- a/translations/fr_language.txt +++ b/translations/fr_language.txt @@ -322,7 +322,7 @@ Called|Appelé| Campaign|Campagne| Status|Statut| Inserted|Inséré| -seconds|secondes| + seconds|secondes| HELP|AIDE| Login|Ouverture de Session| User|Utilisateur| diff --git a/translations/fr_language_admin.txt b/translations/fr_language_admin.txt index 37a66f9a..39a697ce 100644 --- a/translations/fr_language_admin.txt +++ b/translations/fr_language_admin.txt @@ -71,6 +71,7 @@ vicidial|AST_agent_timeclock_detail.php|1 vicidial|AST_OUTBOUNDsummary_interval.php|1 vicidial|call_report_export.php|1 vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 ***TRANSLATIONS***|||| ### special translations that should stay at the top of the file ### BORDER|BORDER| @@ -1832,7 +1833,7 @@ Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable out QC Features Active:|QC Active Caractéristiques:| Outbound Auto-Dial Active:|Auto Outbound Dial-Active:| Close Panel|Fermer le panneau| -Choose Report Display Options|Rapport Choisissez Options d'affichage| +Choose Report Display Options|Rapport Choisissez Options d-affichage| To select more than 1 campaign, hold down the Ctrl key and click|Pour sélectionner plus de 1 campagne, maintenez la touche Ctrl enfoncée et cliquez sur| CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|CPD AMD Action - Si vous utilisez le Sangoma ParaXip Call Progress logiciel de détection, vous souhaitez activer ce paramètre, soit la mise à disposition DISPO qui l'appel comme AA et l'accrocher si l'appel est en cours de traitement et n'a pas été envoyée à un agent ou encore MESSAGE qui enverra l'appel à la définition Answering Machine Message pour cette campagne. La valeur par défaut est DISABLED| CPD AMD Action:|CPD AMD Action:| diff --git a/translations/it_language.txt b/translations/it_language.txt index 8f11d5e7..5f89674e 100644 --- a/translations/it_language.txt +++ b/translations/it_language.txt @@ -322,7 +322,7 @@ Called|Chiamato| Campaign|Campagna| Status|Stato| Inserted|Inserito| -seconds|secondi| + seconds|secondi| HELP|AIUTO| Login|Login| User|Utente| diff --git a/translations/it_language_admin.txt b/translations/it_language_admin.txt index 0f9ab7a6..d0e1bbf9 100644 --- a/translations/it_language_admin.txt +++ b/translations/it_language_admin.txt @@ -71,6 +71,7 @@ vicidial|AST_agent_timeclock_detail.php|1 vicidial|AST_OUTBOUNDsummary_interval.php|1 vicidial|call_report_export.php|1 vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 ***TRANSLATIONS*** ### special translations that should stay at the top of the file ### BORDER|Border| diff --git a/translations/nl_language.txt b/translations/nl_language.txt index d4ad9069..059ed4bd 100644 --- a/translations/nl_language.txt +++ b/translations/nl_language.txt @@ -321,7 +321,7 @@ Called|Gebeld| Campaign|Campagne| Status|Status| Inserted|Ingevoerd| -seconds|seconden| + seconds|seconden| HELP|HELP| Login|Inloggen| User|Gebruiker| diff --git a/translations/pl_language.txt b/translations/pl_language.txt index 6d16ba26..f7d695ac 100644 --- a/translations/pl_language.txt +++ b/translations/pl_language.txt @@ -322,7 +322,7 @@ Called|Zadzwoniono| Campaign|Kampania| Status|Status| Inserted|Wstawiony| -seconds|sekundy| + seconds|sekundy| HELP|POMOC| Login|Login| User|Użytkownik| diff --git a/translations/pt_language.txt b/translations/pt_language.txt index bc0ba430..59df5dfe 100644 --- a/translations/pt_language.txt +++ b/translations/pt_language.txt @@ -322,7 +322,7 @@ Called|Chamado| Campaign|Campanha| Status|Status| Inserted|Introduzido| -seconds|segundos| + seconds|segundos| HELP|AJUDA| Login|Início de uma sessão| User|Usuário| diff --git a/translations/ru_language.txt b/translations/ru_language.txt index 11efdcf1..b2763b8b 100644 --- a/translations/ru_language.txt +++ b/translations/ru_language.txt @@ -280,8 +280,8 @@ DISPOSITION CALL|DISPOSITION CALL| session ID| ID сессии| to campaign| в кампанию| Select a CallBack Date|Выберите дату для CallBack| -maximize|максимизировать| -minimize|минимизировать| + maximize| максимизировать| + minimize| минимизировать| You must choose a date|Вы должны выбрать дату| Select a Date Below|Выберите Дату Ниже| Click on a callback below to call the customer back now. If you click on a record below to call it, it will be removed from the list|Чтобы позвонить клиенту сейчас, кликните на callback ниже. Если Вы нажмете на record ниже, чтобы позвонить, то это будет удалено из списка| @@ -312,7 +312,7 @@ Dial Now|Новый Набор номера| CB Comments|CB Комментарии| Title|Title| Your Status|Ваш Статус| -STATUS|СТАТУС| + STATUS| СТАТУС| RESET|RESET| CLEAR FORM|ОЧИСТИТЬ ФОРМУ| SUBMIT|SUBMIT| @@ -322,7 +322,7 @@ Called|Вызванный| Campaign|Кампания| Status|Статус| Inserted|Введенный| -seconds|секунды| + seconds|секунды| HELP|ПОМОЩЬ| Login|Логин| User|Пользователь| @@ -359,7 +359,7 @@ VOICEMAIL|VOICEMAIL| OLD| СТАРЫЙ| PAUSE|ПАУЗПА| START|СТАРТ| -Pause|Пауза| + Pause | Пауза | Resume|Резюме| Faster|Быстрее| Slower|Медленее| @@ -390,7 +390,7 @@ ADDRESS3|АДРЕСС 3| FINISH LEAD|ФИНИШ LEAD| Dial Alt Phone Number|Набор Альт.Номера| Phone|Телефон| -DIAL|НАБОР НОМЕРА| + DIAL| НАБОР НОМЕРА| SUBMIT FAVORITES CHANGES - requires logout|ПОДТВЕРДИТЕ ИЗМЕНЕНИЕ ИЗБРАННОГО - требование для выхода из системы| BACK TO MAIN WINDOW - ignore changes made|ВЕРНУТЬСЯ К ГЛАВНОМУ ОКНУ - игнорирует сделанные изменения| AVAILABLE EXTENSIONS|ДОСТУПНЫЕ РАСШИРЕНИЯ| diff --git a/translations/sk_language.txt b/translations/sk_language.txt index 8d280777..80f10c6d 100644 --- a/translations/sk_language.txt +++ b/translations/sk_language.txt @@ -322,7 +322,7 @@ Called|Volaný| Campaign|Kampaň| Status|Stav| Inserted|Vložiť| -seconds|sekúnd| + seconds|sekúnd| HELP|POMOC| Login|Prihlásiť| User|Užívateľ| diff --git a/translations/tw_language.txt b/translations/tw_language.txt index 5eb4191f..34bd27b0 100644 --- a/translations/tw_language.txt +++ b/translations/tw_language.txt @@ -21,7 +21,7 @@ agc|call_log_display.php|0 agc|voicemail_check.php|0 agc|dbconnect.php|1 agc|htglobalize.php|1 -agc|timelock.php|0 +agc|timeclock.php|0 agc|vdc_script_display.php|1 ***TRANSLATIONS*** ### special translations that should stay at the top of the file ### @@ -48,29 +48,55 @@ Spanish|西班牙文| French|法文| German|德文| Italian|義大利文| -agc_live_call_OFF.gif|agc_live_call_OFF_de.jpg| -agc_live_call_ON.gif|agc_live_call_ON_de.gif| -vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_de.gif| -vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_de.gif| -vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_de.gif| -vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_de.gif| -vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber_de.gif| -vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF_de.gif| -vdc_LB_startrecording.gif|vdc_LB_startrecording_de.gif| -vdc_LB_stoprecording.gif|vdc_LB_stoprecording2_de.gif| -vdc_LB_senddtmf.gif|vdc_LB_senddtmf_de.gif| -vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF_de.gif| -vdc_LB_resume.gif|vdc_LB_resume_de.gif| -vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_de.gif| -vdc_LB_parkcall.gif|vdc_LB_parkcall_de.gif| -vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_de.gif| -vdc_LB_webform.gif|vdc_LB_webform_de.gif| -vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_de.gif| -vdc_LB_transferconf.gif|vdc_LB_transferconf_de.gif| -vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_de.gif| -vdc_tab_script.gif|vdc_tab_script_de.gif| -vdc_volume_MUTE.gif|vdc_volume_MUTE_de.gif| -vdc_volume_UNMUTE.gif|vdc_volume_UNMUTE_de.gif| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK_tw.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF_tw.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON_tw.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines_tw.gif| +agc_tab_conferences.gif|agc_tab_conferences_tw.gif| +agc_tab_main.gif|agc_tab_main_tw.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber_tw.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF_tw.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall_tw.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_tw.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_tw.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall_tw.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_tw.gif| +vdc_LB_pause.gif|vdc_LB_pause_tw.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF_tw.gif| +vdc_LB_resume.gif|vdc_LB_resume_tw.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_tw.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording_tw.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording_tw.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf_tw.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_tw.gif| +vdc_LB_webform.gif|vdc_LB_webform_tw.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_tw.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer_tw.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF_tw.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer_tw.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF_tw.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines_tw.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF_tw.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline_tw.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF_tw.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser_tw.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF_tw.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall_tw.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF_tw.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser_tw.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF_tw.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial_tw.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF_tw.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_tw.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_tw.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf_tw.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF_tw.gif| +vdc_XB_header.gif|vdc_XB_header_tw.gif| +vdc_XB_number.gif|vdc_XB_number_tw.gif| +vdc_XB_channel.gif|vdc_XB_channel_tw.gif| +vdc_XB_seconds.gif|vdc_XB_seconds_tw.gif| You have now logged out. Thank you|您已成功登出系統| astGUIclient web-client VERSION|astGUIclient web-client版本| astGUIclient web client|astGUIclient web client| @@ -296,7 +322,7 @@ Called|已撥號| Campaign|活動| Status|狀態| Inserted|已插入| -seconds|秒| + seconds|秒| HELP|協助| Login|登入| User|使用者| diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index 7df5e5ba..5903f51f 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -3781,7 +3781,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if (delayed_script_load == 'YES') { - RefreshScript(); + RefresHScript(); delayed_script_load='NO'; } @@ -5567,7 +5567,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if ( (script_recording_delay > 0) && ( (LIVE_campaign_recording == 'ALLCALLS') || (LIVE_campaign_recording == 'ALLFORCE') ) ) { delayed_script_load = 'YES'; - RefreshScript('CLEAR'); + RefresHScript('CLEAR'); } else { @@ -5946,7 +5946,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if ( (script_recording_delay > 0) && ( (LIVE_campaign_recording == 'ALLCALLS') || (LIVE_campaign_recording == 'ALLFORCE') ) ) { delayed_script_load = 'YES'; - RefreshScript('CLEAR'); + RefresHScript('CLEAR'); } else { @@ -6852,7 +6852,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if ( (script_recording_delay > 0) && ( (LIVE_campaign_recording == 'ALLCALLS') || (LIVE_campaign_recording == 'ALLFORCE') ) ) { delayed_script_load = 'YES'; - RefreshScript('CLEAR'); + RefresHScript('CLEAR'); } else { @@ -6906,7 +6906,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} // ################################################################################ // refresh or clear the SCRIPT frame contents - function RefreshScript(temp_wipe) + function RefresHScript(temp_wipe) { if (temp_wipe == 'CLEAR') { @@ -9074,7 +9074,7 @@ function phone_number_format(formatphone) { // ################################################################################ -// Refresh the agents view sidebar or xfer frame +// RefresH the agents view sidebar or xfer frame function refresh_agents_view(RAlocation,RAcount) { if (RAcount > 0) @@ -9185,7 +9185,7 @@ function phone_number_format(formatphone) { // ################################################################################ -// Refresh the calls in queue bottombar +// RefresH the calls in queue bottombar function refresh_calls_in_queue(CQcount) { if (CQcount > 0) @@ -9606,7 +9606,7 @@ else hideDiv('HotKeyEntriesBox'); hideDiv('MainPanel'); hideDiv('ScriptPanel'); - hideDiv('ScriptRefresh'); + hideDiv('ScriptRefresH'); hideDiv('DispoSelectBox'); hideDiv('LogouTBox'); hideDiv('AgenTDisablEBoX'); @@ -10297,7 +10297,7 @@ else document.getElementById("MainTable").style.backgroundColor=""; document.getElementById("MaiNfooter").style.backgroundColor=""; hideDiv('ScriptPanel'); - hideDiv('ScriptRefresh'); + hideDiv('ScriptRefresH'); showDiv('MainPanel'); ShoWGenDerPulldown(); @@ -10343,7 +10343,7 @@ else function ScriptPanelToFront() { showDiv('ScriptPanel'); - showDiv('ScriptRefresh'); + showDiv('ScriptRefresH'); document.getElementById("MainTable").style.backgroundColor=""; document.getElementById("MaiNfooter").style.backgroundColor=""; panel_bgcolor=''; @@ -10906,8 +10906,8 @@ if ($agent_display_dialable_leads > 0) height=>
AGENT SCRIPT
- -refresh + +refresh